Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Einreichen
ToolsExploitsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

FeedsKontaktDatenschutz© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
ShipProof — SOC-2-Nachweise, die sich in GitLab CI selbst sammeln: Jeder Merge erzeugt ein signiertes Bundle, ein OPA-Gate blockiert Releases bei fehlenden Belegen, und Prüfer erhalten einen Link statt Screenshots. | Kitploit
Tools/GitLabGitLab/divyanshukumar0014/shipproof
DefensivwerkzeugeStatische AnalyseCode-AnalyseScripting & AutomatisierungKonfigurationsprüfungCloud-SicherheitDevSecOpsSecret-ErkennungLieferkettensicherheit
GitLabdivyanshukumar0014/shipproof

ShipProof

SOC-2-Nachweise, die sich in GitLab CI selbst sammeln: Jeder Merge erzeugt ein signiertes Bundle, ein OPA-Gate blockiert Releases bei fehlenden Belegen, und Prüfer erhalten einen Link statt Screenshots.

vor 1 TagNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Repository anzeigen
Teilen

ShipProof

SOC-2-Nachweise, die sich selbst in GitLab CI sammeln: Jeder Merge erzeugt ein signiertes Bundle, ein Open-Policy-Agent-Gate blockiert Releases mit fehlenden Nachweisen, und ein Auditor erhält einen einzigen Paket-Link statt Screenshots.

ShipProof-Banner

Live-Auditor-Dashboard · GitLab-Projekt · Demo-Nachweise · Roadmap

Warum ich das gebaut habe

Ich habe ShipProof gebaut, weil Enterprise-Vertriebsprozesse bei der Infosec-Prüfung immer wieder ins Stocken geraten. Wenn ein Auditor SOC-2-Type-II-Nachweise für das Change-Management anfordert, verbringen Entwickler oft zwei Wochen damit, Screenshots in Jira, Slack und Drive zusammenzusuchen.

Ich wollte, dass Nachweise direkt in der Deployment-Pipeline leben. Jeder Merge-Commit in ShipProof erzeugt automatisch ein kanonisches, signiertes Nachweis-Bundle, das Testläufe, Semgrep-SAST-Scans, Gitleaks-Secret-Erkennung, Syft-Software-Stücklisten und CODEOWNERS-Genehmigungen abdeckt.

Meine zentrale Designregel ist strikt: Ein LLM darf Nachweise zusammenfassen oder Issue-Beschreibungen entwerfen, aber niemals ein Release genehmigen. Das Release-Gate ist eine in Rego geschriebene Open-Policy-Agent-Auswertung. Fehlt ein Artefakt oder sieht eine Genehmigung wie ein reiner Gummistempel aus, schlägt das Gate fail-closed fehl, stoppt das Release und legt ein Issue mit dem Lösungspfad an. Wenn das Gate zustimmt, erhält der Auditor einen einzigen Link zu einer statischen Seite oder einer authentifizierten API.

Was ShipProof macht

  • Sammelt Nachweise pro Commit-SHA: Testergebnisse, SAST, Secret-Scans, CycloneDX-SBOMs und Review-Genehmigungen in einem kanonischen JSON-Bundle.
  • Wertet deterministische Policy aus: OPA verweigert standardmäßig. Fehlende Scans, ungültige Signaturen, gebrochene Ketten und schnelle Gummistempel-Reviews stoppen das Release.
  • Markiert Gummistempel-Genehmigungen: Reviews unter fünf Minuten bei Diffs über 500 Zeilen oder reine Autor-Reviews verfehlen die CC8.1-Absicht.
  • Verkettet und signiert Datensätze: Cosign-Signaturen und ein hash-verkettetes JSONL-Ledger erkennen Manipulationen sofort.
  • Legt Lücken-Issues automatisch an: Ablehnungen erzeugen ein GitLab-Work-Item mit der fehlgeschlagenen Kontrolle, Beispiel-Commits und exakten Behebungsschritten.
  • Veröffentlicht Auditor-Pakete: Eine Datenquelle rendert identische JSON-, CSV- und PDF-Ansichten auf GitLab Pages und über eine Lese-API.
  • Bindet GitLab Duo sicher ein: Benutzerdefinierte Duo-Flows sammeln und erzählen Kontext, während OPA die alleinige Beförderungsbefugnis behält.

Abgedeckte Lifecycle-Phasen (alle 9 von 9 automatisiert)

Ich habe ShipProof gegen den GitLab-DevOps-Lifecycle abgebildet. Es automatisiert alle neun Phasen nativ:

