algorand-vulnerability-scanner
작성자 trailofbitsalgorand-vulnerability-scanner는 Algorand TEAL 및 PyTeal용 보안 감사 스킬입니다. 재키잉 공격, 수수료 검증 공백, 필드 검사, 접근 제어 결함을 포함한 11가지 흔한 이슈를 찾아내는 데 도움을 줍니다. 수동 감사 전에 실무적인 1차 검토 용도로 algorand-vulnerability-scanner 스킬을 사용하세요.
이 스킬은 84/100점을 받아, Algorand 전용 보안 스캐너가 필요한 디렉터리 사용자에게 충분히 유력한 후보입니다. 저장소에는 에이전트가 일반적인 프롬프트보다 적은 추측으로 적용할 수 있을 만큼의 구조, 트리거, 취약점 커버리지가 들어 있습니다. 다만 실제 도입을 위해서는 실행 방법과 도구 통합 세부 정보가 조금 더 명확하면 좋습니다.
- TEAL/PyTeal 감사, 사전 점검, Algorand 계약 수정 검증에 맞춘 명확하고 구체적인 트리거 범위.
- 11가지 취약점 패턴, 탐지 패턴, 그리고 보조 체크리스트의 완화 가이드까지 갖춘 탄탄한 실무 콘텐츠.
- 여러 개의 헤딩, 코드 펜스, Tealer 및 repo/file 마커 참조까지 포함해 에이전트 사용에 적합한 저장소 깊이.
- 설치 명령이나 실행 스크립트가 제공되지 않아, 사용자가 워크플로를 실제로 어떻게 운영할지 직접 추론해야 할 수 있습니다.
- 증거가 자동화보다 문서 중심이라, 바로 실행 가능한(turn-key) 처리를 원하는 에이전트에게는 반복성이 다소 제한될 수 있습니다.
algorand-vulnerability-scanner 스킬 개요
algorand-vulnerability-scanner는 TEAL과 PyTeal로 작성된 Algorand 스마트 컨트랙트를 위한 집중형 보안 감사 스킬입니다. 일반적인 코드 리뷰가 놓치기 쉬운 플랫폼 특화 실수를 잡아내는 데 도움을 주며, 특히 트랜잭션 검증, rekeying, 수수료, 상태 기반 애플리케이션 로직에서 강점을 보입니다. 수동 감사 전에 실용적인 1차 보안 점검이 필요하거나, 알려진 Algorand 공격 패턴을 기준으로 수정 사항을 검증해야 할 때 algorand-vulnerability-scanner 스킬을 사용하세요.
이 스킬이 적합한 사람
가장 잘 맞는 대상은 Algorand 프로젝트를 검토하는 감사자, 스마트 컨트랙트 엔지니어, 보안 팀입니다. 코드베이스에 .teal 파일, PyTeal import, Beaker 기반 앱, 또는 Txn, Gtxn, Global, InnerTxnBuilder에 의존하는 트랜잭션 중심 로직이 포함되어 있을 때 특히 유용합니다.
잘하는 일
이 스킬은 흔한 Algorand 취약점 패턴 11개를 중심으로 설계되어 있어, 광범위한 아키텍처 리뷰보다 플랫폼 특화 탐지에 더 강합니다. 그래서 RekeyTo 체크 누락, 안전하지 않은 트랜잭션 가정, 약한 필드 검증 같은 문제를 찾아내는 데 적합합니다.
혼자만 믿으면 안 되는 경우
이 스킬은 완전한 감사 도구가 아니며, 프로토콜 지식, 불변식 추론, 그리고 두 번째 사람의 검토를 대체하지 못합니다. 컨트랙트가 특이한 트랜잭션 그룹, 커스텀 권한 부여 로직, 복잡한 크로스컨트랙트 흐름에 의존한다면, 결과를 최종 판정이 아니라 보안 체크리스트로 보세요.
algorand-vulnerability-scanner 스킬 사용 방법
스킬 설치 및 불러오기
algorand-vulnerability-scanner 설치 단계에서는 Trail of Bits skills repo에서 추가한 뒤, 스킬 파일을 컨텍스트로 열어보세요:
npx skills add trailofbits/skills --skill algorand-vulnerability-scanner
설치한 다음에는 먼저 스킬 지침을 읽고, 이어서 보조 패턴 레퍼런스를 확인해 스캐너가 실제로 무엇을 찾는지 이해하세요.
먼저 확인할 파일
아래 파일부터 읽으세요:
- 범위, 워크플로, 플랫폼 탐지를 설명하는
SKILL.md - 11개 패턴 체크리스트와 구체적인 취약/안전 예시가 담긴
resources/VULNERABILITY_PATTERNS.md
이 조합이 중요한 이유는 SKILL.md가 언제 이 스킬을 써야 하는지 알려주는 반면, resources/VULNERABILITY_PATTERNS.md는 algorand-vulnerability-scanner 사용 흐름에서 기대해야 할 구체적인 점검 항목을 보여주기 때문입니다.
보안 관점이 드러나는 프롬프트를 주기
좋은 결과는 컨트랙트 유형, 코드 표면, 리뷰 목표를 분명히 적은 프롬프트에서 나옵니다. 단일 파일인지, 전체 앱인지, 수정 사항인지에 따라 입력을 구체적으로 써야 합니다.
예시 프롬프트:
이 PyTeal approval program에서 Algorand 보안 이슈를 검토해 주세요. rekeying, fee validation, transaction group 가정, access control에 집중해 주세요. algorand-vulnerability-scanner 체크리스트와 일치하는 구체적인 라인이나 패턴을 표시하고, 공격 경로도 설명해 주세요.
이미 우려 지점이 정해져 있다면 그것을 직접 말하세요:
이 TEAL smart signature를 감사해 주세요. 검증되지 않은 fee 노출과 sender 검증 누락을 우선적으로 봐 주세요. 자금이 유출되거나 무단 실행이 가능해질 수 있는 문제를 중심으로 확인해 주세요.
더 나은 결과를 만드는 워크플로
- 대상이 TEAL인지, PyTeal인지, smart signature인지, stateful app인지 먼저 구분합니다.
- 코드에
Txn,Gtxn,Global,InnerTxnBuilder같은 스킬이 기대하는 Algorand 표식이 있는지 확인합니다. - 일반적인 코드 비평이 아니라, 취약점 패턴에 맞춘 체크리스트형 리뷰를 요청합니다.
- 발견 사항이 나오면, 위험 경로를 구현한 정확한 함수나 transaction group을 지정해 프롬프트를 다시 돌립니다.
algorand-vulnerability-scanner 스킬 FAQ
전체 보안 감사의 대체재인가요?
아니요. algorand-vulnerability-scanner 스킬은 고신호의 사전 감사 및 트리아지 도구로 쓰는 것이 가장 좋습니다. 알려진 Algorand 버그 유형을 빠르게 드러내주지만, 컨트랙트가 안전하다는 사실을 증명해 주지는 않습니다.
초보자에게도 유용한가요?
네, Algorand 코드에서 무엇을 살펴봐야 하는지 배우는 목적이라면 유용합니다. 패턴 목록은 이 생태계에서 “안전하다”는 것이 보통 무엇을 의미하는지, 특히 RekeyTo, fee, grouped transaction을 둘러싸고 어떤 점을 확인해야 하는지 알려줍니다.
일반 프롬프트와 무엇이 다른가요?
일반 프롬프트는 보통 범용 코드 리뷰 조언만 내놓을 수 있습니다. 이 스킬은 Algorand 특화 취약점 패턴에 기반하기 때문에, 보안 감사에서 중요한 정확한 transaction field와 contract behavior를 더 잘 짚어줍니다.
이 스킬이 잘 맞지 않는 경우는 언제인가요?
Algorand 컨트랙트를 검토하는 상황이 아니거나, 저장소에 TEAL/PyTeal 로직이 없거나, 컨트랙트가 무엇을 하는지 표면적으로만 설명하면 되는 경우에는 건너뛰세요. 기능 설계나 UX 리뷰처럼 보안과 무관한 작업에도 잘 맞지 않습니다.
algorand-vulnerability-scanner 스킬 개선 방법
컨트랙트 맥락을 먼저 알려 주세요
가장 큰 품질 향상은 어떤 종류의 컨트랙트를 검토하는지, 그리고 어떤 실행 모델을 쓰는지 처음부터 알려주는 데서 나옵니다. 예를 들어 로직이 smart signature인지, stateful application인지, grouped transaction workflow인지 밝혀 주세요. 그러면 algorand-vulnerability-scanner 스킬이 적절한 점검 항목을 우선순위로 잡기 쉬워집니다.
정확한 보안 질문을 공유하세요
이미 위험 영역을 알고 있다면 “리뷰해 주세요”처럼 뭉뚱그려 묻지 마세요. 더 구체적인 요청이 더 날카로운 결과를 만듭니다:
- “모든 payment path에서 보호되지 않은 rekeying을 확인해 주세요.”
- “이 smart signature에서 fee cap 누락 여부를 봐 주세요.”
- “
Gtxnordering을 통해 grouped call이 authorization을 우회할 수 있는지 검증해 주세요.”
관련 코드 조각을 포함하세요
가능하다면 저장소 전체보다 approval program, 의심스러운 함수, 또는 transaction-handling branch를 제공하세요. algorand-vulnerability-scanner 스킬은 누가 무엇을 어떤 field로 어떤 순서에 따라 호출할 수 있는지 결정하는 정확한 로직을 볼 때 가장 효과적입니다.
첫 결과를 바탕으로 반복하세요
출력이 너무 넓다면 한 가지 취약점 클래스, 하나의 entry point, 또는 하나의 transaction group으로 범위를 좁혀 두 번째 패스를 요청하세요. 반대로 너무 좁다면 패턴 목록에서 인접한 점검 항목까지 요청하세요. 특히 rekeying, transaction fields, state validation 주변을 함께 확인하는 것이 좋습니다.
