MCP HubMCP Hub
SKILL·23EAAE

fp-check

trailofbits
업데이트됨 20 days ago
9 조회
7,515
642
7,515
GitHub에서 보기
문서word

정보

fp-check 스킬은 의심되는 보안 취약점을 체계적으로 검증하여 오탐을 제거하고, 문서화된 증거와 함께 명확한 '진양성(TRUE POSITIVE)' 또는 '오탐(FALSE POSITIVE)' 판정을 제공합니다. 이 스킬은 새로운 버그를 발견하기보다는, 악용 가능성이나 오탐 여부에 대한 질문이 있을 때 특정 발견 사항을 검증하도록 설계되었습니다. 주요 기능으로는 Grep, LSP, Bash와 같은 도구를 사용하여 코드를 분석하고 증거 기반의 보안 평가를 생성하는 것이 포함됩니다.

빠른 설치

Claude Code

추천
기본
npx skills add trailofbits/skills -a claude-code
플러그인 명령대체
/plugin add https://github.com/trailofbits/skills
Git 클론대체
git clone https://github.com/trailofbits/skills.git ~/.claude/skills/fp-check

Claude Code에서 이 명령을 복사하여 붙여넣어 스킬을 설치하세요

문서

False Positive Check

When to Use

  • "Is this bug real?" or "is this a true positive?"
  • "Is this a false positive?" or "verify this finding"
  • "Check if this vulnerability is exploitable"
  • Any request to verify or validate a specific suspected bug

When NOT to Use

  • Finding or hunting for bugs ("find bugs", "security analysis", "audit code")
  • General code review for style, performance, or maintainability
  • Feature development, refactoring, or non-security tasks
  • When the user explicitly asks for a quick scan without verification

Rationalizations to Reject

If you catch yourself thinking any of these, STOP.

RationalizationWhy It's WrongRequired Action
"Rapid analysis of remaining bugs"Every bug gets full verificationReturn to task list, verify next bug through all phases
"This pattern looks dangerous, so it's a vulnerability"Pattern recognition is not analysisComplete data flow tracing before any conclusion
"Skipping full verification for efficiency"No partial analysis allowedExecute all steps per the chosen verification path
"The code looks unsafe, reporting without tracing data flow"Unsafe-looking code may have upstream validationTrace the complete path from source to sink
"Similar code was vulnerable elsewhere"Each context has different validation, callers, and protectionsVerify this specific instance independently
"This is clearly critical"LLMs are biased toward seeing bugs and overrating severityComplete devil's advocate review; prove it with evidence

Step 0: Understand the Claim and Context

Before any analysis, restate the bug in your own words. If you cannot do this clearly, ask the user for clarification. Half of false positives collapse at this step — the claim doesn't make coherent sense when restated precisely.

Document:

  • What is the exact vulnerability claim? (e.g., "heap buffer overflow in parse_header() when content_length exceeds 4096")
  • What is the alleged root cause? (e.g., "missing bounds check before memcpy at line 142")
  • What is the supposed trigger? (e.g., "attacker sends HTTP request with oversized Content-Length header")
  • What is the claimed impact? (e.g., "remote code execution via controlled heap corruption")
  • What is the threat model? What privilege level does this code run at? Is it sandboxed? What can the attacker already do before triggering this bug? (e.g., "unauthenticated remote attacker vs privileged local user"; "runs inside Chrome renderer sandbox" vs "runs as root with no sandbox")
  • What is the bug class? Classify the bug and consult bug-class-verification.md for class-specific verification requirements that supplement the generic phases below.
  • Execution context: When and how is this code path reached during normal execution?
  • Caller analysis: What functions call this code and what input constraints do they impose?
  • Architectural context: Is this part of a larger security system with multiple protection layers?
  • Historical context: Any recent changes, known issues, or previous security reviews of this code area?

Route: Standard vs Deep Verification

After Step 0, choose a verification path.

Standard Verification

Use when ALL of these hold:

  • Clear, specific vulnerability claim (not vague or ambiguous)
  • Single component — no cross-component interaction in the bug path
  • Well-understood bug class (buffer overflow, SQL injection, XSS, integer overflow, etc.)
  • No concurrency or async involved in the trigger
  • Straightforward data flow from source to sink

Follow standard-verification.md. No task tracking — work through the linear checklist sequentially, documenting findings inline.

Deep Verification

Use when ANY of these hold:

  • Ambiguous claim that could be interpreted multiple ways
  • Cross-component bug path (data flows through 3+ modules or services)
  • Race conditions, TOCTOU, or concurrency in the trigger mechanism
  • Logic bugs without a clear spec to verify against
  • Standard verification was inconclusive or escalated
  • User explicitly requests full verification

