// SECURITY AUDIT

Sicherheitsaudit-Bericht

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

Audit-Übersicht

Veröffentlicht
📅 Auditdatum: 2026-06-01📄 Umfang: alle 159 .dart-Dateien in lib/ · 14 .html-Plugins in plugins/ · android/-Konfiguration🔬 Methode: dateiübergreifende Kreuzvalidierung + Bottom-up-Schichtenaudit
0
Kritisch
0
Hoch
0
Mittel
0
Niedrig
0
Bestätigt sicher

Gesamturteil: Die Sicherheitslage des Projekts ist solide. Kernmechanismen sind korrekt umgesetzt: Hive-Verschlüsselung sensibler Daten, Sandbox-Isolation, erzwungenes HTTPS. Die Hauptprobleme betreffen das Schlüsselmanagement auf der Android-Build-Maschine, einige Hive-Boxen außerhalb des Verschlüsselungsumfangs und die Passworteingabe in der Plugin-Schicht.

🔧
Behebungsfortschritt seit Veröffentlichung: Spätere Versionen haben mehrere Punkte bereits behoben — API-Keys jetzt pro Anbieter in verschlüsselten Buckets (v1.7.0), Fake-Verschlüsselung des Passwortmanagers als echtes AES-256-GCM neu geschrieben (v1.7.0), 2FA-Persistenz (v1.7.0), strenge SSL-Zertifikatsprüfung im Netzwerk-Toolkit (v1.7.0), Filterung sensibler Felder in der Zwischenablage (v1.7.0), automatische Neuverschlüsselung beim Passwortwechsel (v1.1.0). Aktuelle Fixes: siehe Änderungsprotokoll.

Bestätigte echte Probleme

🔴 Kritisch

Kritisch
#1 Android-Signaturschlüssel-Passwort im Klartext — die Passphrase des Signaturschlüssels liegt im Klartext in der Konfiguration der Build-Maschine; eine kompromittierte Build-Maschine bedeutet einen kompromittierten Signaturschlüssel.

🟠 Hoch

Hoch
#2 ai_plugin_projects-Box speichert aiApiKey unverschlüsselt — Projekt-KI-Schlüssel liegen im Klartext in Hive, außerhalb des Verschlüsselungsumfangs.
Hoch
#3 Hartkodierter Test-Lizenzschlüssel im Plugin-Markt — Testanmeldedaten gehören nicht in Release-Builds.
Hoch
#4 REQUEST_INSTALL_PACKAGES-Berechtigung — die App bittet um Installation aus unbekannten Quellen; der Anwendungsfall sollte minimiert werden.

🟡 Mittel

Mittel
#5 Baidu-Translate-API-Schlüssel per GET-URL-Parameter — der Schlüssel könnte in Zugriffsprotokolle / Verlauf gelangen.
Mittel
#6 Plugins geben Verschlüsselungspasswörter per prompt() ein — die Passworteingabe in der Sandbox sollte den sicheren Tastaturkanal des Hosts nutzen.
Mittel
#7 WebDAV-Auto-Backup-Passwort in Hive — muss bestätigt werden, dass es in einer verschlüsselten Box liegt.
Mittel
#8 RECORD_AUDIO-Berechtigung — sollte nur bei Bedarf für Aufnahmen angefragt werden, nicht dauerhaft.

🟢 Niedrig

Niedrig
#9 sticky_notes-Box speichert Benutzernotizen unverschlüsselt
Niedrig
#10 Buchhaltungs-Plugin speichert Finanzdaten im Klartext
Niedrig
#11 requestLegacyExternalStorage-Kompatibilitätsflag — sollte mit targetSdk-Upgrades entfernt werden
Niedrig
#12 Lesezeichen-Plugin erlaubt http://-URLs — Klartextseiten sollten standardmäßig eine Abwertungswarnung zeigen
Niedrig
#13 Fehlerprotokoll-Export kann interne Pfade offenlegen — Stack-Traces enthalten Dateipfade und Codestruktur

⚪ Vermutete Probleme (manuelle Bestätigung nötig)

Vermutet
S1 Weit verbreitete innerHTML-Nutzung in Plugins (13/14 Plugins) — die meisten escapen bereits mit escapeHtml(), und die Sandbox-CSP begrenzt externe Skripte, aber jede verpasste Escape-Routine ist ein potenzielles DOM-XSS.
Vermutet
S2 console.log / console.error-Aufrufe in Plugins — Ausgabe geht an logcat; Inhalt sind Fehlerobjekte ohne Benutzerdaten, geringes Risiko.

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 Fix-Empfehlungen pro Punkt) erscheint mit dem Open-Source-Repository. Dies ist die Kurzfassung. Sicherheit ist unser Fundament — Hinweise jederzeit über Feedback.
MATRIX-MODUS: AN — erneut eingeben oder ESC zum Beenden