Programm für die Sicherheit des öffentlichen Internets

Das Internet sichern.

NullSquare findet offensichtliche, öffentlich sichtbare Sicherheits-Fehlkonfigurationen und benachrichtigt die verantwortlichen Organisationen vertraulich. Dasselbe Programm untersucht öffentlichen Open-Source-Code auf Probleme, die wir reproduzieren, beheben und belegen können.

Über alle NullSquare-Einsätze hinweg
11,179
Aufgedeckte Risiken
6,742
Bestätigt
449
Kritisch und hoch
152
Verschiedene CVEs

Warum du eine Nachricht erhalten hast

Einer unserer Agenten hat auf einer Domain deiner Organisation etwas gefunden, das zum öffentlichen Internet hin offenliegt. Wir haben dir vertraulich geschrieben, damit dein Team es prüfen und schließen kann. Wir haben es niemandem sonst mitgeteilt und nicht veröffentlicht.

Was das Programm prüft

Das Programm sieht sich nur an, was vom öffentlichen Internet aus ohnehin sichtbar ist:

  • Ein Dienst, der vom Internet aus erreichbar ist, obwohl er es nicht sein sollte.
  • Eine Verwaltungsoberfläche, die jedem offensteht, der sie findet.
  • Ein Entwicklungs- oder Debugging-Werkzeug, das öffentlich weiterläuft.
  • Ein Verzeichnislisting, das Dateien ausliefert, die nie ausgeliefert werden sollten.
  • Eine Standard-Deployment-Seite, die auf einem produktiven Host noch steht.
  • Eine ähnliche Fehlkonfiguration, die jeder auf demselben Weg finden könnte wie wir.

Der Agent nimmt nur so viel mit, wie nötig ist, um die betroffene Domain oder den betroffenen Dienst zu benennen und zu sagen, um welche Art von Problem es sich handelt. Weiter geht er nicht hinein.

Open-Source-Forschung

Eine Benachrichtigung verkleinert die offene Angriffsfläche. Den Code darunter behebt sie nicht. Deshalb arbeitet das Programm auch an der Quelle: Wir wählen ein öffentliches Open-Source-Repository nach dem anderen aus und untersuchen es in einer Wegwerf-Sandbox auf ein Sicherheitsproblem, das wir belegen können.

Ein Agent, der behauptet, etwas sei verwundbar, ist kein bestätigtes Risiko — und Scanner-Ausgaben sind es ebenso wenig. Nichts zählt, bevor es sich reproduzieren lässt, die Behebung hält und beides gut genug aufgeschrieben ist, dass jemand anderes es erneut durchlaufen kann.

  1. 01FestnagelnDas Repository wird bei einem exakten Commit in eine Wegwerf-Sandbox geklont, die keine Produktionszugangsdaten enthält.
  2. 02AusgangswertDer eigene Build und die eigenen Tests des Projekts laufen vor jeder Untersuchung, damit wir wissen, was schon vorher bestanden hat.
  3. 03UntersuchenDer Agent liest den Code und übt ihn innerhalb der Sandbox aus — gegen genau diese festgenagelte Revision.
  4. 04ReproduzierenEin Kandidat zählt erst, wenn er sich aus einem sauberen Checkout reproduzieren lässt, ohne Restzustände aus der Erkundung.
  5. 05BehebenDie kleinste vernünftige Behebung, dazu ein Regressionstest, wo das Projekt einen praktikabel macht.
  6. 06VerifizierenDie Reproduktion wird vor und nach der Behebung erneut ausgeführt, und die eigenen Prüfungen des Projekts laufen noch einmal.
  7. 07PrüfenEin Mensch nimmt das Ergebnis an oder weist es zurück. Nichts verlässt das Labor automatisch.

Tests werden nie gelöscht, übersprungen oder abgeschwächt, um ein Bestehen zu behaupten. Reicht die Arbeit nicht, lautet die Antwort: kein bestätigtes Risiko — festgehalten mit dem, was versucht wurde, und dem, was nicht geprüft werden konnte. So oder so entsteht dasselbe Paket:

Beweispaket

Intern, von einem Menschen geprüft und vom Labor selbst niemals veröffentlicht.

summary.md
Was versucht wurde, was gefunden wurde und was nicht geprüft werden konnte.
risk.md
Ursache, betroffener Codepfad und eine ehrliche Einschätzung der Konfidenz.
reproduction/
Der Befehl und die beobachteten Belege aus der unbehobenen Revision.
patch.diff
Die minimale Behebung, gebunden an den festgenagelten Commit.
tests/
Ein Regressionstest, der vor der Behebung fehlschlägt und danach besteht.
verification.md
Ergebnisse davor und danach, neben der Ausgabe von Build, Tests und Lint.
run-metadata.json
Repository, exakter Commit, Modell, Dauer und Kosten.

Was das Programm nicht tut

  • Kein Erraten von Passwörtern, kein Durchprobieren von Zugangsdaten, kein Umgehen der Authentifizierung.
  • Keine Ausnutzung, keine zerstörenden Tests, keine Rechteausweitung, keine Verkettung von Schwachstellen.
  • Kein Sammeln privater Dateien, Kundendaten, Quellcode oder authentifizierter Inhalte.
  • Keine Veröffentlichung, kein Verkauf, keine öffentliche Indexierung gefundener Probleme.
  • Kein Testen einer produktiven oder gehosteten Umgebung während der Untersuchung. Gearbeitet wird ausschließlich an einem lokalen Klon.
  • Keine Forks, Branches, Commits, Pushes, Pull Requests oder Issues. Das Labor hat keinen Schreibzugriff auf das Repository.
  • Keine Kontaktaufnahme mit Maintainern, keine Advisories, keine CVE-Anträge, keine Bounty-Einreichungen durch das Labor selbst.
  • Kein Massenscannen öffentlicher Code-Hoster. Repositories werden einzeln und bewusst ausgewählt.

Datenschutz und Umgang mit Daten

Benachrichtigungen gehen direkt an einen passenden öffentlichen Kontakt der Domain. Die Erkennungssitzung wird nach der Zustellung verworfen, und NullSquare führt keine durchsuchbare Datenbank der Risiken aus diesem Programm.

Untersuchungsläufe arbeiten ausschließlich mit öffentlichem Quellcode. Die Sandbox wird nach dem Lauf zerstört, und das Beweispaket bleibt intern. Sollte ein Ergebnis je an einen Maintainer herangetragen werden, ist das eine gesonderte, bewusste Entscheidung eines Menschen.

Minimale Aufzeichnungen zu E-Mail-Zustellung, Missbrauchsprävention und Abmeldungen können gesondert aufbewahrt werden. Diese Aufzeichnungen enthalten keine kopierten Zieldaten und keine Exploit-Ausgaben.

Eine Benachrichtigung prüfen oder beantworten

Eine echte Nachricht aus „Secure the internet“ fragt niemals nach Zugangsdaten, Zahlungen, API-Schlüsseln oder Zugriff auf deine Systeme. Du kannst auf die Nachricht antworten, eine Abmeldung verlangen, einen Kontakt korrigieren oder ihre Herkunft direkt bei NullSquare prüfen lassen.

null@nullsquare.net
NullSquareVertrauliche Benachrichtigung. Keine Veröffentlichung.