Add agent security skills for Codex and Claude Code
Same skills in .agents/skills (Codex) and .claude/skills (Claude Code): codeguard, security-review, dependency-vetting, pre-release-gate, authz-idor-audit, threat-model-light. Source: cj/claude-skills. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
parent
431f9ff059
commit
67476ea59b
68 changed files with 6600 additions and 0 deletions
42
.claude/skills/dependency-vetting/SKILL.md
Normal file
42
.claude/skills/dependency-vetting/SKILL.md
Normal file
|
|
@ -0,0 +1,42 @@
|
|||
---
|
||||
name: dependency-vetting
|
||||
description: >
|
||||
Neue Pakete (PyPI, npm) vor dem Einbau prüfen: existiert das Paket wirklich, ist es
|
||||
frisch angelegt, ein Typosquat, ungepflegt oder kaum genutzt.
|
||||
|
||||
TRIGGER WENN eine neue Dependency hinzukommen soll (pip install, npm install, Eintrag in
|
||||
requirements/pyproject/package.json), der User sagt "prüf das Paket", "ist das Paket
|
||||
sicher", "dependency check", "/dependency-vetting", oder ein Diff neue Pakete enthält.
|
||||
|
||||
Ergebnis: pro Paket ein Urteil OK / WARNUNG / EXISTIERT NICHT mit Gründen.
|
||||
---
|
||||
|
||||
# dependency-vetting
|
||||
|
||||
KI-Agenten erfinden Paketnamen („Slopsquatting“). Angreifer registrieren genau diese Namen.
|
||||
Deshalb wird **jede** neue Dependency vor `install` geprüft.
|
||||
|
||||
## Ablauf
|
||||
1. Paketnamen exakt so sammeln, wie sie installiert würden (`pypi:name`, `npm:name`,
|
||||
npm-Scopes wie `npm:@scope/name`).
|
||||
2. Prüfskript ausführen. Im App-Repo mit Baseline:
|
||||
```bash
|
||||
make vet-deps PKGS="pypi:fastapi npm:zod"
|
||||
```
|
||||
Ohne Baseline direkt aus diesem Skill:
|
||||
```bash
|
||||
python3 <skill-ordner>/scripts/vet_deps.py pypi:fastapi npm:zod
|
||||
```
|
||||
Exit-Code: 0 = alles OK, 1 = Warnungen, 2 = mindestens ein Paket existiert nicht.
|
||||
3. Urteil pro Paket übernehmen und **selbst einordnen**:
|
||||
- **EXISTIERT NICHT** → nie installieren. Vermutlich halluziniert; richtigen Namen suchen.
|
||||
- **WARNUNG** (jünger als 90 Tage, wenige Releases, kaum Downloads, Name ähnelt einem
|
||||
bekannten Paket, kein Repository-Link) → dem User zeigen, Alternative vorschlagen,
|
||||
nur mit ausdrücklichem OK installieren.
|
||||
- **OK** → installieren, danach `make audit` (bekannte Lücken).
|
||||
4. Braucht man das Paket überhaupt? Für 20 Zeilen Code keine neue Abhängigkeit.
|
||||
|
||||
## Grenzen
|
||||
Das Skript prüft Metadaten, keinen Code. Ein gekapertes, populäres Paket fällt nicht auf;
|
||||
dafür sind `make audit` und gepinnte Lockfiles da. Ohne Netzzugang meldet das Skript
|
||||
„nicht prüfbar“ – das ist kein OK.
|
||||
Loading…
Add table
Add a link
Reference in a new issue