T

substrate-vulnerability-scanner

작성자 trailofbits

substrate-vulnerability-scanner는 Substrate와 FRAME pallet에서 산술 오버플로, panic DoS, 잘못된 origin 검사, 부정확한 weight, 안전하지 않은 unsigned extrinsic 같은 치명적 문제를 점검하는 데 도움을 줍니다. 이 substrate-vulnerability-scanner 스킬은 런타임, pallet extrinsic, weight 로직에 대한 보안 감사 검토에 사용하세요.

Stars5k
즐겨찾기0
댓글0
추가됨2026년 5월 4일
카테고리Security Audit
설치 명령어
npx skills add trailofbits/skills --skill substrate-vulnerability-scanner
큐레이션 점수

이 스킬의 점수는 78/100으로, 디렉터리 사용자에게 충분히 유력한 후보입니다. Substrate에 특화된 보안 사용 사례가 분명하고, 실행을 안내할 만큼 절차 정보가 갖춰져 있으며, 설치 검토를 정당화할 만한 저장소 내용도 있습니다. 다만 설치 명령이 없고 워크플로우가 도구 자동화보다 문서 중심이라는 점 때문에, 도입 장벽은 어느 정도 예상해야 합니다.

78/100
강점
  • Substrate/FRAME pallet 감사에 명확히 초점이 맞춰져 있으며, 런타임 검토, 출시 전 점검, dispatchable 검증 같은 구체적 사용 사례를 제시합니다.
  • 전용 참조 파일에 탐지 패턴과 완화 방안을 담아, Substrate 특유의 7가지 취약 패턴을 구체적으로 다룹니다.
  • 플랫폼 감지 마커, 코드 예시, 제약 조건 등 운영 가이드를 충분히 제공해 에이전트의 시행착오를 줄여줍니다.
주의점
  • 설치 명령이나 자동화 스크립트가 제공되지 않아, 사용자가 워크플로우에 수동으로 통합해야 합니다.
  • 스킬이 실행형이라기보다 문서 중심에 가까워 보이므로, 결과는 실행 가능한 파이프라인을 따르기보다 에이전트가 패턴을 얼마나 정확히 해석하느냐에 따라 달라질 수 있습니다.
개요

substrate-vulnerability-scanner 개요

substrate-vulnerability-scanner가 하는 일

substrate-vulnerability-scanner skill은 Substrate와 FRAME 코드에서 크래시, 서비스 거부(DoS), 무단 상태 변경으로 이어질 수 있는 7가지 고위험 플랫폼 특화 버그를 점검하는 데 도움을 줍니다. 범용 Rust 리뷰가 아니라 보안 감사 워크플로에 맞춘, 집중형 substrate-vulnerability-scanner가 필요할 때 가장 유용합니다.

누가 사용하면 좋은가

Polkadot parachain이나 독립형 Substrate 체인에서 커스텀 pallet, runtime extrinsic, weight 로직, unsigned transaction 검증을 검토하는 경우 이 skill을 사용하세요. 보안 엔지니어, 프로토콜 개발자, 그리고 더 깊은 수동 분석 전에 빠른 1차 보안 선별이 필요한 리뷰어에게 특히 잘 맞습니다.

무엇을 가장 잘 잡아내는가

이 repository는 일반적인 코드 리뷰에서 놓치기 쉬운 패턴에 맞춰져 있습니다. 예를 들면 산술 오버플로, panic으로 유발되는 DoS, 잘못된 origin 검사, 부정확한 weight, 안전하지 않은 unsigned extrinsic, 그리고 이와 연관된 FRAME 특유의 실수들입니다. 핵심 가치는 광범위한 코드 이해가 아니라, Substrate runtime 코드에서 가장 중요한 보안 취약점 클래스를 찾아내는 데 있습니다.

substrate-vulnerability-scanner 사용 방법

설치하고 검토 범위를 정하기

trailofbits skills package와 함께 substrate-vulnerability-scanner install 흐름을 실행한 뒤, 전체 monorepo가 아니라 runtime 또는 pallet 경계에 맞춰 사용하세요. 무엇을 감사하는지, 어떤 pallet 또는 chain이 범위에 들어가는지, 그리고 exploit 가능성, 수정 권고, 체크리스트형 점검 중 무엇이 필요한지를 입력에 분명히 적을수록 결과가 좋아집니다.

먼저 읽어야 할 파일

우선 SKILL.md를 읽어 탐지 로직을 이해한 다음, 실제 체크 패턴과 완화 방법은 resources/VULNERABILITY_PATTERNS.md에서 확인하세요. repository에 여러 pallet이 있다면 먼저 각 pallet의 lib.rs 또는 mod.rs 파일을 살펴보고, 그다음 weight 파일과 unsigned transaction validation 코드를 확인하세요. 이런 부분이 이 skill의 가치가 가장 크게 드러나는 지점입니다.

skill에 충분한 프롬프트를 주기

