Same choice as the README (previous commit): the 383 / 441 figures were false one commit after they were written (git-forensics' 50-commit window). Keeps the stable figure, 58 findings with the file, re-measured on the release commit. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
91 lines
3.3 KiB
Text
91 lines
3.3 KiB
Text
# .llm-security-ignore — Suppress expected findings when scanning this plugin
|
|
#
|
|
# Why so many suppressed findings? A security plugin that documents attack patterns,
|
|
# ships a malicious demo fixture, and tests against deliberately evil code will
|
|
# trigger its own scanners. This is the "scanning the scanner" paradox:
|
|
#
|
|
# - examples/ contains an intentionally malicious plugin (the demo)
|
|
# - knowledge/ documents real attack regex patterns and example URLs
|
|
# - tests/ contain deliberate taint flows and suspicious URLs as test input
|
|
# - hooks/ and scanners/ contain high-entropy regex for secret detection
|
|
#
|
|
# Every suppression below is explained. Run without this file to see all of them.
|
|
# Measured 2026-09-22 (v8.1.1) on a fresh clone: 58 findings with this file.
|
|
# The suppressed count is not given: it changes with every commit, because
|
|
# git-forensics looks at the last 50 commits.
|
|
#
|
|
# Format: SCANNER:glob or just glob (applies to all scanners)
|
|
# Scanners: UNI, ENT, PRM, DEP, TNT, GIT, NET, MEM, SCR, WFL, TRG, SIG, AST, TFA
|
|
|
|
# Demo fixture: intentionally malicious (the whole point of the demo)
|
|
examples/**
|
|
|
|
# Test files contain deliberate malicious patterns as test input
|
|
TNT:tests/**
|
|
NET:tests/**
|
|
|
|
# Knowledge base documents attack patterns with example URLs and regex
|
|
ENT:knowledge/**
|
|
NET:knowledge/**
|
|
|
|
# Hook scripts contain high-entropy regex patterns and log strings
|
|
ENT:hooks/**
|
|
|
|
# Scanner code contains regex patterns that trigger entropy detection
|
|
ENT:scanners/**
|
|
|
|
# Injection patterns module contains injection keywords (by design)
|
|
TNT:scanners/lib/injection-patterns.mjs
|
|
|
|
# Command files contain long prompt strings
|
|
ENT:commands/**
|
|
|
|
# Permission findings: clean needs write tools (by design), deep-scan uses Bash
|
|
PRM:commands/**
|
|
PRM:agents/**
|
|
|
|
# Git findings: subtree split artifacts and commit message heuristics
|
|
GIT:**
|
|
|
|
# Network: README references to OWASP, Anthropic, research papers
|
|
NET:README.md
|
|
|
|
# Network: agent docs reference example domains for documentation
|
|
NET:agents/**
|
|
|
|
# Network: supply-chain hook legitimately contacts osv.dev and socket.dev
|
|
NET:hooks/**
|
|
|
|
# Orchestrator legitimately writes log file from argv path
|
|
TNT:scanners/scan-orchestrator.mjs
|
|
|
|
# Toxic flow: plugin commands/agents have Read+Bash access by design (it's a security scanner)
|
|
TFA:commands/**
|
|
TFA:agents/**
|
|
|
|
# Network: CLAUDE.md references public repo URL
|
|
NET:CLAUDE.md
|
|
|
|
# Baseline files: generated JSON with scan results (high entropy expected)
|
|
reports/baselines/**
|
|
|
|
# Unicode: the vendored commons conformance corpus carries homoglyph and zero-width inputs on purpose
|
|
UNI:scanners/commons/conformance/**
|
|
|
|
# Unicode: Cyrillic confusables are detection patterns here (the lexicon matches the homoglyph form)
|
|
UNI:scanners/lib/injection-patterns.mjs
|
|
|
|
# Unicode: homoglyph test inputs for the string-utils folding tests
|
|
UNI:tests/lib/string-utils-homoglyph.test.mjs
|
|
|
|
# Unicode: the changelog quotes the homoglyph form a fix detects
|
|
UNI:CHANGELOG.md
|
|
|
|
# Memory: the grade-F posture fixture is poisoned on purpose (that is what grade F tests)
|
|
MEM:tests/fixtures/posture-scan/grade-f-project/**
|
|
|
|
# Signature: the supply-chain blocklist names miner packages so the install hook can block them
|
|
SIG:scanners/lib/supply-chain-data.mjs
|
|
|
|
# Not suppressed on purpose: MEM findings on CLAUDE.md (it documents the hooks, but it is the
|
|
# file a poisoning would target), and AST/TRG, which have no by-design findings here.
|