27. Dezember 2010

27C3: Adventures in analyzing Stuxnet

Category: CCC,Hacking — Christian @ 23:53

Bruce arbeitet für Microsoft und die bisherigen Vorträge von Microsoft-Mitarbeitern (insbesondere auch der von Bruce Dang auf dem 25C3) waren immer sehr durchwachsen. Man konnte gut erkennen, dass die zwar viel wissen aber nichts davon sagen dürfen. Insofern ging ich mit niedrigen Erwartungen in diesen Vortrag.

Microsoft hat das erste Sample eines Programms das die LNK-Lücke ausnutzt von AV-TEST bekommen. Von dort wurde angefangen zu analysieren. Microsoft wusste damals nicht, dass mehrere Lücken ausgenutzt werden. Sie haben deshalb nur mit einer gerechnet und mussten in kurzer Zeit ~1MB Binärcode dekodieren und analysieren.

Bug 1: LNK-Files

  • LNK Files contain a link to its target
  • The shell needs to know what icon represents the target
  • Control panel links can have dynamic icons
  • Shell gets the icon by LoadLibrary() the target
  • LoadLibrary() automatically executes DllMain() so attacker gets code execution in the context of explorer.exe

Fix is to check if the applet is registered before loading dynamic icons.

Und ganz toll, das haben die Microsoft-Entwickler innerhalb von einer Stunde herausgefunden, nachdem die Lücke jahrelang übersehen wurde. Mein Gott sind die alle toll und werden die von Bruce gelobt. Man könnte fast meinen, Microsoft hat die besten Entwickler die alles sofort wissen und nie Fehler machen. Schon seltsam.

Bug 2: Task Scheduling (nur Vista/Win7)

  • Scheduled Tasks werden in einem User-schreibbaren XML-File gespeichert
  • Eine Prüfsumme des XML-Files wird (sicher) in der Registry gespeichert
  • Der Hash-Alogrithmus zur Verifizierung der Integrität ist CRC32
  • Kollisionen leicht zu erzeugen, User-Wechsel auf LocalSystem möglich

Fix: Algorithm was changed to SHA256

Bug 3: Keyboard Layout (nur WinXP)

  • in win32k.sys
  • ein Integer aus dem Layout-File wird für einen globalen Array im Kernel verwendet
  • keine Prüfung des Integer-Werts, daher kann irgendwohin gesprungen werden

Fix: Prüfung des Integers

Bug 4: Spooler Subsystem

  • entdeckt von Dan Kaminsky, der das Schadprogramm im Netzwerk laufen lies.
  • es gibt zwei Spezialfälle in denen der Spooler nicht auf Gast-Rechte zurückfällt
  • bekannte Problematik von Windows XP, absichtlich so programmiert
  • der Print-Spooler erzeugt zwei Dateien mit LocalSystem-Rechten
  • ein EXE-File, das ausgeführt werden soll
  • ein MOF-File, das automatisch ausgeführt wird, wenn es in einem bestimmten Verzeichnis liegt

Fix: Rechtezuweisung überarbeiten

Und das Summary, die Leute die bei Microsoft arbeiten sind alle gaaaanz tolle Helden und arbeiten alle super zusammen und finden in Minuten alle Lücken die sie auch sofort fixen können. Naja, wenigstens war dieses mal nur der halbe Vortrag eine Marketingshow.

3 Comments

  1. Na klar doch… 😮

    Zitat: „… dieLeute die bei Microsoft arbeiten sind alle gaaaanz tolle Helden und arbeiten alle super zusammen…“

    Da sind wohl Typen wie hier auf dem Bild:
    http://www.google.ch/imgres?imgurl=http://www.dallasjclark.com/wordpress/wp-content/uploads/2008/04/microsoft_heroes_2008.jpg&imgrefurl=http://www.dallasjclark.com/microsoft-heroes-happen-2008-partner-event/&usg=__RfZbSfMzMNMaxE4LK7lwSvfc34A=&h=503&w=354&sz=42&hl=de&start=0&zoom=1&tbnid=Wq0VNUJvTTxByM:&tbnh=155&tbnw=109&prev=/images%3Fq%3DMicrosoft%2Bheroes%26um%3D1%26hl%3Dde%26sa%3DN%26biw%3D1419%26bih%3D715%26tbs%3Disch:1&um=1&itbs=1&iact=rc&dur=250&ei=3TEsTYZskO05jo-94wo&oei=zTEsTYOlLMeBOsWPgMAJ&esq=4&page=1&ndsp=19&ved=1t:429,r:0,s:0&tx=72&ty=61

    PowerShell 😆

    Comment by PowerShell — 11. Januar 2011 @ 11:34

  2. UPDATE:

    anscheinend ist der Computerwurm Stuxnet von Israelis und Amerikaner gemeinsam entworfen und sogar in der streng abgeriegelten Atomanlage Dimona in der israelischen Negev-Wüste getestet hätten.

    Wieso überrascht mich das nicht *LOL*

    http://www.focus.de/politik/ausland/atom-medien-israel-testete-stuxnet-virus-in-geheimer-anlage_aid_590617.html

    Gruss
    PowerShell

    Comment by PowerShell — 16. Januar 2011 @ 20:17

  3. Kommentare gesperrt wegen Spam

    Comment by Christian — 7. Juni 2012 @ 17:39

RSS feed for comments on this post.

Sorry, the comment form is closed at this time.