13. August 2025 / Ausbildung , Webentwicklung , Sicherheit , Web-Architektur
Autor: Rolf Eggenberger
An der DEF CON 33 hat der Security-Experte Eaton Zveare gezeigt, wie er sich in ein Händlerportal eines grossen Autoherstellers gehackt hat – und damit theoretisch jedes verbundene Auto entsperren, starten und orten konnte.
Das Brisante: Er brauchte keinen Fahrzeugzugang vor Ort, sondern nur einen Webbrowser und ein paar Tricks. Was passiert ist, liest sich wie ein Thriller – für uns Webentwickler ist es aber vor allem ein Lehrstück, wie Software-Architektur nicht aussehen sollte.
Die Slides zur Präsentation vom 10. August 2025 findest Du hier: DEF CON 33: How I Hacked a Car Dealership Portal.
(Kurz und knackig)
Das Ergebnis: Volle Kontrolle über fremde Fahrzeuge – inklusive Türen, Motor und Standort.
...und wie Du deine Architektur besser machst
Vertrauen ins Frontend (Client-Side Auth/ACL)
Fehler: Sicherheitslogik lief im Browser und war manipulierbar.
Besser: Authentifizierung und Autorisierung nur auf dem Server durchführen. Niemals “isAdmin=true” im JWT ohne Server-Side Introspection. Frontend darf nur UX-Gates zeigen – kein Gatekeeper sein.
Horizontale/vertikale Rechte nicht strikt getrennt
Fehler: Händler konnten sich Admin-Rechte verschaffen.
Besser: Least Privilege – nur minimal nötige Rechte, keine Self-Service-Upgrades, MFA für kritische Aktionen.
Keine sauberen Systemgrenzen
Fehler: Händlerportal durfte direkt Consumer-App-Daten verändern.
Besser: B2B- und B2C-Dienste strikt trennen, nur minimal notwendige API-Endpunkte freigeben.
Unsichere Objektzugriffe
Fehler: Name/VIN reichten als Besitznachweis.
Besser: Besitz mit kryptografischen Challenges oder Mehrfaktor prüfen.
Überexponierte Admin-Funktionen
Fehler: Hochprivilegierte Endpunkte waren erreichbar.
Besser: Admin-Oberflächen isolieren, per IP oder VPN schützen, keine Admin-Logik im SPA-Bundle.
Kein Defense-in-Depth
Fehler: Ein Exploit führte direkt zum vollen Zugriff.
Besser: Mehrere Schutzschichten, Angriffe automatisch erkennen und bei Gefahr sofort mit einem Not-Aus (Kill-Switch) kritische Funktionen blockieren.
Fehlendes Monitoring
Fehler: Solche Angriffe hätten frühzeitig auffallen müssen (z. B. Massen-Suche nach Kunden/VINs).
Besser: Zentrales Überwachungssystem einsetzen, welches Log-Daten analysiert und bei ungewöhnlichem Verhalten – wie massenhaften Suchanfragen oder Logins aus fremden Ländern – automatisch Alarm schlägt.
Blindheit bei Dritt-Software
Fehler: Kritische Funktion in externer, kaum überprüfter Dealer-Software.
Besser: Regelmässig prüfen, ob externe Dienste sicher sind, Penetrationstests durchführen und sicherstellen, dass ein Problem in einem Dienst nicht das ganze System lahmlegt.
(für moderne Web-Stacks, z. B. Laravel + Vue/Nuxt)
Server-seitige Gatekeeper
Step-Up-Auth für High-Risk-Flows
Domänen-Trennung & API-Gateway
Sichere Besitzprüfung
Hardening der Admin-Oberfläche
Threat Modeling & Security Tests
Dieser Vorfall zeigt: Es war kein klassischer “Auto-Hack”, sondern ein Web-Architektur-Problem. Ein client-seitiger Authentifizierungsfehler, fehlende Systemtrennung und schwache Besitznachweise reichten, um aus einem B2B-Portal die Kontrolle über Consumer-Fahrzeuge zu erlangen.
Sicherheit muss von Anfang an Teil der Architektur sein – nicht ein nachträgliches Extra. Jeder dieser Fehler hätte einzeln schon Schaden anrichten können, zusammen führten sie zum Worst-Case.
Tipp: Genau diese Themen vertiefen wir in unseren Developer-Lehrgängen und den offenen Sessions unserer Barcamps, Hackathons und Friends Treffen – mit praxisnahen Beispielen, die Dir helfen, Sicherheitslücken von Anfang an zu vermeiden.
PS: Der Kommentar von unserem Dozenten Veith Zäch zu diesem Fall: "Die haben ihre Ausbildung definitiv nicht bei Web Professionals gemacht!" 😄