| name | security-audit-cli |
| description | Audit de securite TricorderKit : secret scanning, audit des dependances vs CVE, controle des permissions, analyse de patterns a risque, verification d'anonymisation avant depot public. Declencheurs : audit securite, scan secrets, verifie les fuites, check anonymisation, security scan. |
security-audit-cli â Skill Audit de SĂ©curitĂ© TricorderKit
Version : 0.1.0 â 16/05/2026
Ancrage : TricorderKit v0.8 â Phase 5 active
Statut : ScaffoldĂ© â en dĂ©veloppement
đŻ RĂŽle & dĂ©clencheurs
security-audit-cli est le gardien de sĂ©curitĂ© de l'Ă©cosystĂšme TricorderKit. Il dĂ©tecte les fuites de secrets, les permissions excessives, les dĂ©pendances vulnĂ©rables et les patterns de code Ă risque â avant qu'ils n'atteignent le dĂ©pĂŽt public.
Responsabilités
- Secret scanning â dĂ©tecter clĂ©s API, tokens, mots de passe dans les fichiers sources
- Dependency audit â scanner
requirements.txt, package.json, pyproject.toml vs CVE connus
- Permission check â vĂ©rifier les permissions fichiers (exĂ©cutables non intentionnels, .env exposĂ©s)
- Pattern check â dĂ©tecter anti-patterns sĂ©curitĂ© (eval(), subprocess shell=True, hardcoded paths)
- Anonymisation check â vĂ©rifier l'absence de termes privĂ©s dans les fichiers destinĂ©s au repo public
Déclencheurs
- Commande :
/tk:security audit (scan complet)
- Commande :
/tk:security check-anonymization <file>
- Avant tout push vers un repo GitHub public
- En CI/CD (exit code 2 si CRITICAL bloque le push)
Ce qu'il N'EST PAS
- â Un scanner SAST complet (Bandit/Semgrep font ça â security-audit-cli les orchestre)
- â Un gestionnaire de secrets (HashiCorp Vault / SOPS font ça)
- â Un firewall rĂ©seau ou WAF
âïž Architecture
plugins/security-audit-cli/
âââ README.md â Guide d'utilisation
âââ SKILL.md â Ce fichier
âââ manifest.yml â Compatible cli-forge
âââ secret_scanner.py â Regex patterns API keys, tokens, passwords
âââ pattern_checker.py â Anti-patterns code (eval, shell=True, etc.)
âââ anonymization_checker.py â DĂ©tection termes privĂ©s pour push public
âââ scripts/
âââ security_runner.py â CLI principale (Typer) â entrypoint
Tests dans tests/test_security_audit.py (racine du projet) â 16 tests PASS.
đ RĂšgles de dĂ©tection
Secret Scanner â patterns CRITICAL
| Pattern | Exemple détecté |
|---|
| API Key générique | api_key = "sk-...", API_KEY=abc123 |
| Token GitHub | ghp_..., github_pat_... |
| Token Anthropic | sk-ant-... |
| Clé AWS | AKIA[0-9A-Z]{16} |
| Password hardcodé | password = "...", passwd = "..." |
| Connection string DB | postgresql://user:pass@host/db |
Anonymisation â termes privĂ©s bloquants (push public)
DĂ©clarer les termes privĂ©s dans linked_project/project_config/project.yaml â champ private_terms[].
TricorderKit charge cette liste au runtime pour bloquer tout push public contenant des données métier.
Exemple de configuration :
private_terms:
- MyPrivateProjectName
- MyPrivateAppName
- my-private-cli
Pattern Checker â sĂ©vĂ©ritĂ© HIGH
eval( dans du code Python non test
subprocess.*shell=True sans commentaire justificatif
os.system( sans whitelist explicite
pickle.loads( sur input non validé
đ€ Output Contract
{
"status": "success|partial|error|dry_run",
"skill_name": "security-audit-cli",
"skill_version": "0.1.0",
"timestamp": "...",
"output": {
"summary": "Audit OK â 0 secret, 0 CVE critique, 2 warnings pattern",
"data": {
"secrets_found": 0,
"cve_critical": 0,
"cve_high": 0,
"pattern_warnings": 2,
"anonymization_violations": 0,
"files_scanned": 47,
"findings": []
},
"files_created": ["reports/security/security_report_2026-05-16.md"],
"next_steps": ["Corriger pattern eval() dans plugins/x/y.py:L42"]
}
}
đ Commandes CLI
python plugins/security-audit-cli/security_runner.py audit
python plugins/security-audit-cli/security_runner.py scan-secrets --path plugins/
python plugins/security-audit-cli/security_runner.py check-anon --path plugins/tk-orchestrator/
python plugins/security-audit-cli/security_runner.py audit-deps
python plugins/security-audit-cli/security_runner.py audit --dry-run
đĄïž Niveaux de sĂ©vĂ©ritĂ©
| Niveau | CritĂšres | Comportement CI |
|---|
| CRITICAL | Secret exposĂ©, terme privĂ© dans repo public | Bloquer push â exit 2 |
| HIGH | Pattern dangereux, CVE score >= 9.0 | Warning â exit 1 |
| MEDIUM | CVE score 7.0â8.9, permission incorrecte | Warning â exit 0 |
| LOW | CVE score < 7.0, style recommendation | Info â exit 0 |
đ Notes de fiabilitĂ©
| ĂlĂ©ment | Niveau | Commentaire |
|---|
| Secret scanning regex | â
Confirmé | Patterns battle-tested (gitleaks / trufflehog patterns) |
| Anonymisation check | â
Confirmé | Critique pour workflow public/privé TricorderKit |
| Dependency audit | đĄ Probable | DĂ©pend de pip-audit â disponible Python 3.10+ |
| Pattern check | đĄ Probable | Faux positifs possibles sur code commentĂ© |
| IntĂ©gration CI | đ Ă vĂ©rifier | Hook pre-push Git Ă configurer |
security-audit-cli v0.1.0 â 16/05/2026 â TricorderKit v0.8