Blog
Gedanken zu Entwicklung, Design und allem drumherum.
Ein kostenpflichtiger API-Schlüssel stand in der Seite, und er funktionierte
Eine Kanzleiseite mit einem Bewertungs-Widget, das einen kostenpflichtigen Geocoding-Schlüssel in das HTML rendert. Der Befund ist schmal, trivial automatisierbar und die profitabelste Position im Bericht.
Ihr Onlineshop exponiert eine öffentliche API, die Sie nicht geschrieben haben
Eine Lifestyle- und Commerce-Seite auf einer aktuellen Content-Plattform mit angehängtem Shop. Siebzehn Befunde, und die Shop-Schnittstelle war diejenige, die niemand auditierte, weil sie wie ein Feature aussah.
Eine Nonce in der Seite ist kein Geheimnis, und das Plugin wusste es
Ein Business-Innovationsnetzwerk betrieb eine gepatchte Content-Plattform mit vierzehn Befunden. Der interessante war eine aktivierte Funktion, die ihre eigenen Request-Token im Seitenquelltext veröffentlichte.
Moderne Frontend, alte Backoffice: eine hybride Landschaft auditieren
Eine Petitionsplattform betrieb ein modernes Framework auf der Hauptdomain und ein Legacy-Content-System hinter einem nackten Server ohne Firewall. Die moderne Seite war vorbildlich. Die Legacy-Seite definierte das Risiko.
Was ein Ransomware-Vorfall über die Woche davor lehrt
Ein öffentlicher Netzverbund wurde rund eine Woche exfiltriert, bevor es jemand bemerkte. Diese Analyse handelt von Kontrollen, die diese Verweildauer verkürzt hätten, nicht vom Angreifer.
Die API-Dokumentation war öffentlich, und sie war die beste Karte, die man sich wünschen kann
Eine mit einem automatisierten Framework gebaute Anwendung lieferte interaktive Dokumentation und ein maschinenlesbares Schema an einem bekannten Pfad. Beides war standardmäßig aktiviert und keines hinter einem Login.
Wenn TLS-Durchsetzung optional ist, werden Downgrades langweilig
Eine Universitäts--Content-Plattform lieferte auf manchen Hosts gemischte Protokollversionen. Kein Cipher war schwach, kein Zertifikat abgelaufen, und die Transportschicht fiel trotzdem durch die Bewertung.
Eine gepatchte Landschaft mit sechs Befunden ohne Exploit: Berichtsdisziplin
Eine Restaurantseite hinter einer Web Application Firewall. Alle Plugins aktuell, alle bekannten Exploits scheiterten, und der Bericht hatte trotzdem sechs handlungsrelevante Befunde.
Ein Befund, maximale Wirkung: eine zu permissive Cross-Origin-Policy
Eine kommunale Content-Plattform auf modernem Stack ergab einen einzigen Befund höchster Schwere. Er brauchte keine Versionsprüfung und keinen Exploit; der Browser hat die Arbeit erledigt.
Eine Plattform für interne Kommunikation, im Internet exponiert
Eine öffentliche Kooperations- und Beratungsplattform betrieb ein Content-System mit drei niedrigen Befunden. Die Lehre steckte darin, was ein niedriger Befund Ihnen nicht sagt.
Error-Tracking-Telemetrie beschreibt Ihre Architektur für jeden mit einem Browser
Ein Plattformanbieter mit Java-Backend hinter zwei Reverse-Proxies und modernem Front End. Der interessante Befund war keine Schwachstelle, sondern ein Inventar: Error Tracking offenbarte die interne Struktur.
Die Legacy-Instanz neben der modernen ist die eigentliche Landschaft
Eine Organisation betrieb zwei Generationen einer Content-Plattform gleichzeitig. Die moderne war aktuell; die Legacy-Instanz definierte das Risiko, einschliesslich einer Client-Bibliothek jenseits des Supports.
Statische Seite, Serverless-Funktionen, zwölf Befunde
Eine Site-Builder-Plattform mit Content Delivery Network davor und Funktionen dahinter. Die statische Ebene war sauber; die Funktionsebene und die Mail-Konfiguration waren es nicht.
Ein Plugin kann aktuell sein und trotzdem Datensätze an jeden ausgeben
Ein vollständig gepatchtes Content-Management-System trug ein Plugin mit aktuellen Releases und zwölf Befunden. Das Muster war Autorisierung: Routen, die antworteten, bevor der Berechtigungs-Callback lief.
Fehlerseiten sind ein unbeabsichtigter Endpunkt für API-Dokumentation
In einer gemischten Umgebung tauchten dieselben drei Lecks immer wieder auf: Stack Traces, Framework-Banner und absolute Dateisystempfade. Jedes davon kartiert die Internas kostenlos.
Das Buchungsplugin ist das Produkt, und das Produkt ist eine Verwaltungsoberfläche
Ein Weiterbildungsträger mit Buchungsplugin legte mit dem Plugin dessen komplette Verwaltungsoberfläche frei: Exporte, Teilnehmerdaten, Datei-Uploads und ein unauthentifizierter Cron.
Eine Row-Level-Security-Policy ist eine Grenze, die man clientseitig testen muss
Eine plattformgenerierte Anwendung speicherte jede Mandantentabelle hinter Row Level Security. Die Policy war auf dem Papier korrekt und in der Praxis umgehbar, weil der Client einen Schlüssel hielt, dem die Policy zu sehr vertraute.
Zwanzig Befunde, eine Plattform: Wie Volumen die Behebungsreihenfolge verändert
Ein Industrielieferant mit grosser Content-Oberfläche ergab zwanzig Befunde in sieben Kategorien. Der Wert lag in der Reihenfolge, nicht in der Anzahl.
Eine Single Page Application liefert ihre Routenkarte selbst aus
Eine moderne Framework-Anwendung mit fast keiner serverseitigen Angriffsfläche legte ihre Verwaltungsoberfläche trotzdem offen, weil die Routentabelle in das Client-Bundle kompiliert wird.
Acht Angriffsvektoren, null Befunde: Wie eine gehärtete Single Page Application aussieht
Ein Negativbefund ist ein Ergebnis. Dieser dokumentiert, warum acht Standardvektoren gegen eine statisch ausgelieferte Anwendung hinter einer Edge-Plattform scheiterten.
WordPress-Benutzer-Enumeration ist nicht der Befund, sie ist der Multiplikator
Eine Steuerberatungskanzlei legte jeden Konto-Slug über ihre öffentliche REST-API offen, lieferte keinerlei Security-Header und liess das Login ohne Rate-Limit laufen.
Ein Legacy-Kommunal-CMS mit perfekter Transportverschlüsselung und ohne Clickjacking-Schutz
HSTS war auf einem deutschen Kommunalportal einwandfrei. Ein fehlender Header erlaubte Framing weiterhin, und die CSP erlaubte Skript-Injektion.