PhaseWas ich in der Pipeline automatisiert habe
planGeschlossene Lücken-Work-Item-Verwaltung. Gate-Ablehnungen öffnen automatisch strukturierte Tracking-Issues mit Wiederholungszählern; nachfolgende erfolgreiche Pipelines lösen die Issues automatisch auf und schließen sie mit Verweisen auf die Fix-Commits.
createCode-Review und Quellverwaltung. CODEOWNERS schützt Policy-Dateien; das Gate lehnt Gummistempel-Genehmigungen unter fünf Minuten ab; automatisierte MR-Notizen leiten das Review an; Duo-Flows erzählen MR-Kommentare.
verifypytest, Semgrep SAST und Gitleaks laufen in der Verify-Phase und zeichnen Artefakt-Hashes auf.
packageSyft erzeugt CycloneDX-SBOMs in der Package-Phase und hasht das Artefakt in das Bundle.
secureDas deterministische OPA-Gate prüft Signaturen, Ketten-Hashes und Gummistempel-Regeln vor dem Release.
releaseDer Compliance-Gate-Job blockiert das Deployment in die Produktion; Deploy-Jobs erfordern ein Allow-Verdikt.
configureCloud-Run-Deployment-Manifeste werden aus Umgebungsvariablen gerendert, ohne Secrets zu committen.
monitorPost-Deploy-Prüfungen verifizieren, dass die Digests der laufenden Container-Images mit dem bundle-genehmigten Commit übereinstimmen.
governEin unveränderliches hash-verkettetes Ledger speist Auditor-Pakete, Lücken-Issues und das GitLab-Pages-Dashboard.

Schnellstart

Ich habe ShipProof mit Python 3.11 und Node.js 20 entwickelt.

python -m venv .venv && source .venv/bin/activate && pip install -r requirements.txt

Führe meine Testsuite und Typprüfungen aus:

OPA_BIN=/tmp/opa pytest -q && ruff check src tests demo-app scripts && mypy --strict src scripts

Sammle ein lokales Bundle für jeden Commit:

PYTHONPATH=src python -m comply.collect --sha aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa --out /tmp/bundle.json

Der Collector gibt eine einzelne JSON-Zeile an stdout aus und schreibt das vollständige Bundle zusammen mit policy/inputs.json auf die Festplatte. Wenn Nachweise fehlen, zeichnet das Bundle einen Deny-Status auf.

Verwendung

Nachweise für einen MR sammeln

PYTHONPATH=src python -m comply.collect --sha <40-hex-sha> --out evidence/bundle.json \
  --mr-iid 42 --pipeline-id 1001 --project group/project \
  --pipeline-file pipeline.json --approvals-file approvals.json

In CI bereitet scripts/gate_bridge.py die Datei pipeline.json vor, während scripts/fetch_approvals.py Review-Daten aus der GitLab-API abruft. Fehlende Dateien werden als fehlender Status erfasst und nicht als bestanden angenommen. Jedes stderr-Log enthält die Bundle-Korrelations-ID, und Secrets werden als *** maskiert.

Das Release-Gate bewerten

PYTHONPATH=src python -m comply.gate --bundle evidence/bundle.json --ledger logs/ledger.jsonl

Exit-Code 0 zeigt ein Allow-Urteil an. Exit-Code 1 zeigt eine Ablehnung mit einem strukturierten Fehler an, der die fehlgeschlagene Kontrolle benennt. Exit-Code 2 zeigt ungültige Argumente an. Wenn das Gate in CI blockiert, löst die Pipeline python -m comply.gap aus, um ein Tracking-Issue zu eröffnen.

Ein Auditor-Paket generieren

PYTHONPATH=src python -m comply.packet --ledger logs/ledger.jsonl --release all \
  --out packet.json --csv packet.csv --pdf packet.pdf

Der CSV-Export enthält elf Spalten: bundle_id,commit_sha,mr_iid,pipeline_id,control,proof_type,status,artifact_sha,approver_ids,policy_sha,created_at. Das PDF wird aus derselben JSON-Quelle über Print-CSS gerendert.

Auditor-API starten

AUDITOR_TOKEN=local-only PYTHONPATH=src uvicorn comply.api:app --port 8000

Abfragen von Bundles mit Bearer-Authentifizierung:

curl -H "Authorization: Bearer local-only" "localhost:8000/api/v1/bundles?mr_iid=42"

Die API stellt Endpunkte für Bundle-Abfragen, Release-Pakete und Hintergrund-PDF-Exporte bereit, geschützt durch Bearer-Tokens und ein Ratenlimit von 60 Anfragen pro Minute.

Die Auditor-Webanwendung ausführen

cd auditor && npm install && npm run build

Die Oberfläche ist mit React 19, TypeScript und Tailwind CSS aufgebaut. Sie wird als statische Website mit Hash-Routing exportiert, sodass sie direkt auf GitLab Pages ohne Server-Rewrites ausgeführt werden kann. Wenn keine Backend-API vorhanden ist, werden Beispieldaten aus public/fallback/demo-packets.json verwendet.

Wie die Pipeline funktioniert

Tool herunterladen