sec-track
Macht validierte Sicherheitsfunde nachverfolgbar: legt nach Vorschau und Bestätigung ein Ticket (ticket_writer.py), ein GitHub-Issue oder ein Draft-Security-Advisory (gh) an, prüft vorher Duplikate pe
Files7
View on GitHubSKILL.mdskills/dev/sec-track/SKILL.md
GitHub<img src="banner.png" width="100%" alt="sec-track banner">
sec-track - Funde nachverfolgbar machen
Phase "track". Vertrag: sec-scan/references/contract.md (Regel 4 Geheimnisse, Regel 8 Tickets in §6; Feld ticket in schemas/finding.schema.json). Nur Funde mit Status validated oder weiter - candidate wird nicht getrackt.
Ziel wählen
| Ziel | Wann | Werkzeug |
|---|---|---|
| Ticket im Ticketsystem des Nutzers | Standard, privat, ohne Außenwirkung | ticket_writer.py aus ticket-master |
| GitHub-Issue | nur private Repos oder reine Härtungslücken ohne Exploit-Pfad | gh issue create |
| Draft-Security-Advisory | Schwachstelle in einem öffentlichen Repo | gh api (Repository-Security-Advisories, Entwurf) |
Öffentliches Repo + ausnutzbarer Fund: nie ein öffentliches Issue - das wäre eine Offenlegung (Egress, Regel 6). Dort Draft-Advisory bzw. privates Ticket. Kein Linear, kein Jira.
Ablauf
- Auswahl: welche Funde, welches Ziel. Mehrere Funde nacheinander, nicht als Sammelticket, damit jede id eine eigene Referenz bekommt.
- Duplikatprüfung per Finding-id (
SEC-<12 hex>):finding.ticketbereits gesetzt? Ticket-Verzeichnisse nach der id durchsuchen; bei GitHubgh issue list --state all --search "<id>". Treffer: bestehende Referenz verwenden, nichts neu anlegen. - Text entwerfen: id, Titel, Regel/CWE, Severity, Ort (
pfad:zeile), kurze Wirkung, Empfehlung, Verweis auf Patch-Datei falls vorhanden. Nie ein Geheimnis-Wert (Regel 4): nur Fundort. Keine Exploit-Details über das Nötige hinaus. - Vorschau zeigen, Bestätigung abwarten. Erst danach anlegen - Ticket, Issue oder Advisory sind Außenwirkung bzw. nicht rückholbar.
- Anlegen:
- Ticket (IDs nie von Hand wählen, Regel 8):
python <ticket-master>/lib/ticket_writer.py --title "<SEC-id> <Titel>" --body "<Text>" --project <projekt> --priority <stufe>; die CLI gibt den Pfad der angelegten Ticketdatei aus. Die Doku im Modul nennt teils--urgency; die CLI selbst kennt--priority- vor Gebrauch--helplesen. - Issue:
gh issue create --repo <owner/repo> --title ... --body-file <datei>. - Advisory: Entwurf über die GitHub-REST-Schnittstelle für Repository-Security-Advisories (
gh api); genaue Felder vor Gebrauch in der GitHub-Doku prüfen (offen, hier nicht festgeschrieben). Entwurf lassen, nicht veröffentlichen.
- Ticket (IDs nie von Hand wählen, Regel 8):
- Referenz zurückschreiben:
finding.ticket= Ticket-Pfad/-id,owner/repo#nroder Advisory-Link; dannpython scripts/secfind.py validate findings.json coverage.json(Skript insec-scan).
Changelog
0.1.0 (2026-10-31)
- Erstfassung.