Freitag, 10. Februar 2012 |
Die Top 25 der gefährlichsten Programmierfehler und der zur Zeit gefährlichste Wurm sind die Themen dieses Standpunkt Sicherheit.
Vom SANS-Institute wurden die Top 25 der gefährlichsten Programmierfehler veröffentlicht. Experten von über 30 Cyber-Security-Organisationen waren an der Aufstellung der Liste beteiligt. So viele Experten müssen ja wohl richtig liegen, und wenn wir in Zukunft alle diese Fehler vermeiden, gibt es nur noch sichere Software, richtig? Leider nicht unbedingt.
Erst mal sind es nicht wirklich 25 Fehler, wären wir bei 'Dalli Dalli' müssten nämlich ein paar abgezogen werden, weil sie doppelt sind: Gleich der erste Punkt, 'Improper Input Validation', erfasst viele der weiteren Fehler, z.B. SQL-Injection, Cross-Site-Scripting, Command Injection - alles Fehler, die durch eine fehlende oder fehlerhafte Prüfung der Eingaben entstehen. Trotzdem ist diese Liste gut, es kann nicht Schaden, Spezialfälle gesondert aufzuführen, die wie die genannten besonders häufig vorkommen. Aber ob es nun 25 oder 20 Fehler sind, ist eigentlich auch egal. Denn es reicht nicht aus, in Zukunft diese Fehler zu vermeiden, um sichere Software zu erhalten. Dazu gehört ein wichtiger weiterer Punkt: Sicheres Design.
Die Programmierung ist nur ein Teil der Softwareentwicklung, nämlich die Umsetzung des Designs in ein für den Computer verständliches Programm. Wenn das Programm keine Programmierfehler enthält, ist das natürlich schon mal sehr gut, nur reicht es nicht. Wenn das Design Fehler enthält, kann die Programmierung die im Allgemeinen nicht beseitigen. Nun sind bei den aufgeführten Programmierfehlern auch einige typische Designfehler enthalten. Zum Beispiel im Punkt 'Cleartext Transmission of Sensitive Information': Wird beim Design nicht festgelegt, dass die Daten verschlüsselt zu übertragen sind, wird der Programmierer sie normalerweise nicht verschlüsselt übertragen - es ist ja nicht vorgesehen. Hält sich der Programmierer nun an die Liste mit den 25 gefährlichsten Programmierfehlern, wird er sagen "Moment mal, Leute, hier haben wir ein Problem: Ihr wollt die Daten unverschlüsselt übertragen. Ist das wirklich ungefährlich?" Es bleibt aber mit Sicherheit noch jede Menge Raum für unsicheres Design. Ein markantes Beispiel für eine falsche Design-Entscheidung ist die im vergangenen Jahr entdeckte Schwachstelle in der DNS-Spezifikation. Das ist eindeutig kein Programmier-, sondern ein Designfehler, ein möglicher Angriff wurde schlicht und ergreifend nicht bedacht, siehe auch den Standpunkt Sicherheit vom 28. Juli 2008. Auch der darin verlinkte Text von Bruce Schneier ist immer noch aktuell, auch im Hinblick auf die Top-25-Liste.
Selbst wenn in Zukunft die vom SANS-Institute aufgelisteten 25 Programmierfehler nicht mehr gemacht werden, was ich für illusorisch halte, und es auch keine Designfehler gibt, was ich für noch illusorischer halte, führt das nicht automatisch zu sicheren Systemen. Jedenfalls nicht, solange die von Menschen bedient oder benutzt werden. Zum einen kann selbst die sicherste Software unsicher konfiguriert werden, und ob die beliebige Kombination sicherer Software immer noch sicher ist, muss auch erst mal bewiesen werden. Und zum anderen: Wenn die Cyber-Kriminellen mit Angriffen auf die Software nicht mehr ans Ziel kommen, nehmen sie sich eben die Menschen vor. Social Engineering funktioniert immer irgendwo.
Kommen wir zum RPC-Wurm, der trotz eines vorhandene Patches anscheinend unaufhaltsam durch die Netze rast. Nur zur Erinnerung: Die Schwachstelle wurde von Microsoft bereits am 23. Oktober gepacht, damals wurde die Schwachstelle laut Microsoft nur für gezielte Angriffe ausgenutzt, der sich nun ausbreitende Wurm wurde erstmals einen Monat später gesichtet!
In den Security-Hinweisen der vorigen Woche war der Wurm ja quasi Dauergast, die von F-Secure gemeldete Anzahl befallener Rechner schnellte im Rekordtempo in die Höhe: 2,3 Millionen am Dienstag, 3,5 Millionen am Mittwoch - und über 8,9 Millionen am Freitag. Wenn der so weiter macht, geht er vielleicht irgendwann an einem Überlauf in der Kontrollsoftware ein, mit so einem durchschlagenden Erfolg haben die Cyber-Kriminellen bestimmt nicht gerechnet.
Wie kommt es zu dieser rasenden Ausbreitung? Immerhin stand der Patch seit einem Monat zur Installation bereit, als der Wurm sich das erste Mal bemerkbar machte. Eigentlich hätte er schon damals mangels Wirtssystemen eingehen müssen. Stattdessen hat er sich prächtig entwickelt und bekam sogar noch weitere Verbreitungsroutinen spendiert: Inzwischen verbreitet er sich außer über die RPC-Schwachstelle auch über Netzwerklaufwerke mit schwachen Passwörtern und über USB-Sticks.
Trend Micro sieht die Ursache für die weite Verbreitung in falschen Security Policies: Für die RPC-Schwachstelle steht ein Patch zur Verfügung - warum wurde der in so vielen Fällen nicht installiert? AutoRun-Schädlinge auf USB-Sticks sind seit dem letzten Jahr auf dem Vormarsch - warum wurde die AutoRun-Funktion nicht deaktiviert bzw. entsprechende Schutzprogramme nicht installiert? Und schwache Passwörter sollte es ja nun erst recht nicht geben. Stimmt vollkommen. Die Frage ist nur, ob der Wurm sich wirklich in Netzen verbreitet, in denen Security Policies gelten. Erst mal liegt der Verdacht nahe, da F-Secure sehr viele Zugriffe aus lokalen Netzen hinter Firewalls, Proxies und NAT-Routern registriert. Das sieht nach Unternehmensnetzen aus, und Unternehmen sollten eigentlich eine Security Policy haben.
Laut den ersten von F-Secure veröffentlichten Zahlen sieht die "Top 10" der gefundenen IP-Adressen aufgeteilt auf ihre Herkunftsländer so aus:
| Anzahl Adressen | Herkunftsland |
| 38,277 | China |
| 34,814 | Brasilien |
| 24,526 | Russland |
| 16,497 | Indien |
| 14,767 | Ukraine |
| 13,115 | Italien |
| 11,675 | Argentinien |
| 11,117 | Korea |
| 8,861 | Rumänien |
| 6,166 | Indonesien |
Eine von Symantec erstelle Weltkarte mit der Verbreitung der befallenen Rechner enthält ähnliche Werte. Ich weiß nicht, wie die Internetversorgung in diesen Ländern organisiert ist und habe auch keine Lust, danach zu googlen, aber könnten das nicht auch Zugangsprovider in Form von ISPs, Hochschulen etc. sein, die ihre Kunden über NAT anbinden? Dann sieht das mit der Security Policy schon wieder ganz anders aus.
Egal, wieso, weshalb, warum der Wurm sich so rasant ausbreitet, wichtig ist, das er gestoppt wird, bevor er den eigenen Rechner befällt. Also heißt es "Patch installieren, AutoRun-Funktion ausschalten, sichere Passwörter verwenden" - und schon muss der Wurm draußen bleiben. Und falls er es doch schon in den Rechner geschafft hat: Das 'Malicous Software Removal Tool' von Microsoft kann den Wurm erkennen und entfernen.
Carsten Eilers