NPA: Fuzzing AusweisAPP: Difference between revisions
(→Phasen) |
|||
Line 25: | Line 25: | ||
===Phasen=== |
===Phasen=== |
||
*Identify Target |
|||
*Identify Inputs |
|||
*Generate Fuzzed Data |
|||
*Execute Fuzzed Data |
|||
*Monitor for Exceptions |
|||
*Determine Exploitability |
|||
===Grenzen=== |
===Grenzen=== |
||
===Funktionsweise=== |
===Funktionsweise=== |
Revision as of 11:15, 12 October 2010
zugehöriger Vortrag vom 01.10.2010
Fuzzing (chapter in work)
Was ist Fuzzing
Grundsätzlich lässt sich Fuzzing als automatisierte Eingabemanipulation verstehen.
Das dem Fuzzing am nähesten kommende Verfahren, die "boundary value analysis" ist eine Methode bei der die Aunahmebehandlung mit Testwerten um die Grenze zwischen guten und schlechten Werten herum überprüft wird.
Zusätzlich zu den Grenzwerten sind für das Fuzzing aber generell alle Werte interessant die undefiniertes oder unsicheres Verhalten hervorrufen können.
- Fuzzing nach Sutton et al.
- „... method for discovering faults in software by providing unexpected input and monitoring for exceptions ...“ [MSAGPA S.22]
Weiterhin hat Fuzzing Ähnlichkeit mit bekannten Testverfahren wie "Black Box Testing" und Gray Box Testing", wobei Zweiteres dank Systemwissen einen deutlich höhreren Erfolg verspricht.
Entstehung
Die erste Refernz zu Fuzzing ist aus dem Jahr 1989, als Prof Barton Miller von der UW-Madison Robustheitstests von Unix Anwendungen durchführen ließ. Dabei wurden Zufällige Zeichen und Zeichenketten an die Applikationen gesendet. Ziel war die Qualität des Codes und Zuverlässigkeit der Programme zu erhöhen.
Der nächste Meilenstein war 1999 die PROTOS Testsuite der Oula University, die für diverse Protokolle fehlerhafte nicht dem Protokoll entsprechende Pakete erzeugte.
In den Jahren ab 2002 machte sich das gesteigerte Interesse an Fuzzing durch die Veröffentlichung diverser Fuzzing Frameworks bemerkbar. Dazu gehören u.a. Spike und das kommerzielle Codenomicon.
Phasen
- Identify Target
- Identify Inputs
- Generate Fuzzed Data
- Execute Fuzzed Data
- Monitor for Exceptions
- Determine Exploitability