Fuzzing oprogramowania z użyciem AFL: Jak wykorzystać jego potencjał?
Fuzzing oprogramowania z użyciem AFL: Jak wykorzystać jego potencjał?
Fuzzing to technika testowania oprogramowania, która pozwala na wykrywanie błędów i luk w zabezpieczeniach. W kontekście narzędzia American Fuzzy Lop (AFL), jego skuteczność polega na generowaniu losowych danych wejściowych, które mogą prowadzić do awarii programu. Warto dowiedzieć się, jak poprawnie skonfigurować AFL, aby maksymalnie wykorzystać jego możliwości.
W przykładzie, który rozważamy, aby AFL mógł skutecznie zidentyfikować problem, musi być w stanie wnioskować o wykonywanym kodzie na podstawie danych wejściowych. Gdy wprowadzimy wartość “2”, program powinien przeskoczyć do instrukcji “abort();”. Celem jest umożliwienie AFL-owi dostrzeżenie tego zachowania.
Aby to osiągnąć, musimy dodać specjalny kod pomocniczy do naszego programu. Proces ten jest prosty i polega na użyciu afl-gcc, kompilatora, który działa jak standardowy GCC, ale wzbogaca kod o dodatkowe instrukcje. Zakładając, że plik z kodem nazwaliśmy test.c, a AFL jest już zainstalowany, możemy przystąpić do kompilacji.
Na podstawie: Źródła








