Back to Blog

Phalcon 디버그 트랜잭션: 효율적인 분석을 위한 단계별 가이드

Phalcon SecurityMetaSleuth
March 29, 2023
5 min read

Phalcon Debug는 트랜잭션이 표면적인 뷰만으로는 이해하기 너무 복잡할 때 트랜잭션 분석을 훨씬 쉽게 만들어줍니다. 높은 수준의 트랜잭션 추적에서 멈추는 대신, 사용자가 실행 흐름으로 직접 들어가 검증된 코드를 검사하고 내부 로직을 상세히 추적할 수 있도록 합니다. 이는 익스플로잇 분석, 근본 원인 조사, 팀 협업에 특히 유용합니다.

이 가이드에서는 Euler 프로토콜 익스플로잇 트랜잭션을 예시로 사용합니다. 목표는 Phalcon Debug가 사용자가 의심스러운 트랜잭션 단계에서 무슨 일이 발생했는지, 왜 중요한지에 대한 명확한 설명으로 나아가는 데 어떻게 도움이 되는지 보여주는 것입니다.

트랜잭션은 여기서 직접 열 수 있습니다: Phalcon 트랜잭션 페이지

디버그 모드 진입 방법

Phalcon에서 디버그 모드로 진입하는 방법은 두 가지입니다.

첫 번째는 Invocation Flow 뷰의 특정 행에서 진입하는 방법이고, 두 번째는 트랜잭션 페이지 우측 상단의 Debug 버튼을 통한 방법입니다. 두 방법 모두 동일한 디버깅 환경으로 연결되지만, 이미 의심스러운 단계를 발견하고 정확히 그 지점에서 분석을 시작하고 싶을 때는 Invocation Flow에서 시작하는 것이 더 유용한 경우가 많습니다.

Euler 익스플로잇 예시에서, 트랜잭션에는 Aave에서 플래시 론을 빌리고 DAI를 Euler에 예치하는 등 많은 단계가 포함되어 있습니다. 특히 의심스러운 단계는 donateToReserves() 호출인데, 공격자가 프로토콜에 매우 큰 금액을 기부하는 부분입니다. 이는 더 깊은 검토가 필요한 유형의 행동이며, Phalcon Debug를 통해 사용자는 바로 그 지점에서 분석을 시작할 수 있습니다.

디버그 뷰 레이아웃
디버그 뷰 레이아웃

디버그 뷰 레이아웃

디버그 모드에 진입하면 Phalcon은 단계별 트랜잭션 분석을 위한 작업 공간을 표시합니다. 레이아웃은 다섯 개의 핵심 패널로 구성됩니다.

Call Trace Panel은 외부 호출 및 이벤트의 추적을 보여줍니다. Source Code Panel은 현재 컨트랙트의 소스 코드를 표시하고 관련 라인을 강조합니다. Debug Console은 호출 수준의 단계 제어를 제공합니다. Debug Trace Panel은 내부 및 외부 호출을 모두 포함한 현재 컨트랙트 호출 스택을 보여줍니다. Parameters & Return Values Panel은 현재 호출의 입력값과 출력값을 표시합니다.

이 레이아웃은 사용자가 트랜잭션의 한 부분을 이해하기 위해 여러 도구를 오갈 필요가 없기 때문에 유용합니다. 추적을 읽고, 코드를 검사하고, 한 곳에서 실행 로직을 따라갈 수 있습니다.

때로는 소스 코드 패널에 코드가 표시되지 않을 수 있습니다. 이는 보통 현재 호출이 검증되지 않은 컨트랙트를 가리킬 때 발생합니다. 이 Euler 사례에서 공격자 컨트랙트는 검증되지 않아 소스 코드를 사용할 수 없습니다. 하지만 eDai 컨트랙트는 검증되어 있으므로, 사용자는 Step In을 통해 검증된 로직 내에서 분석을 계속할 수 있습니다.

컨트랙트가 검증된 경우의 디버그 모드
컨트랙트가 검증된 경우의 디버그 모드

검증된 eDai 컨트랙트로 진입한 후, 사용자는 donateToReserves()의 구현 내부로 더 깊이 들어가 의심스러운 트랜잭션 단계 뒤에 있는 정확한 코드 경로를 검사할 수 있습니다.

donateToReserves() 디버그
donateToReserves() 디버그

디버그 콘솔 사용 방법

디버그 콘솔은 사용자가 트랜잭션 실행을 상세히 이동할 수 있도록 설계되었습니다. Call Trace Panel은 외부 호출과 이벤트만 표시하고 내부 함수 호출은 표시하지 않기 때문에 이는 중요합니다. 디버그 콘솔이 그 간격을 채워줍니다.

Phalcon은 이 패널에서 여러 탐색 제어 기능을 제공합니다. NextPrevious는 각각 두 가지 버전이 있습니다. 빨간색 버튼은 전체 호출 추적을 이동하고, 파란색 버튼은 현재 함수 내에서 이동합니다. Step In은 피호출 함수로 진입하고, Step Out은 현재 함수의 호출 지점으로 돌아갑니다.

