Zum Inhalt springen

Sicherheitsgrenzen

Was die Anwendung von sich aus durchsetzt — und wo ihre Grenzen liegen. Der zweite Teil ist der wichtigere: Er sagt, was die Umgebung leisten muss.

Maßnahme Wirkung
Upload-Obergrenze gilt für den Webserver und die Multipart-Grenze; darüber 413, bevor der Inhalt verarbeitet wird
Keine DTD (XXE) die Engine liest Rechnungs-XML mit verbotener DTD-Verarbeitung und ohne Entity-Resolver. Eine externe Entität kann damit weder Dateien lesen noch Netzzugriffe auslösen
Schemaprüfung nur lokal geprüft wird gegen die mitgelieferten Schemata; der Schema-Resolver löst ausschließlich lokal auf. Ein schemaLocation im Dokument führt zu keinem Netzzugriff — sonst wäre jede hochgeladene Rechnung ein SSRF-Vektor
Keine externen Hosts (CSP) default-src 'self', Skripte nur mit Nonce, keine Inline-Skripte. Alle Bibliotheken liegen lokal — kein CDN. Im Modus OnPremise ist die Richtlinie rein 'self'
Bot-Schutz der Formulare Honigtopf-Feld und signierte Zeitfalle auf allen Formularseiten. Fehler im Schutz selbst lassen die Anfrage durch, statt die Seite unbenutzbar zu machen
Zugriffsbegrenzung fester Zählrahmen je Adresse bzw. je API-Schlüssel, ohne Warteschlange
Passwörter PBKDF2-HMAC-SHA256, 210 000 Iterationen, eigenes Salz je Konto; mindestens 12 Zeichen; Sperre nach 10 Fehlversuchen für 15 Minuten
Anmelde-Links 15 Minuten gültig, einmalig einlösbar, in der Datenbank nur als Hash; eine Bestätigungsseite verhindert, dass ein Mail-Scanner die Anmeldung auslöst
API-Schlüssel im Schlüsselspeicher liegen nur SHA-256-Hashes; der Klartext erscheint einmalig beim Anlegen und existiert danach nirgends
Cookie und Antiforgery HttpOnly, SameSite=Lax und außerhalb der Entwicklung Secure; die Schlüssel liegen im persistenten Ring unter .aspnet\
Trennung der Mandanten jede Archivabfrage ist mandantenbezogen konstruiert; die Mitgliedschaft wird je Anfrage frisch gelesen, ein Entzug wirkt sofort

/api-docs und /openapi/v1.json sind öffentlich, auch in der Enterprise-Installation. Sie enthalten die Beschreibung der Schnittstelle, keine Daten; wer das nicht möchte, blendet die Pfade im Reverse Proxy aus.

Die Oberfläche wird nicht automatisch über HTTPS erzwungen. Es gibt keine Weiterleitung von HTTP auf HTTPS und keine Option „nur HTTPS“ im Installer; wer beides braucht, regelt es am Proxy.

Übersetzt ist die Oberfläche, nicht jeder Prüfbefund. Ein Teil der Meldungen kommt aus der Engine und ist deutsch; Regel-IDs und BT-Fundstellen sind sprachneutral.

Zwei Ordner im Programmverzeichnis sind sicherheitsrelevant und werden gern übersehen: keys\ mit den Schlüssel-Hashes und .aspnet\ mit dem Schlüsselring. Siehe Daten und Sicherung.