// SECURITY AUDIT

Sicherheitsaudit-Bericht

Vertrauen, aber prüfen — jede Audit-Erkenntnis wird hier veröffentlicht.

Audit-Übersicht

3. Prüfrunde · 2026-08-18
📅 Audit-Daten: 2026-08-16 / 17 / 18 (drei Runden)📄 Umfang: alle 279 .dart-Dateien in lib/ · android/ (Bildschirmaufnahme-Dienst komplett erstgeprüft) · docs/ · test/ (alle 351 ausgeführt)🔬 Methode: dateiübergreifende Verifikation + zeilenweises Review + Semgrep SAST (634 Regeln / 510 Dateien) + dynamische Checks
0
Hoch · alle behoben
0
Mittel · alle behoben
0
Niedrig · alle behoben
0
Info · bestätigt
0
Sichere Designs

Fazit: nach drei Runden konvergiert — Angriffsfläche auf Null. Envelope-Verschlüsselung, hopweise Netzprüfung, sandbox mit Berechtigungsgates und crash-sichere Migration blieben über alle drei Runden konsistent robust; neue Audit-Bereiche (Aufnahme / Workflows / Übersetzung / Packager / Sprache) ohne neue hohe/mittlere Befunde; Semgrep SAST: null Treffer in lib/. Bereit für Release.

🔧
Drei Runden, alles behoben: Runde 1 am 08-16 (alle 20 Abschnitte A–T) → Queraudit 08-17 → Nachprüfung 08-18. Insgesamt 2 hohe / 14 mittlere / 9 niedrige + 4 Info — alle hohen/mittleren geschlossen, restliche niedrige am selben Tag behoben. Details im Changelog.

Audit-Verlauf & Fixes

Runde 1 · 2026-08-16 (alle 20 Abschnitte A–T)

Hoch · behoben
KI-Chat folgte Weiterleitungen — gekaperte Chains konnten Antworten verändern. Fix: explizit followRedirects=false + Exception bei 3xx (ai_task_client.dart:27-54).
Hoch · behoben
Zwischenablage ohne Schutz für sensible Daten — jedes Tool konnte lesen. Fix: Zwischenablage standardmäßig geschützt, Security-Center-Prüfung nötig.
Mittel · behoben
SSRF-Varianten-Umgehung — Oktal-/Kurz-/Hex-IPs umgingen die Privatnetz-Sperre. Fix: resolveIpLiteral parst alle Varianten + 6 Unit-Tests (http_safe.dart:72-127).
Mittel · behoben
Plugin-Bridge ohne Größengrenze — böswillige Plugins konnten Speicher erschöpfen. Fix: 10MB storage / 50MB file.
Mittel · behoben
Clipboard-Schreibzugriff während Wiederherstellung — konnte neue Daten verschmutzen. Fix: restorePaused-Mutex (backup_service.dart).
Mittel · behoben
Große Dateikopie blockierte Hauptthread — ANR-Risiko. Fix: Hintergrundthread + @Volatile (MainActivity.kt:1331-1343).
Niedrig · behoben
6 niedrige Befunde — Passwort-Reste vor Sperre, URL-Anzeige in Benachrichtigungen, redundante Logs; alle behoben.

Runde 2 · 2026-08-17 (Queraudit)

Hoch · behoben
HTML-Injektionskette Übersetzung (H1) — unescaped Übersetzungen direkt ins WebView. Fix: HTML-Escaping + CSP meta script-src 'none'.
Hoch · gemildert
tool_keys im Klartext (H2) — Plugin-Schlüssel in Klartext-Hive. Milderung: äußere Backup-Verschlüsselung + erzwungene Export-Anleitung.
Mittel · behoben
Nicht-Loopback http KI-Endpunkte — Klartext-Endpunkte konfigurierbar. Fix: isAllowedEndpoint global + projektweit + auf Anfrageebene.
Mittel · behoben
Externer Dateiimport überschrieb Daten — schweres Datenverlustrisiko. Fix: Merge-Import + atomarer Austausch.
Mittel · behoben
Restliche Klartext-Eingänge (WebDAV/Bridge) — alle auf HTTPS-Pflicht oder Loopback-Whitelist.

Runde 3 · 2026-08-18 (Nachprüfung + neue Bereiche)

Bestanden
Neue Audit-Bereiche ohne hohe/mittlere Befunde — Bildschirmaufnahme-Dienst / Workflow-Aktionen / Übersetzungskette / APK-Packager / Sprachassistent, alle sauber.
Niedrig · behoben
3 niedrige Befunde am selben Tag behoben — unbegrenzte Workflow-Verzögerung (auf 10 Min. begrenzt), Übersetzungs-Redirects (_postNoRedirect), URL-Leck in Fehlbenachrichtigungen (nur host).
Bestanden
Semgrep SAST-Scan — 634 Regeln / 510 Dateien, null Treffer in lib/.
Bestanden
Geräte-Verifikation: 10/10 bestanden — Start / Passwort-Setup / Neustart nach Kill / Clipboard-Gate / AppLock-Neusperre / Teilen-Bestätigung.
Bestanden
Dynamische Checks — flutter analyze 0 Fehler · 351/351 Tests bestanden · Release-Build OK.

Bestätigt sichere Designs

Die folgenden Mechanismen haben die dateiübergreifende Kreuzvalidierung bestanden und gelten als sicher und wirksam:

#MechanismusVerifizierungspfadStatus
1Hardware-Schutz der Hive-VerschlüsselungsschlüsselFlutterSecureStorage → Android Keystore / iOS Keychain
27/7 sensible Boxen verschlüsseltin main.dart kreuzgeprüft; sensible Boxen alle mit Cipher geöffnet
3Sicherungen erzwungen verschlüsseltkein Passwort → UnencryptedBackupException
4Verschlüsselungsalgorithmus der SicherungenPBKDF2 (300k Runden) + AES-256-GCM
5Null Protokoll-Overhead im Releasealle Log-Ausgaben in kDebugMode
6WebDAV-HTTPS erzwungenHTTP-Konfigurationen werden abgelehnt
7Sandbox eval / Function deaktiviertvollständige Object.defineProperty-Abdeckung
8Sandbox-CSP-InjektionMeta-Tag + HTTP-Header, doppelter Pfad
9Path-Traversal-SchutzSicherheitsprüfungen bei Plugin-Import und Backup-Wiederherstellung
10Weitere bestätigte PunkteBackup-Chiffre v3, atomarer Wiederherstellungsablauf, FLAG_SECURE auf sensiblen Seiten usw.
🔬
Der vollständige Bericht (mit Code-Stellen und Fixes) liegt unter docs/security_audit_report_2026-08-18_ZCode.md im Projekt.Sicherheit ist unser Fundament — melden Sie Probleme über Feedback.
MATRIX-MODUS: AN — erneut eingeben oder ESC zum Beenden