약한 프롬프트는 “이 pallet에서 문제를 찾아줘.” 정도입니다. 더 강한 프롬프트는 이렇게 구체적입니다. “pallet_balances의 Substrate 특화 취약점을 검토해줘. extrinsic, storage mutation, weight calculation, origin check에 집중해줘. 검증되지 않은 산술, 사용자 입력에서 도달 가능한 panic 경로, unsigned extrinsic validation의 빈틈을 표시해줘. 파일 경로, 영향받는 함수명, exploit 영향, remediation 제안을 포함해서 결과를 반환해줘.” 이런 식의 프롬프트는 무엇을 우선시해야 하는지와 어떤 형식으로 결과를 원하는지를 분명히 알려 주므로 substrate-vulnerability-scanner usage의 신뢰도를 높여 줍니다.

신호를 높이는 워크플로 팁

이 skill은 구조화된 1차 점검 용도로 쓰고, 표시된 모든 경로는 runtime 문맥에서 다시 검증하세요. 코드를 붙여 넣을 때는 주변 타입 정의와 helper 함수도 함께 포함하는 것이 좋습니다. Substrate 버그는 config traits, origin type, weight 가정처럼 한 함수만 봐서는 드러나지 않는 요소에 의존하는 경우가 많기 때문입니다. repository에 여러 pallet이 있다면 한 번에 전체 판정을 받으려 하지 말고 pallet별로 나눠 실행하세요.

substrate-vulnerability-scanner skill FAQ

substrate-vulnerability-scanner는 Substrate 전용인가요?

네. 이 skill은 범용 Rust 애플리케이션이 아니라 Substrate/FRAME 패턴에 맞춰 설계되었습니다. 일반 프롬프트로도 코드 스멜은 찾을 수 있지만, pallet 의미와 dispatchable 동작에 묶인 체인 런타임 보안 판단이 필요할 때는 substrate-vulnerability-scanner가 더 적합합니다.

Substrate 전문가여야 하나요?

아닙니다. 다만 어떤 코드가 runtime 로직이고 어떤 코드가 오프체인 도구인지 구분할 수 있으면 결과가 더 좋아집니다. 초보자도 정확한 pallet 경로를 제공하고, 넓은 조언보다 구체적인 발견 사항을 요청하면 충분히 사용할 수 있습니다.

언제 이 skill을 쓰지 말아야 하나요?

비즈니스 로직, 암호학, 오프체인 서비스에 대한 유일한 감사 수단으로는 사용하지 마세요. 위험 영역이 runtime pallet 밖에 있다면, 이 skill의 탐지 규칙은 FRAME과 dispatchable 함수에 최적화되어 있으므로 실제 문제를 놓칠 수 있습니다.

일반적인 보안 프롬프트와 무엇이 다른가요?

일반 프롬프트는 폭넓은 리뷰 메모를 생성할 수 있지만, 이 skill은 선별된 Substrate 취약 패턴과 그것이 보통 나타나는 위치를 기준으로 합니다. 그래서 runtime 코드에 보안 관점의 1차 점검이 필요할 때, 추측을 줄이고 판단에 더 도움이 되는 substrate-vulnerability-scanner guide가 됩니다.

substrate-vulnerability-scanner skill 개선 방법

처음부터 적절한 맥락을 제공하기

가장 좋은 입력은 pallet 이름, chain 유형, 그리고 가장 중요하게 볼 코드 경로를 함께 제시합니다. balances, rewards, fees, governance, unsigned transaction, root-only call을 다루는지까지 포함하세요. 이런 정보에 따라 어떤 취약점이 더 중요한지가 달라집니다.

단순한 일치 여부가 아니라 exploit 가능 경로를 요청하기

흔한 실패 방식은 수상한 줄 목록만 있고 보안적 의미가 없는 경우입니다. 패턴이 실제로 도달 가능한지, 어떤 입력이 이를 유발하는지, 영향이 무엇인지, 그리고 config traits나 upstream invariant 때문에 false positive인지까지 설명해 달라고 요청하세요. 그러면 triage에 바로 쓸 수 있는 substrate-vulnerability-scanner usage가 됩니다.

1차 점검 이후 범위를 더 조이기

첫 결과가 너무 시끄럽다면 한 pallet, 한 extrinsic, 또는 ensure_* 검사, weight 수학, storage 산술 같은 하나의 관심사로 범위를 좁히세요. 반대로 첫 결과가 너무 얕다면, 표시된 코드를 resources/VULNERABILITY_PATTERNS.md의 패턴과 주변 trait bound와 대조하는 2차 점검을 요청하세요. 이런 세부 정보가 실제 버그와 안전한 추상화를 가르는 경우가 많습니다.

평점 및 리뷰

아직 평점이 없습니다
리뷰 남기기
이 스킬의 평점과 리뷰를 남기려면 로그인하세요.
G
0/10000
최신 리뷰
저장 중...