16. Juni 2007

Wer schließt die Lücken am schnellsten?

Category: Produkte — Christian @ 02:32

Auf dem Security Blog von ZDnet gibt es einen Artikel Windows v Linux – Days of risk in 2006, der mal wieder zumindest zur Hälfte an der Realität vorbei geht. Das ist wie mit den von Microsoft bezahlten Studien und vermutlich fragt sich der Autor Ryan Naraine, warum der Artikel jetzt gerade mit -7 bewertet wird. Oder er fragt es sich nicht und denkt da sind die üblichen Microsoft Basher am Werk.

Worum geht es? Microsoft hat unter dem Titel „Average OS Days-of-Risk“ eine Grafik veröffentlicht, die auflistet wie lange die Benutzer eines Betriebssystems im Jahr 2006 angreifbar waren, bevor ein Patch veröffentlicht wurde. Die Tabelle dazu sieht so aus:

Hersteller Zeitspanne
Microsoft 28,9 Tage
Novell Enterprise Linux 73,89 Tage
Red Hat Enterprise Linux 106,83 Tage
Apple Mac OS X 46,12 Tage
Sun Solaris 167,72 Tage

Die Zahlen sind soweit sicher richtig. Nur, sie beruhen leider auf der falschen Datenbasis.

Die informierten Leser dieses Blogs werden sich vermutlich jetzt fragen: „Wie kommt Microsoft auf im Schnitt 28,9 Tage, wenn eEye für jede Lücke eine Patch Development Time zwischen 120 und 250 Tagen anzeigt?“ Ganz einfach, diese Tage werden bei Microsoft in der Statistik nicht mitgezählt!

Der Trick funktioniert so: Angezeigt werden die Average Days of Risk, d.h. die durchschnittliche Zahl an Tagen, die der Benutzer gefährdet war. Und das war der Benutzer nach Definition von Jeff Jones von Microsoft nicht, wenn eine Security Research Firma eine Lücke an Microsoft meldet (der Zeitpunkt an dem eEye zu zählen anfängt) sondern erst, wenn im Internet verbreitet Exploits für die Lücke auftauchen (und das passiert oft erst, nachdem der Patch veröffentlicht wurde). Open Source Programme haben natürlich den Nachteil, dass ihr Code öffentlich ist, d.h. eine behobene Lücke z.B. in Firefox kann sofort anhand des Source Codes analysiert und ein Exploit programmiert werden, noch bevor Novell oder Red Hat das Update zu den Anwendern schieben können.

Diese Bewertung geht leider an zwei Punkten an der Realität vorbei. Zum einen ist die Lücke und in der Regel auch ein Exploit bekannt, sobald der Fehler an den Hersteller gemeldet ist. Niemand kann garantieren, dass kein anderer Hacker die Lücke entdeckt oder der Forscher die Lücke versehentlich veröffentlicht. Im Grunde muss man zählen, sobald die Lücke dem Hersteller bekannt ist. Zum zweiten ist es natürlich so, dass viele Exploits im Internet erst allgemein bekannt werden, nachdem der Patch heraus ist.

Solange ein Hacker auf einem 0-day Exploit für Windows sitzt, wird er diesen natürlich nicht allgemein im Internet veröffentlichen (außer es ist ein Hacker der bekannt werden will oder besonders blöd ist). Wenn von diesem Hacker z.B. ein Rechner aus dem Honeynet Project attackiert wird, erfährt Microsoft von der Lücke und entwickelt einen Patch. Weil aber die Lücke nicht allgemein bekannt ist, zählt diese Zeitspanne bei Microsoft nicht in die Statistik. Und schon sieht man wie der beste Hersteller aus.

Eine Statistik, die statt dessen aufzeigen würde, wie lange braucht der Hersteller zur Veröffentlichung eines Patches nachdem ihm die Lücke gemeldet wurde … da wäre Microsoft ganz klar an letzter Stelle wie die Zahlen von eEye beweisen.

Fazit: Traue keiner Statistik die Du nicht selbst gefälscht hast. Ich finde es nur schade, dass die Journalisten bei ZDNet die bunten Tabellen von Microsoft so kommentar- und kritiklos veröffentlichen. Investigativer Journalismus sieht für mich anders aus.

Reverse Engineering von Patches

Category: Hacking — Christian @ 01:58

Auf der DailyDave Mailingliste gefunden:

Nach der Veröffentlichung eines Patches dauert es in der Regel heute weniger als eine Woche bis die ersten Exploits und oft sogar direkt Viren oder Würmer verbreitet werden, die diese Sicherheitslücke ausnutzen. Wie ich das letzte mal geschaut habe, hat Symantec den Wert auf 6,9 Tage geschätzt (leider keine Quelle).

Wie einfach das geht haben die Jungs von Sabre Security gerade eben wieder vorgeführt. Der Flash-Film (Achtung, groß), zeigt die Analyse der MS07-031 Sicherheitslücke (SChannel Off-By-One Heap Corruption, gefunden von Thomas Lim von Coseinc) mittels BinDiff. Die Jungs um Halvar Flake sind gut, das ist nichts neues und wurde durch den Gewinn des deutschen IT-Sicherheitspreises eindrucksvoll bestätigt.

Der Flash-Film zeigt, wie die beiden Binaries automatisch deassembliert und verglichen werden. Unterschiedliche Code-Segmente werden gelb eingefärbt, komplett neue Code-Segmente erscheinen rot. So kann innerhalb kurzer Zeit analysiert werden, welche Veränderungen am Code vorgenommen wurden und oft lässt sich daraus bereits auf einen möglichen Exploit schließen.

Kuckt es Euch an …