entry-point-analyzer
작성자 trailofbitsentry-point-analyzer는 스마트 컨트랙트 코드베이스에서 상태를 변경하는 진입점을 보안 감사용으로 정리하는 데 도움을 줍니다. 외부에서 호출 가능한 함수 중 상태를 수정하는 항목을 찾아 접근 수준별로 묶고, view, pure 및 기타 읽기 전용 경로는 제외합니다. Solidity, Vyper, Solana, Move, TON, CosmWasm 프로젝트에서 호출 표면을 집중적으로 파악해야 할 때 이 entry-point-analyzer 가이드를 활용하세요.
이 스킬의 점수는 77/100으로, 상위권은 아니지만 충분히 쓸 만한 후보입니다. 디렉터리 사용자는 여러 주요 언어에서 상태를 변경하는 스마트 컨트랙트 진입점을 식별하는, 명확하게 범위가 정해진 트리거형 워크플로를 얻을 수 있으며, 일반적인 프롬프트보다 적은 추측으로 작업할 수 있도록 규칙과 예시도 갖추고 있습니다.
- 감사, 진입점, 접근 제어 패턴, 권한 있는 작업에 대한 명확한 트리거 조건을 제공합니다.
- 읽기 전용 함수는 제외하고, 언어별 탐지 규칙과 예시까지 제공해 운영상 명확성이 높습니다.
- Solidity, Vyper, Solana, Move, TON, CosmWasm에 대한 구조화된 참고자료로 에이전트 활용도가 좋습니다.
- 설치 명령이나 도우미 스크립트가 없어, SKILL.md와 참고 자료를 직접 읽어야 합니다.
- 범위가 의도적으로 좁습니다. 진입점 매핑에는 유용하지만, 더 넓은 취약점 탐지나 익스플로잇 생성까지 다루지는 않습니다.
entry-point-analyzer 스킬 개요
entry-point-analyzer 스킬은 더 깊은 보안 검토를 시작하기 전에 스마트 컨트랙트 코드베이스의 상태 변경 공격면을 먼저 정리할 수 있게 도와줍니다. 이 스킬은 “버그가 있나?”보다 “외부에서 접근 가능한 어떤 함수가 상태를 바꾸며, 누가 호출할 수 있나?”가 먼저인 감사 작업에 맞춰져 있습니다.
entry-point-analyzer는 무엇을 위한 스킬인가
Solidity, Vyper, Solana, Move, TON, 또는 CosmWasm 프로젝트에서 실용적인 엔트리 포인트 목록이 필요할 때 entry-point-analyzer 스킬을 사용하세요. 특히 entry-point-analyzer for Security Audit 워크플로에서 유용합니다. 즉, 접근 제어 검토, 권한 기능 식별, 감사 범위 설정에 적합합니다.
entry-point-analyzer가 제외하는 것
이 스킬은 읽기 전용 코드 경로, 순수 헬퍼, 내부 전용 함수를 의도적으로 제외합니다. 그래서 보안 관점의 호출면만 보고 싶을 때, 전체 코드 walkthrough보다 의사결정에 더 도움이 됩니다.
가장 잘 맞는 사용자
보안 감사자, 프로토콜 엔지니어, 그리고 public 또는 privileged 상태 변경 경로를 빠르게 식별해야 하는 에이전트에 가장 잘 맞습니다. 목적이 익스플로잇 연구, 가스 프로파일링, 일반 코드 품질 점검이라면 이 도구는 맞지 않습니다.
entry-point-analyzer 스킬 사용 방법
스킬을 설치하고 위치를 찾기
trailofbits/skills 플러그인 저장소에서 entry-point-analyzer install 흐름을 사용하세요:
npx skills add trailofbits/skills --skill entry-point-analyzer
그다음에는 먼저 스킬 엔트리 파일을 읽으세요. 이 저장소에서는 plugins/entry-point-analyzer/skills/entry-point-analyzer/SKILL.md 경로가 가장 중요합니다.
좋은 입력 프롬프트 만들기
entry-point-analyzer usage 패턴은 저장소, 언어, 검토 목표를 처음부터 함께 주면 가장 잘 작동합니다. 예를 들면 다음과 같습니다.
“이 Solidity 프로토콜을 분석해서 상태를 바꾸는 모든 external/public 엔트리 포인트를 찾아라. 접근 제어와 배포 시 동작 기준으로 묶어라. view와 pure 함수는 제외하라. admin 전용, role-gated, fallback, constructor 경로를 강조하라.”
코드베이스가 여러 언어를 섞고 있다면 그것도 분명히 말하세요. 특정 모듈, 컨트랙트, 패키지만 보고 싶다면 정확히 이름을 지정하세요.
지원 파일을 먼저 읽기
실제 출력 품질을 원한다면 SKILL.md에서 멈추지 마세요. 이 스킬에서는 보조 참고 문서가 언어별 엔트리 포인트 규칙을 더 분명하게 설명하는 경우가 많습니다.
references/solidity.mdreferences/vyper.mdreferences/solana.mdreferences/move-aptos.mdreferences/move-sui.mdreferences/ton.mdreferences/cosmwasm.md
이 파일들에서 fallback 핸들러, transaction-only 함수, message receiver, 접근 제어 패턴 같은 엣지 케이스를 확인할 수 있습니다.
유용한 결과를 만드는 워크플로
먼저 코드베이스 전체의 엔트리 포인트 맵을 요청한 뒤, 가장 위험도가 높은 항목만 좁혀서 다시 물어보세요. 예를 들어 1차 목록을 받은 다음에는 admin-gated 함수만, 업그레이드나 마이그레이션 경로만, 또는 ownership과 authorization 상태를 건드리는 함수만 따로 요청할 수 있습니다. 이런 순서가 있어야 한 번에 요약만 받는 것보다 스킬 활용도가 높아집니다.
entry-point-analyzer 스킬 FAQ
entry-point-analyzer는 스마트 컨트랙트용만인가
네. 이 스킬은 스마트 컨트랙트 코드베이스와 체인별 엔트리 포인트 관례를 위해 설계됐습니다. 일반적인 백엔드, 프런트엔드, 범용 애플리케이션 코드에는 맞지 않습니다.
일반 프롬프트와 무엇이 다른가
일반 프롬프트는 언어별 엔트리 포인트 규칙을 자주 놓칩니다. 특히 Solidity, Move, TON, CosmWasm 사이를 오갈 때 그 차이가 큽니다. entry-point-analyzer 스킬은 대상 범위를 더 좁게 잡아 줍니다. 즉, 상태를 바꾸는 외부 표면만 보고, 노이즈를 줄이는 제외 규칙까지 함께 적용합니다.
entry-point-analyzer는 초보자에게도 쉬운가
컨트랙트의 외부 상태 변경면을 이해하려는 목적이라면 네, 충분히 쉽습니다. 하지만 스스로 취약점을 찾아내는 도구를 기대한다면 덜 친절할 수 있습니다. 이 스킬은 익스플로잇 탐지보다 범위 설정과 분류에 초점이 있기 때문입니다.
언제 쓰지 말아야 하나
읽기 전용 분석, 일반 코드 리뷰, 익스플로잇 개발이 필요할 때는 entry-point-analyzer를 사용하지 마세요. 코드베이스가 스마트 컨트랙트 시스템이 아니거나, 내부 헬퍼까지 포함한 모든 함수를 봐야 하는 경우에도 적합하지 않습니다.
entry-point-analyzer 스킬 개선 방법
분석 경계를 제대로 지정하기
가장 좋은 entry-point-analyzer usage는 명확한 대상 범위에서 시작합니다. 하나의 repo, 하나의 프로토콜, 하나의 배포 패키지처럼 경계가 분명해야 합니다. 관련 없는 패키지까지 섞으면 결과는 더 시끄러워지고 신뢰하기도 어려워집니다.
관심 있는 접근 제어 질문을 분명히 하기
사용자가 보통 알고 싶은 것은 세 가지 중 하나입니다. “누구나 호출할 수 있는 것은 무엇인가?”, “admin 전용은 무엇인가?”, “배포나 마이그레이션 동안 상태를 바꾸는 것은 무엇인가?” 이런 식으로 명시해서 물어보세요. 이 스킬은 파일별 나열보다 호출 가능성과 권한 기준으로 묶어 줄 때 가장 강합니다.
필요할 때는 언어별 맥락을 제공하기
멀티랭귀지 repo라면 어떤 프레임워크 관례를 우선할지 알려 주세요. 예를 들어 Solana에서는 Anchor, CosmWasm에서는 entry_point 패턴, TON에서는 receive handler를 언급할 수 있습니다. 이렇게 하면 프레임워크 특유의 엔트리 경로에서 놓치는 항목이 줄어듭니다.
목록 작성에서 검토로 이어가기
먼저 완전한 엔트리 포인트 맵을 요청하세요. 그다음에는 가장 위험해 보이는 함수 5개, 그 함수들이 의존하는 권한 검사, 그리고 특이하거나 보호가 약해 보이는 상태 변경 경로를 다시 물어보세요. 이 두 단계 방식은 한 번에 전체 보안 감사를 요청하는 것보다 결과가 좋습니다. 깨끗한 표면 맵에서 출발할 때 스킬의 출력물을 가장 쉽게 검증할 수 있기 때문입니다.
