스캐너가 답하는 것은 '이 코드의 무엇이 잘못됐는가'입니다. 출시 전에 정말 알고 싶은 것은 다른 질문입니다: 공격자가 실제로 무엇을 쓸 수 있는가? 이 도구는 스캔이 만들어 낸 발견 항목을 가져와 통하는 경로 하나로 엮어 보고 — 엮어 낸 경로마다 어디까지가 증명이고 어디부터가 추론인지, 개념 증명이 실제로 실행되었는지를 분명히 밝힙니다. 나빠 보인다는 이유만으로 '확인됨'이라고 말하지 않습니다.
각 계열이 여기 있는 이유는, 그 전제 조건을 증명할 수 있는 탐지기가 스캐너에 있기 때문입니다. 플레이북의 모든 경로에는 어떤 조건이 먼저 성립해야 사용자의 코드에 대해 보고되는지가 적혀 있습니다.
권한을 넘겨줄 수 있는 함수가, 호출한 사람이 누구인지 확인하는 것을 잊었습니다. 가장 오래되고 가장 흔한 계열입니다. 어떤 기교도 필요 없고 — 누군가 그 한 줄을 쓰지 않기만 하면 되기 때문입니다.
컨트랙트가 '당신이 얼마를 가져갔는지'를 기록하기 전에 되돌아 들어와 한 번 더 가져갑니다. 세월이 지나도 여전히 통합니다. 순서를 거꾸로 쓴 것은 로직을 틀리게 쓴 것보다 리뷰에서 알아보기 어렵기 때문입니다.
밑천이 필요 없는 공격 — 밑천은 빌려서 같은 트랜잭션 안에서 갚습니다. '공격자가 먼저 천만 달러를 갖고 있어야 한다'는 가정을 아예 지워 버립니다.
컨트랙트가 어떤 자산이 얼마인지를 다른 무언가에 묻는데, 그 답을 고를 수 있습니다. 문제는 컨트랙트의 산술이 아니라 누구를 믿기로 했는가에 있습니다.
컨트랙트가 가격을 매기는 근거인 시장을 살짝 밀거나, 곧 체결될 거래의 앞뒤를 노립니다. 코드는 전부 맞고, 가격이 휘둘립니다.
하나의 서명이 한 번보다 많이, 한 체인보다 많은 곳에서, 또는 한 가지보다 많은 일에 유효합니다. 서명 자체는 유효합니다 — 유효하기 때문에 재사용이 통합니다.
그 주소 뒤의 코드가 감사받았던 그 코드가 아닙니다. 리포트가 틀린 것이 아니라, 리포트가 설명하던 대상이 이제 거기 없는 것입니다.
평범한 호출자에서 owner로, 또는 owner에서 owner보다 더 많은 것으로. 중간에 여러 단계가 있고, 각 단계만 따로 보면 문제로 보이지 않습니다.
모든 줄이 맞는데, 그것들을 합친 규칙이 틀렸습니다. 이 계열에는 맞춰 볼 패턴이 없고, 이 컨트랙트가 대체 무엇을 하려는지 읽어 내는 수밖에 없습니다.
고장 난 것은 아무것도 없습니다. 다만 인센티브 구조가 사용자보다 공격자에게 더 많이 지불할 뿐입니다.
도구 자체(스캐너, 콘솔, SAFI 워크스페이스)의 화면은 아직 영어입니다. 이 페이지들은 그 안으로 들어가기 전에 무엇을 하게 되는지 한국어로 끝까지 설명해 드립니다.
이 도구가 보고하는 모든 경로에는 악용 가능성 판정이 붙습니다. 소스를 읽는 것만으로 내릴 수 있는 가장 강한 판정은 '가능'입니다 — 이는 빼는 것을 잊은 제한이 아니라 일부러 설정한 천장입니다.
'확인됨'이란 누군가 격리된 컨트랙트 사본에 개념 증명을 실행했고 성공했다는 뜻입니다. 이 경로는 아무것도 실행하지 않으므로, 그 단어를 만들어 낼 수 없습니다.
'나빠 보인다'를 '확인됨'으로 적는 도구는 누군가 처음 검증하는 순간 가치 전부를 잃습니다. 그래서 가장 강한 결론을 '가능'에서 멈추는 편을 택했습니다.
필요한 전제 조건 하나하나가 사용자의 코드에서 스캐너가 실제로 잡아낸 무언가를 가리키고, 뒷받침하는 증거도 대체로 갖춰져 있습니다.
이 길이 열려 있다는 말이지, 누가 이미 지나갔다는 말이 아닙니다. 이 두 문장의 차이가, 회의에 들고 갈 수 있는 리포트와 겁만 주는 리포트의 차이입니다.
필요한 전제 조건은 성립하지만, 경로 전체가 탐지기의 직접적인 적중보다는 구조적 추론에 주로 기대고 있습니다.
이런 경우는 사람이 검토할 단서로 분명히 표시됩니다. 단서를 결론처럼 포장하는 것이 이 업계에서 신뢰를 잃는 가장 흔한 방식입니다.
스캔은 사용자의 브라우저에서 돌고 소스는 브라우저를 떠나지 않습니다. 밖으로 나가는 것은 스캔이 만들어 낸 발견 항목뿐입니다 — 탐지기 번호, 함수 표, 접근 제어 표시 — 그리고 그 일이 일어나는 것을 네트워크 패널에서 직접 지켜보실 수 있습니다.
공격 경로를 엮는 것은 AI Agents 요금제에 속하며 회당 5크레딧이 듭니다. 배포된 주소는 블록 익스플로러에서 소스가 검증되어 있어야 합니다: 검증되지 않은 바이트코드에는 읽을 함수가 없고, 따라서 엮을 것도 없습니다.
페이지에는 반드시 체크해야 하는 항목이 있습니다: 이 컨트랙트를 소유하고 있거나, 검토를 위임받았거나, 애초에 본인이 배포한 것이라는 선언입니다.
여기서는 체인을 건드리지 않습니다: 소스는 블록 익스플로러에서 읽어 이 브라우저에서 분석하며, 처음부터 끝까지 어떤 트랜잭션도 만들지도 보내지도 않습니다. 이 체크 항목 자체가 무엇을 증명하지는 않습니다. 그것이 기록하는 것은 의도이며 — 아무나 모르는 사람의 컨트랙트를 대신 테스트해 주는 도구는 전혀 다른 종류의 제품입니다.