Microsoft, Apple, Netflix und Tesla gehackt
Alex Birsan hatte eine Idee für eine neue, mögliche Sicherheitslücke. Nachdem er diese entwickelt hatte, konnte er damit in die internen Systeme von 35 großen Unternehmen eindringen. Dazu gehören Microsoft, Apple, PayPal, Shopify, Netflix, Yelp, Tesla und Uber.
Das Besondere an seiner Attacke ist, dass sie funktioniert, ohne, dass ein unwissender Mitarbeiter einen manipulierten Link anklickt oder eine mit Schadsoftware verseuchte Datei öffnet.
Verwirrte Systeme
Birsan nennt diese Attacke „ dependency confusion”, grob übersetzt: Abhängigkeits-Verwirrung. Dabei versucht er nicht die Systeme der Firmen direkt zu infizieren, sondern platziert die Schadsoftware in Open-Source-Bibliotheken.
Die Idee dazu kam ihn, als er eine Javascript-Datei von Paypal untersuchte. Dabei merkte er, dass ein Paket des Paketmanagers npm nicht von dessen Open-Source-Bibliothek abgerufen wurde, sondern von internen Paypal-Servern.
Birsan überprüfte die öffentliche Bibliothek und fand dort das besagte Paypal-Paket nicht. Er fragte sich: Was passiert, wenn ein Open-Source-Paket denselben Namen wie das interne Paypal-Paket hat? Würde Javascript dann das öffentliche Paket priorisieren?
Für Menschen klar beschriftet
Dazu erstellte er ein Paket und lud es bei npm hoch. Es hatte denselben Namen wie das Paypal-Paket, war im Text aber klar beschriftet, dass dieses Paket nur für die Sicherheitsforschung sei und keinen nützlichen Code enthält.
Sein Plan funktionierte. In den meisten Fällen wurde der Code von der Open-Source-Quelle bevorzugt. In einigen Fällen wurde immer das Paket mit der höheren Versionsnummer gewählt, unabhängig vom Speicherort. Er musste sein eigenes Paket also nur mit einer höheren Versionsnummer versehen.
Birsan durchsuchte jetzt öffentlich zugänglichen Code, etwa bei GitHub, von anderen Unternehmen. Wenn ein entsprechendes npm-Javascript-Paket nicht auf dem öffentlichen Server war, erstellte er wieder eines mit demselben Namen.
Rausgeschmuggelt
Seine Pakete enthielten preinstall-Scripts. Sobald sie automatisch von den Systemen der Unternehmen abgerufen wurden, begannen sie zu arbeiten. Damit wurde der Faktor Mensch ausgeschlossen, der bei solchen Attacken meist nötig ist, um etwa die infizierte Datei zu öffnen.
Mittels einer DNS-Technik tarnte er noch den Traffic, den sein Paket nach dem Installieren verursacht. So konnte er unbemerkt Daten vom infizierten System auslesen.
130.000 Dollar Belohnung
Nachdem er die Resultate überprüfte und sicherstellte, dass seine Pakete erfolgreich die internen Systeme infiziert haben, kontaktierte er die Betroffenen.
Bis jetzt hat er so 130.000 US-Dollar an Belohnungen bei Bug-Bounty-Programmen erhalten. 40.000 US-Dollar kamen von Microsoft, 30.000 US-Dollar von Paypal. Auch Apple und Shopify zahlten 30.000 US-Dollar.