Freitag, 10. Februar 2012


Kolumne

Montag, 19. Januar 2009 | Kolumne

KW 04/09 - Standpunkt Sicherheit

(Link zum Artikel: http://www.entwickler.de/entwicklerde/kolumnen/046901)
  • Teilen
  • kommentieren
  • empfehlen
  • Bookmark and Share

Die Top 25 der gefährlichsten Programmierfehler und der zur Zeit gefährlichste Wurm sind die Themen dieses Standpunkt Sicherheit.

Top 25 der gefährlichsten Programmierfehler

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.

Programmierung ist nicht alles

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.

Sichere Software allein führt nicht zu sicheren Systemen

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.

RPC-Wurm - trotz Patch hemmungsloses Wachstum

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 kommts?

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

Kommentare

Gravatar IO 22.01.2009
um 12:20 Uhr
Diese immer neuen Sicherheitsprobleme haben mich vor 2 Jahren ganz zum Umstieg auf Ubuntu bewegt. Damit gehoeren solche Probleme zunaechst erstmal der Vergangenheit an. Als Webentwickler ist es ohnehin ungemein praktisch auf einer Architektur zu entwickeln, die spater auch das Produktivsystem betreiben wird...

ps: das captcha nervt...
#zitieren

Folgende Links könnten Sie auch interessieren