이 제어 기능을 통해 사용자는 컨트랙트 로직을 한 줄씩 이동하며 상태 변화가 어떻게 발생했는지 이해할 수 있습니다. Euler 사례에서 이를 통해 donateToReserves() 뒤에 있는 더 깊은 문제를 밝힐 수 있습니다. 분석 결과, 공격자가 1억 eDAI를 기부하여 eDAI와 dDAI의 관계를 변화시키고 해당 포지션을 청산 가능하게 만든 것으로 나타났습니다. 근본 원인은 donateToReserves()가 청산 가능 여부에 대한 유동성 검사를 누락하여 공격자가 청산을 실행하고 가치를 추출할 수 있었다는 것입니다.

바로 이 지점에서 Phalcon Debug는 단순한 뷰어를 넘어섭니다. 컨트랙트 실행 내부에서 근본 원인을 찾기 위한 실용적인 트랜잭션 분석 도구가 됩니다.

디버그 뷰 레이아웃
디버그 뷰 레이아웃
Euler 익스플로잇의 근본 원인
Euler 익스플로잇의 근본 원인

Phalcon Security 시작하기

모든 위협을 감지하고, 중요한 알림을 받고, 공격을 차단하세요.

지금 무료로 시작하기

디버그 뷰 공유

또 다른 유용한 기능은 디버그 뷰를 URL로 직접 공유할 수 있다는 것입니다. 공유 링크에는 선택된 추적 행이 포함되어 있어, 다른 사용자가 열면 즉시 동일한 디버그 뷰를 볼 수 있습니다.

이는 보안 팀에게 특히 유용합니다. 긴 설명을 작성하거나 팀원에게 동일한 뷰를 수동으로 재현하도록 요청하는 대신, 한 분석가가 정확한 컨텍스트를 공유할 수 있습니다. 이는 인시던트 분석이나 내부 검토 중 협업을 훨씬 빠르게 만들어줍니다.

일반적인 워크플로우는 다음과 같습니다. 먼저, Invocation Flow에서 의심스러운 단계를 찾습니다. 다음으로, 디버그 모드를 사용하여 코드, 내부 호출, 파라미터를 검사합니다. 마지막으로, 팀원들이 동일한 컨텍스트를 검토하고 논의를 계속할 수 있도록 정확한 디버그 뷰를 공유합니다.

기타 유용한 기능

Phalcon Debug에는 분석 효율성을 향상시키는 몇 가지 추가 기능이 포함되어 있습니다.

Call Trace View는 파라미터 스위치를 켜면 전체 파라미터를 표시할 수 있습니다. 이를 통해 사용자는 각 단계를 일일이 열지 않고도 더 풍부한 컨텍스트를 검사할 수 있습니다.

외부 호출의 경우, 사용자는 Rawdata를 클릭하여 원시 호출 파라미터를 검사할 수도 있습니다. 이는 디코딩된 데이터만으로는 충분하지 않거나 콜데이터가 실제로 어떻게 구성되었는지 확인하고 싶을 때 유용합니다.

이러한 세부 사항은 작아 보일 수 있지만 실제 분석 중에 많은 시간을 절약해줍니다. 익스플로잇 조사, 감사 작업, 컨트랙트 검토에서 작은 워크플로우 개선이 큰 차이를 만드는 경우가 많습니다.

파라미터 스위치
파라미터 스위치

하나의 트랜잭션을 넘어 더 넓은 공격 경로에서 자산이 어떻게 이동했는지 추적하고자 하는 팀에게는 MetaSleuth가 자연스러운 다음 단계입니다. 트랜잭션 수준의 근본 원인이 명확해진 후, 조사자가 주소와 엔티티 전반에 걸쳐 자금을 추적하는 데 도움을 줍니다.

MetaSleuth 조사 살펴보기

흐름을 추적하고 조사를 위한 증거를 구축하세요

지금 무료로 시작하기

Phalcon Debug는 트랜잭션이 표면적인 읽기만으로는 너무 복잡하지만 명확한 설명이 필요할 때 가장 유용합니다. 사용자가 의심스러운 추적 항목에서 실제 코드 경로, 내부 로직, 근본 원인으로 나아가는 데 도움을 줍니다. 이는 보안 연구뿐만 아니라 인시던트 검토, 익스플로잇 분석, 스마트 컨트랙트 평가에도 가치 있게 만들어줍니다. 배포 전 코드를 강화하고자 하는 팀에게는 이 같은 사고방식이 자연스럽게 스마트 컨트랙트 감사인프라 감사와 연결되는데, 이곳에서는 복잡한 동작이 실제 위험이 되기 전에 검토됩니다.

관련 리소스

Get Real-Time Protection with Phalcon Security

Audits alone are not enough. Phalcon Security detects attacks in real time and blocks threats mid-flight.

phalcon security

Go Deeper with MetaSleuth Investigation

Extend your crypto compliance capabilities with Blocksec's MetaSleuth Investigation, the first platform for tracing funds, mapping transaction networks and revealing hidden on-chain relationships.

Move from detection to resolution faster with clear visual insights and evidence-ready workflows across the digital assets ecosystem.

MetaSleuth Investigation