sec: add SECURITY.md policy, deny.toml config, and document automated audit results

- Add SECURITY.md establishing Responsible Disclosure policy, SLA (48h/5d/90d), scope, and contact channels (security@pansi.eu)
- Configure deny.toml for cargo-deny (advisories, bans, licenses, sources)
- Audit with cargo audit (0 vulnerabilities) and cargo deny (all ok)
- Scan entire git history with gitleaks (101 commits, no secrets leaked)
- Baseline harmless unit-test mock tokens in .gitleaksignore
- Document automated auditing in SECURITY_AUDIT.md and link in README.md
This commit is contained in:
2026-09-21 09:15:20 +02:00
parent 73453a7eb1
commit f0e5d6d26e
5 changed files with 365 additions and 2 deletions
+16 -1
View File
@@ -147,8 +147,23 @@ Dieses Dokument fasst alle 39 Findings aus drei umfassenden externen Sicherheits
- **Freier Speicherplatz unter Linux (W-1):**
- `get_available_disk_space` nutzt unter Unix `libc::statvfs` zur exakten Quota-Ermittlung (`f_bavail * f_frsize`).
### 8. Automatisierte Sicherheitsprüfungen & Supply-Chain-Audit (cargo audit, cargo deny, gitleaks)
- **RustSec Advisory Database (`cargo audit`):**
- Vollständige Prüfung aller 248 Abhängigkeiten in `Cargo.lock` gegen die offizielle RustSec Advisory-Datenbank.
- **Ergebnis:** 0 bekannte Schwachstellen (0 vulnerabilities, 0 security warnings).
- **Supply-Chain- & Dependency-Governance (`cargo deny` via `deny.toml`):**
- `advisories ok`: Keine sicherheitskritischen oder zurückgezogenen (yanked) Crates.
- `bans ok`: Keine gesperrten Crates, unbedenkliche Duplikate (z. B. `windows-sys` Major-Versionen) innerhalb der Vorgaben.
- `licenses ok`: 100 % aller Lizenzen entsprechen den freigegebenen Permissive/OSI-Lizenzen (MIT, Apache-2.0, BSD, CC0, ISC, Unicode-3.0, Zlib, MPL-2.0, LGPL-2.1-or-later).
- `sources ok`: Sämtliche Crates stammen verifiziert aus dem offiziellen `crates.io`-Index.
- **Git-Historien-Scan auf Secrets (`gitleaks`):**
- Vollständiger Audit aller 101 Git-Commits und 1,28 MB Änderungshistorie mit `gitleaks detect`.
- **Ergebnis:** Keine privaten Schlüssel (Minisign Secret Keys, SSH-Schlüssel, Passwörter, API-Tokens) in der Git-Historie vorhanden. Drei harmlose Test-Mock-Strings in Unittests (`src/mount.rs`, `tests/mount_security_test.rs`, `tests/upgrade_security_test.rs`) wurden in `.gitleaksignore` gebaselined.
- **Responsible Disclosure Policy (`SECURITY.md`):**
- Einführung von `SECURITY.md` mit SLA (48h Reaktionszeit, 5 Tage Bewertung), Kontaktadresse (`security@pansi.eu`), Gitea Security Advisories Kanal und 90-Tage Embargo.
---
## Verifikationsnachweis
Alle Unit- und Integrationstests wurden auf einem Windows x86_64 Host mit 100% Erfolgsquote ausgeführt. Die Release-Paketierung für Windows und Linux musl ist voll automatisiert und wird mit Minisign kryptografisch abgesichert.
Alle Unit- und Integrationstests wurden auf einem Windows x86_64 Host mit 100% Erfolgsquote ausgeführt. Die Release-Paketierung für Windows und Linux musl ist voll automatisiert und wird mit Minisign kryptografisch abgesichert. Alle automatisierten Supply-Chain- und Secret-Scans (`cargo audit`, `cargo deny`, `gitleaks`) wurden erfolgreich ohne Befunde absolviert.