[{"data":1,"prerenderedAt":399},["ShallowReactive",2],{"navigation":3,"\u002Fblog\u002F2025-08-13-sicherheitsfehler-web-architektur-lernen":54,"\u002Fblog\u002F2025-08-13-sicherheitsfehler-web-architektur-lernen-surround":388},[4,21,36,47],{"title":5,"path":6,"stem":7,"children":8,"titleNavigation":11,"icon":20},"Web Development","\u002Fkurs\u002Fweb-dev","1.kurs\u002F1.web-dev\u002F0.index",[9,12,16],{"title":10,"path":6,"stem":7,"titleNavigation":10,"icon":11,"children":-1},"Übersicht",null,{"title":13,"path":14,"stem":15,"titleNavigation":13,"children":-1},"GraphQL","\u002Fkurs\u002Fweb-dev\u002Fweb-developer-graphql","1.kurs\u002F1.web-dev\u002Fweb-developer-graphql",{"title":17,"path":18,"stem":19,"titleNavigation":17,"children":-1},"WordPress pflegen","\u002Fkurs\u002Fweb-dev\u002Fwordpress-content","1.kurs\u002F1.web-dev\u002Fwordpress-content","i-lucide-code",{"title":22,"path":23,"stem":24,"children":25,"titleNavigation":11,"icon":35},"Kurse für Eltern","\u002Fkurs\u002Feltern","1.kurs\u002F2.eltern\u002F0.index",[26,27,31],{"title":10,"path":23,"stem":24,"titleNavigation":10,"children":-1},{"title":28,"path":29,"stem":30,"titleNavigation":28,"children":-1},"Sicherheit: Vortrag","\u002Fkurs\u002Feltern\u002Fkinder-im-netz-schuetzen","1.kurs\u002F2.eltern\u002F1.kinder-im-netz-schuetzen",{"title":32,"path":33,"stem":34,"titleNavigation":32,"children":-1},"Sicherheit: Workshop","\u002Fkurs\u002Feltern\u002Feltern-workshop","1.kurs\u002F2.eltern\u002F2.eltern-workshop","i-lucide-users",{"title":37,"path":38,"stem":39,"children":40,"titleNavigation":11,"icon":46},"Kurse für Senioren","\u002Fkurs\u002Fsenioren","1.kurs\u002F3.senioren\u002F0.index",[41,42],{"title":10,"path":38,"stem":39,"titleNavigation":10,"children":-1},{"title":43,"path":44,"stem":45,"titleNavigation":43,"children":-1},"Sicher im Internet","\u002Fkurs\u002Fsenioren\u002Finternet-sicherheit-1","1.kurs\u002F3.senioren\u002F1.internet-sicherheit-1","i-lucide-heart-handshake",{"title":48,"path":49,"stem":50,"children":51,"titleNavigation":11,"icon":53},"Smart Home","\u002Fkurs\u002Fsmart-home","1.kurs\u002F4.smart-home\u002F0.index",[52],{"title":10,"path":49,"stem":50,"titleNavigation":10,"children":-1},"i-lucide-house-plus",{"id":55,"title":56,"authors":57,"badge":63,"body":65,"camp":375,"date":376,"description":377,"extension":378,"image":379,"meta":381,"navigation":382,"path":383,"published":382,"seo":384,"stem":385,"subtitle":386,"__hash__":387},"posts\u002F3.blog\u002F2025-08-13-sicherheitsfehler-web-architektur-lernen.md","Wenn Frontends Autos öffnen: 8 Architekturfehler aus einem echten Dealer-Portal-Hack",[58],{"name":59,"to":60,"avatar":61},"Rolf Eggenberger","\u002Fueber-uns\u002Fdozenten\u002Frolf-eggenberger",{"src":62},"avatare\u002FrolfHead.png",{"label":64},"Sicherheit",{"type":66,"value":67,"toc":367},"minimark",[68,72,75,86,91,97,119,125,129,134,260,264,267,347,351,354,357,360],[69,70,71],"p",{},"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.",[69,73,74],{},"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.",[69,76,77,78,85],{},"Die Slides zur Präsentation vom 10. August 2025 findest Du hier: ",[79,80,84],"a",{"href":81,"rel":82},"https:\u002F\u002Fmedia.defcon.org\u002FDEF%20CON%2033\u002FDEF%20CON%2033%20presentations\u002FEaton%20Zveare%20Roshan%20Piyush%20-%20Unexpected%20Connections%20How%20a%20vulnerability%20in%20obscure%20dealer%20software%20could%20have%20unlocked%20your%20car%20from%20anywhere.pdf",[83],"nofollow","DEF CON 33: How I Hacked a Car Dealership Portal",".",[87,88,90],"h2",{"id":89},"was-ist-passiert","Was ist passiert?",[69,92,93],{},[94,95,96],"strong",{},"(Kurz und knackig)",[98,99,100,107,113],"ul",{},[101,102,103,106],"li",{},[94,104,105],{},"Fehlerhafte Login-Logik im Client:"," Beim Laden der Login-Seite wurde Code in den Browser gezogen, den man manipulieren konnte, um Auth-Checks zu umgehen.",[101,108,109,112],{},[94,110,111],{},"Privilegien-Eskalation:"," Aus einem Händler-Login wurde ein „National Admin“-Account mit Zugriff auf über 1’000 Händlerkonten.",[101,114,115,118],{},[94,116,117],{},"Fehlerhafte Kopplung:"," Über das B2B-Händlerportal konnte man B2C-App-Accounts mit Fahrzeugen verknüpfen – Name oder VIN reichten.",[69,120,121,124],{},[94,122,123],{},"Das Ergebnis:"," Volle Kontrolle über fremde Fahrzeuge – inklusive Türen, Motor und Standort.",[87,126,128],{"id":127},"die-8-grössten-fehler","Die 8 grössten Fehler",[69,130,131],{},[94,132,133],{},"...und wie Du deine Architektur besser machst",[135,136,137,155,170,185,200,215,230,245],"ol",{},[101,138,139,142,145,148,149,151,154],{},[94,140,141],{},"Vertrauen ins Frontend (Client-Side Auth\u002FACL)",[143,144],"br",{},[94,146,147],{},"Fehler:"," Sicherheitslogik lief im Browser und war manipulierbar.",[143,150],{},[94,152,153],{},"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.",[101,156,157,160,162,164,165,167,169],{},[94,158,159],{},"Horizontale\u002Fvertikale Rechte nicht strikt getrennt",[143,161],{},[94,163,147],{}," Händler konnten sich Admin-Rechte verschaffen.",[143,166],{},[94,168,153],{}," Least Privilege – nur minimal nötige Rechte, keine Self-Service-Upgrades, MFA für kritische Aktionen.",[101,171,172,175,177,179,180,182,184],{},[94,173,174],{},"Keine sauberen Systemgrenzen",[143,176],{},[94,178,147],{}," Händlerportal durfte direkt Consumer-App-Daten verändern.",[143,181],{},[94,183,153],{}," B2B- und B2C-Dienste strikt trennen, nur minimal notwendige API-Endpunkte freigeben.",[101,186,187,190,192,194,195,197,199],{},[94,188,189],{},"Unsichere Objektzugriffe",[143,191],{},[94,193,147],{}," Name\u002FVIN reichten als Besitznachweis.",[143,196],{},[94,198,153],{}," Besitz mit kryptografischen Challenges oder Mehrfaktor prüfen.",[101,201,202,205,207,209,210,212,214],{},[94,203,204],{},"Überexponierte Admin-Funktionen",[143,206],{},[94,208,147],{}," Hochprivilegierte Endpunkte waren erreichbar.",[143,211],{},[94,213,153],{}," Admin-Oberflächen isolieren, per IP oder VPN schützen, keine Admin-Logik im SPA-Bundle.",[101,216,217,220,222,224,225,227,229],{},[94,218,219],{},"Kein Defense-in-Depth",[143,221],{},[94,223,147],{}," Ein Exploit führte direkt zum vollen Zugriff.",[143,226],{},[94,228,153],{}," Mehrere Schutzschichten, Angriffe automatisch erkennen und bei Gefahr sofort mit einem Not-Aus (Kill-Switch) kritische Funktionen blockieren.",[101,231,232,235,237,239,240,242,244],{},[94,233,234],{},"Fehlendes Monitoring",[143,236],{},[94,238,147],{}," Solche Angriffe hätten frühzeitig auffallen müssen (z. B. Massen-Suche nach Kunden\u002FVINs).",[143,241],{},[94,243,153],{}," 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.",[101,246,247,250,252,254,255,257,259],{},[94,248,249],{},"Blindheit bei Dritt-Software",[143,251],{},[94,253,147],{}," Kritische Funktion in externer, kaum überprüfter Dealer-Software.",[143,256],{},[94,258,153],{}," 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.",[87,261,263],{"id":262},"konkrete-umsetzungstipps","Konkrete Umsetzungstipps",[69,265,266],{},"(für moderne Web-Stacks, z. B. Laravel + Vue\u002FNuxt)",[98,268,269,282,292,302,312,328],{},[101,270,271,274],{},[94,272,273],{},"Server-seitige Gatekeeper",[98,275,276,279],{},[101,277,278],{},"Laravel: Policies und Gates im Backend nutzen, keine versteckten Admin-Flags im Client.",[101,280,281],{},"Form Requests + Rate Limiting (per Aktion), signed URLs nur als zusätzliche Schutzschicht – nie als alleinige Autorisierung.",[101,283,284,287],{},[94,285,286],{},"Step-Up-Auth für High-Risk-Flows",[98,288,289],{},[101,290,291],{},"Zusätzliche Authentifizierung bei besonders sensiblen Aktionen abfragen.",[101,293,294,297],{},[94,295,296],{},"Domänen-Trennung & API-Gateway",[98,298,299],{},[101,300,301],{},"Dealer-Portal und Consumer-Services strikt trennen, Gateway mit klaren Regeln einsetzen.",[101,303,304,307],{},[94,305,306],{},"Sichere Besitzprüfung",[98,308,309],{},[101,310,311],{},"Besitz mit kryptografischen Herausforderungen bestätigen lassen.",[101,313,314,317],{},[94,315,316],{},"Hardening der Admin-Oberfläche",[98,318,319,322,325],{},[101,320,321],{},"Admin-Bereich isolieren, IP-Restriktionen setzen und jeden kritischen Vorgang auditieren.",[101,323,324],{},"Separates Deployment, IP-Allowlist, Conditional Access, No SPA-Bundling von Admin-Privileg-Logik ins allgemeine Frontend.",[101,326,327],{},"Audit-Pflicht: Kein Admin-Write ohne fälschungssicheren Audit-Eintrag.",[101,329,330,333],{},[94,331,332],{},"Threat Modeling & Security Tests",[98,334,335,338,341,344],{},[101,336,337],{},"Vor jedem Release überlegen: Wo könnte ein Angriff möglich sein?",[101,339,340],{},"Automatische Sicherheitsscans im Entwicklungs- und Testprozess nutzen.",[101,342,343],{},"Externe Sicherheitsforscher einladen (Bug-Bounty).",[101,345,346],{},"Angriffe gezielt simulieren, um zu prüfen, ob andere Schutzmassnahmen greifen.",[87,348,350],{"id":349},"was-du-aus-dem-fall-mitnehmen-kannst","Was Du aus dem Fall mitnehmen kannst",[69,352,353],{},"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.",[69,355,356],{},"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.",[69,358,359],{},"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.",[69,361,362,366],{},[363,364,365],"em",{},"PS: Der Kommentar von unserem Dozenten Veith Zäch zu diesem Fall: \"Die haben ihre Ausbildung definitiv nicht bei Web Professionals gemacht!\""," 😄",{"title":368,"searchDepth":369,"depth":369,"links":370},"",2,[371,372,373,374],{"id":89,"depth":369,"text":90},{"id":127,"depth":369,"text":128},{"id":262,"depth":369,"text":263},{"id":349,"depth":369,"text":350},false,"2025-08-13","Auf der DEF CON 33 zeigte ein Sicherheitsforscher, wie ein Händlerportal gravierende Architekturfehler hatte – bis hin zur Fernsteuerung fremder Autos. Wir analysieren die 8 grössten Web-Architektur-Fehler und zeigen Dir, wie Du solche Sicherheitslücken vermeidest.","md",{"src":380},"\u002FblogImages\u002F2025-08-13-sicherheitsfehler-web-architektur-lernen.webp",{},true,"\u002Fblog\u002F2025-08-13-sicherheitsfehler-web-architektur-lernen",{"title":56,"description":377},"3.blog\u002F2025-08-13-sicherheitsfehler-web-architektur-lernen","(und wie Du sie vermeidest)","yM1IYJf3EGOM6WvgV4RjaQvT9b2691IhN63BzDfEfnQ",[389,394],{"title":390,"path":391,"stem":392,"description":393,"children":-1},"Neue Homebase in Grabs SG und neue Kurse","\u002Fblog\u002F2025-07-18-neue-location-neue-kurse","3.blog\u002F2025-07-18-neue-location-neue-kurse","Das lange Warten hat sich gelohnt! Wir freuen uns, ab August 2025 in unserer neuen Location in Grabs SG starten zu dürfen. Und das ist noch nicht alles: Wir haben auch unser Kursangebot erweitert!",{"title":395,"path":396,"stem":397,"description":398,"children":-1},"Nationaler Zukunftstag - Seitenwechsel für Mädchen und Jungs","\u002Fblog\u002F2025-08-22-nationaler-zukunftstag","3.blog\u002F2025-08-22-nationaler-zukunftstag","Schüler:innen lernen an diesem Tag geschlechtsuntypische Arbeitsfelder und Lebensbereiche kennen. Laut Website sollen Horizonte geöffnet und Mut sowie Selbstvertrauen gestärkt werden, um nicht in starren Geschlechtsbildern hängen zu bleiben. Wir freuen uns darauf 6 Mädchen zu zeigen, dass auch Code richtig cool sein kann.",1778350380313]