Fuzzing

fuzzing

Copyright ┬ę Shutterstock / Rawpixel.com

Was ist Fuzzing?

Nicht immer haben Datenverlust und der damit verbundene Missbrauch etwas mit dem wachsenden Know-how von Hackern zu tun. Oft sind diese Sicherheitsl├╝cken bereits im unternehmenseigenen IT-System angelegt. Das klassische Beispiel hierf├╝r sind Fehler in der Programmierung von ben├Âtigter Software. Fuzzing hilft, solche Fehler zu entdecken und auszumerzen.

Komplexit├Ąt als Risikofaktor

Kein Programm ist wirklich sicher, so die Annahme, auf der diese noch recht junge Form von Sicherheits├╝berpr├╝fung basiert. Je komplexer eine Software aufgebaut wird, umso mehr steigt das Risiko, dass ein Leck vorhanden ist, durch das sensible Daten rutschen, die von unberechtigten Personen gelesen und auf unbefugte Art und Weise genutzt werden k├Ânnen. Das Fuzzing ist eine ausgekl├╝gelte Methode, mit der solche Sicherheitsl├╝cken aufgesp├╝rt werden k├Ânnen: Indem eine Software mit unz├Ąhligen Daten nahezu ├╝bersch├╝ttet wird, kann deren Belastbarkeit auf die Probe gestellt werden: Kommt es zu einem Absturz des Programms, ist dies mit hoher Wahrscheinlichkeit das Zeichen daf├╝r, dass in der Programmierung ein Fehler vorhanden sein d├╝rfte.

Der Absturz und seine Folgen

Viele Anwender sch├Ątzen die m├Âglichen Konsequenzen eines solchen Absturzes im Ausma├č noch nicht richtig ein. Ein Programmabsturz bedeutet weit mehr als eine Funktionseinschr├Ąnkung f├╝r den Augenblick, die das Arbeiten ineffizienter und langwieriger macht. Der Absturz ist gleichzeitig auch eine virtuelle Einladung f├╝r Hacker, da ein System im Augenblick eines Absturzes besonders leicht zu ├╝bernehmen ist. Wei├č ein Angreifer, mit welchen Mitteln ein Programm gest├Ârt werden kann, hat er gleichzeitig die Handhabe, die darin befindlichen relevanten Daten zu ├╝bernehmen. Dadurch, dass Fuzzing offenlegt, mit welchen Eingaben eine Software zum Ausfall f├╝hren kann, erhalten Programmierer und Nutzer gegen├╝ber kriminellen Eindringlingen einen deutlichen Wissensvorsprung, der mit zielf├╝hrender Handlungsf├Ąhigkeit verbunden ist.

Quellcode nicht unbedingt n├Âtig

Das Fuzzing bringt einen entscheidenden Vorteil mit sich: In den Check auf Belastbarkeit eines Systems, beziehungsweise Fehler in dessen Programmierung, braucht weder der Quellcode noch die Bin├Ąrprogrammierung einbezogen zu werden. So ist das Fuzzing auch eine gro├če Hilfe, wenn ein Internet-Server in Sachen Sicherheit untersucht werden soll. Doch auch das Vorhandensein eines Quelltextes schafft nicht unbedingt Komfort, wenn man sich die Menge von manuell zu ├╝berpr├╝fenden Daten ansieht. Auch die Tools, die bei den meisten Programmvarianten zur Verf├╝gung stehen, bringen auf lange Sicht nicht weiter, da sie Programmierfehler in der Regel nicht im gew├╝nschten, n├Ąmlich vollst├Ąndigen Umfang, entdecken k├Ânnen. Fuzzing bringt dem Anwender in dieser Hinsicht also zwei Vorz├╝ge auf einmal: Es macht manuelle und sehr aufwendige Untersuchung ├╝berfl├╝ssig und f├╝hrt nicht selten zur l├╝ckenlosen Fehlerdetektion, indem Abst├╝rze des Systems provoziert werden.

Reduktion f├╝r mehr Erfolg

Der Haken an der Fuzzing-Methode ist die Zeitdauer, die es oft in Anspruch nehmen w├╝rde, alle Formen von Dateneingaben im Hinblick auf einen m├Âglichen Programmabsturz zu testen. Hier gestaltet sich die Methode dann als besonders intensiv, wenn vorab eine gr├╝ndliche Analyse des Programms erfolgt, wo Fehler am ehesten zu erwarten sind. So k├Ânnen die Eingaben in ihrem Umfang zielgerichtet reduziert werden und der Ablauf ist deutlich k├╝rzer. F├╝r das Fuzzing gibt es mehrere M├Âglichkeiten, die bedarfsgerecht auszuw├Ąhlen und einzusetzen sind. Beispiele hierf├╝r sind die Verwendung eines Debuggers, spezielle Tools f├╝r die Leak-Detektion oder die gezielte CPU-├ťberlastung.


Sie haben noch Fragen?

Kontaktieren Sie uns

Kostenloser SEO-Check der OSG


Weitere Inhalte