Follow deep-verification.md. Track each phase as a task with explicit dependencies, and execute the phases using the plugin's analysis agents.

Default

Start with standard. Standard verification has two built-in escalation checkpoints that route to deep when complexity exceeds the linear checklist.

Batch Triage

When verifying multiple bugs at once:

  1. Run Step 0 for all bugs first — restating each claim often collapses obvious false positives immediately
  2. Route each bug independently (some may be standard, others deep)
  3. Process all standard-routed bugs first, then deep-routed bugs
  4. After all bugs are verified, check for exploit chains — findings that individually failed gate review may combine to form a viable attack

Final Summary

After processing ALL suspected bugs, provide:

  1. Counts: X TRUE POSITIVES, Y FALSE POSITIVES
  2. TRUE POSITIVE list: Each with brief vulnerability description
  3. FALSE POSITIVE list: Each with brief reason for rejection

References

  • Standard Verification — Linear single-pass checklist for straightforward bugs
  • Deep Verification — Full task-based orchestration for complex bugs
  • Gate Reviews — Six mandatory gates and verdict format
  • Bug-Class Verification — Class-specific verification requirements for memory corruption, logic bugs, race conditions, integer issues, crypto, injection, info disclosure, DoS, and deserialization
  • False Positive Patterns — 13-item checklist and red flags for common false positive patterns
  • Evidence Templates — Documentation templates for data flow, mathematical proofs, attacker control, and devil's advocate reviews

GitHub 저장소

trailofbits/skills
경로: plugins/fp-check/skills/fp-check
0
agent-skills
FAQ

자주 묻는 질문

fp-check Skill이란 무엇인가요?

fp-check은(는) trailofbits이(가) 만든 Claude Skill입니다. Skill은 Claude가 필요할 때 불러오는 지침과 리소스를 묶어 추가 프롬프트 없이 fp-check 관련 작업을 수행할 수 있게 합니다.

fp-check은(는) 어떻게 설치하나요?

이 페이지의 설치 명령을 사용하세요. fp-check을(를) Claude Code 플러그인으로 추가하거나 저장소를 skills 디렉터리에 복제한 다음 Claude를 다시 시작해 Skill을 불러옵니다.

fp-check은(는) 어떤 카테고리에 속하나요?

fp-check은(는) 문서 카테고리에 속합니다.

fp-check은(는) 무료로 사용할 수 있나요?

네. fp-check은(는) AIMCP에 등록되어 있으며 무료로 설치할 수 있습니다.

연관 스킬

railway-docs
문서

이 스킬은 Railway의 기능, 작동 방식 또는 특정 문서 URL에 대한 질문에 답하기 위해 최신 Railway 문서를 가져옵니다. 개발자들이 Railway의 공식 소스로부터 정확하고 최신 정보를 직접 받을 수 있도록 보장합니다. 사용자가 Railway의 작동 방식을 묻거나 Railway 문서를 참조할 때 사용하세요.

스킬 보기
n8n-code-python
문서

이 Claude Skill은 n8n의 Code 노드에서 Python 코드를 작성할 때 전문적인 지침을 제공하며, 특히 Python 표준 라이브러리 사용과 n8n의 특수 구문인 `_input`, `_json`, `_node` 작업에 중점을 둡니다. 이는 개발자가 n8n 내에서 Python의 제한 사항을 이해하도록 돕고, 대부분의 워크플로에는 JavaScript 사용을 권장하면서도 특정 데이터 변환 요구사항에 대한 Python 솔루션을 제안합니다.

스킬 보기
archon
문서

Archon 스킬은 REST API를 통해 RAG 기반 시맨틱 검색과 프로젝트 관리를 제공합니다. 이 스킬을 사용하여 문서 검색, 계층적 프로젝트/태스크 관리, 문서 업로드 기능을 갖춘 지식 검색을 수행할 수 있습니다. 외부 문서를 검색할 때는 다른 소스를 사용하기 전에 항상 Archon을 최우선으로 활용하세요.

스킬 보기
n8n-code-javascript
문서

이 Claude Skill은 n8n의 Code 노드에서 JavaScript 코드 작성에 대한 전문적인 지침을 제공합니다. `$input`/`$json` 변수, HTTP 헬퍼, DateTime 처리와 같은 필수적인 n8n 특정 구문을 다루며 일반적인 오류를 해결합니다. Code 노드에서 사용자 정의 JavaScript 처리가 필요한 n8n 워크플로우를 개발할 때 활용하세요.

스킬 보기