Haben Sie Sicherheitszertifizierungen?
Nein. Weder ISO 27001 noch SOC 2, noch eine Zertifizierung für offensive Tests, noch eine Auditor-Akkreditierung. Wir stellen keine Zertifikate aus und unterzeichnen keine Konformitätsbestätigungen. Was wir zeigen können, ist die eigene Praxis mit Datei und Zeile sowie die Kontrollen, die wir in laufende Systeme eingebaut haben. Wenn Sie für eine Akte ein Zertifikat brauchen, brauchen Sie eine akkreditierte Stelle, nicht uns — und es ist besser, das jetzt zu erfahren.
Führen Sie Penetrationstests durch?
Nicht als Dienstleistung. Wir haben kein offensives Testteam, keine Lizenz oder zertifizierte Methodik, und wir tun nicht so, als hätten wir welche. Was wir tun, ist Code- und Konfigurationsanalyse sowie nicht-invasive Prüfungen von außen — Header, Verhalten an der Rate-Grenze, was Fehlermeldungen preisgeben. Wenn das Projekt echte offensive Tests erfordert, brauchen Sie ein spezialisiertes Unternehmen; wir können mit ihm bei der Behebung zusammenarbeiten.
Was haben Sie in Ihren eigenen Systemen gefunden?
Drei Dinge, an einem einzigen Tag der Analyse, alle öffentlich in unserem Register dokumentiert. Eine Route, die einen Telefonanruf an jede Nummer im Anfragetext initiiert, anonym, ohne Authentifizierung, die keine Komponente in der Oberfläche mehr aufgerufen hat — jetzt liefert sie 404, wenn das Geheimnis nicht konfiguriert ist, das heißt, sie ist abgeschaltet, wenn jemand sie nicht bewusst startet. Ein Chat-Widget, das bei jeder Ansicht geladen wurde und die Sitzung im Browser-Speicher schrieb, bevor der Besucher etwas angefordert hatte — jetzt wird es beim Drücken der Schaltfläche geladen. Und die vollständige IP-Adresse, die in einer Benachrichtigung gesendet wurde, obwohl die öffentliche Seite Anonymisierung versprach — jetzt wird sie vor dem Schreiben gekürzt.
Ihre Inhaltsrichtlinie erlaubt `unsafe-eval`. Warum sollte ich Ihnen glauben?
Weil wir es Ihnen gesagt haben, nicht weil Sie es selbst herausgefunden haben. Ja, die Richtlinie dieser Seite erlaubt `unsafe-inline` und `unsafe-eval` in Skripten — das ist eine reale Schwachstelle, übernommen aus der Art, wie bestimmte Drittanbieter-Skripte geladen werden, und es ist genau der Mechanismus, durch den unser eigenes Barrierefreiheits-Audit ein Prüfwerkzeug in die Produktivseite injiziert hat. Bei einem Projekt, bei dem wir die Einschränkung von Anfang an setzen, ist die richtige Form die aus der Beschwerdeplattform: ein eindeutiger Wert pro Antwort, im Proxy erzeugt, und keine Drittquelle für Skripte. Der Unterschied zwischen den beiden ist genau die Diskussion, die wir am Anfang eines Projekts führen sollten, nicht am Ende.
Wie prüfe ich, ohne Ihnen zu glauben, dass die Ratenbegrenzung funktioniert?
Indem Sie zwölf aufeinanderfolgende Anfragen an eine API-Route dieser Seite senden und die Antworten zählen: Die ersten neun gehen durch, die zehnte erhält 429 mit dem Header, der sagt, nach welcher Zeit erneut versucht werden kann. Das Zeitfenster beträgt eine Minute. Der Befehl steht in der Quellliste dieser Seite und Sie können ihn jetzt ausführen. Dasselbe Prinzip wenden wir bei dem an, was wir liefern: Wenn eine Kontrolle von außen durch den Kunden nicht überprüfbar ist, wird sie nicht geliefert, sondern deklariert.
Was geschieht mit personenbezogenen Daten aus einem Formular?
Sie werden in ein Anfügeprotokoll geschrieben, ein Objekt pro Zeile, mit eingeschränkten Rechten auf Datei und Verzeichnis, bevor die Zustellung versucht wird — damit ein defekter Benachrichtigungskanal die Anfrage nicht verschwinden lässt. Die IP-Adresse wird vor dem Schreiben auf das Netzwerkpräfix gekürzt. Ältere Dateien als die deklarierte Frist werden gelöscht, wobei die Anzahl der Tage aus demselben Wert stammt, der in der veröffentlichten Richtlinie erscheint. Und die Zeile im Verzeichnis der Verarbeitungen sagt für jedes Element, in welcher Datei im Code es implementiert ist.
Können Sie die Anmeldung mit staatlicher elektronischer Identität oder elektronischer Signatur durchführen?
Der Code existiert und ist getestet, aber in der Produktion nirgendwo aktiviert, und der Unterschied ist wichtig. Wir haben einen Dienstanbieter für föderierte Anmeldung und einen Signatur-Client geschrieben, beide ohne neue Abhängigkeiten, mit implementierten spezifischen Schutzmaßnahmen und mit Tests. Was fehlt, betrifft nicht den Code: Vertrag mit der Behörde, Systemzertifikat und Registrierung der Produktionsadresse. Bis dahin ist die heute funktionierende Variante die, in der der Bürger auf dem offiziellen Portal unterschreibt und das unterzeichnete Dokument zurücklädt.
Welche Kontrollen setzen Sie normalerweise in einer neuen Anwendung ein?
Header und Content Policy mit eindeutigem Wert pro Antwort; Ratenbegrenzung mit dem korrekt hinter dem Proxy ermittelten Schlüssel; Mandantentrennung in der Datenbank, nicht nur in der Anwendung; verschlüsselte Geheimnisse und niemals in Antworten oder Protokollen; Idempotenzschlüssel für Ereignisse von Dritten; obligatorische Zwei-Faktor-Authentifizierung für Mitarbeiterkonten; Audit-Protokoll mit getrenkter Sichtbarkeit für intern und öffentlich; und für öffentliche Projekte eine automatisch bei jeder Lieferung überprüfte Whitelist von Netzwerkzielen.
Was deckt dieser Dienst nicht ab?
Die Sicherheit des Firmennetzwerks, Benutzergeräte, kontinuierliches Monitoring durch ein Operations Center, Incident Response 24/7, forensische Untersuchung und Phishing-Schulungen. Das sind keine Dinge, die wir schlecht machen — das sind Dinge, die wir nicht machen. Unser Bereich ist die Anwendung, die wir bauen oder übernehmen, plus die Daten, die durch sie fließen.