REKLAMA

Fuzzing

Fuzzing jest z zasady prostą metodą testowania oprogramowania, polegającą na przekazywaniu programowi nieprawidłowych danych, a następnie sprawdzaniu, czy aplikacja poprawnie na nie zareagowała. Technika ta przeżywa obecnie drugą młodość jako niezwykle skuteczny sposób na odkrywanie błędów bezpieczeństwa, a my w tym artykule postaramy się omówić, co leży u jej podstaw.

Zagadnienia poruszane w tym artykule:

  • Wysokopoziomowy wstęp do fuzzingu;
  • Współczesny fuzzing;
  • Przygotowanie aplikacji do testowania;
  • Tworzenie korpusu plików wejściowych;
  • Generatory plików wejściowych;
  • Mutowanie danych wejściowych;
  • Wykrywanie błędów;
  • Deduplikacja błędów;
  • Minimalizacja zestawów testowych;
  • Przyspieszanie fuzzingu;
  • Pokrycie kodu;
  • Przykładowe fuzzery;
  • Czym fuzzing nie jest.

Artykuł znajduje się w miesięczniku "Programista" nr 07/2016 (50). Jest to wydanie sierpień/wrzesień. Szczegółowy spis treści tego wydania: http://programistamag.pl/programista-07-2016-50

Autorzy artykułu

gynGynvael Clodwind, autor książki „Zrozumieć Programowanie”, na co dzień pracuje w firmie Google na stanowisku Information Security Engineer. Po godzinach prowadzi bloga oraz nagrywa podcasty o programowaniu (http://gynvael.coldwind.pl/). Hobbystycznie programuje od ponad 25 lat.

  

j00ruMateusz "j00ru" Jurczyk od wielu lat pasjonuje się tematyką bezpieczeństwa komputerowego – specjalizuje się w metodach odnajdowania oraz wykorzystywania podatności w popularnych aplikacjach klienckich oraz systemach operacyjnych. Na co dzień pracuje w firmie Google w zespole Project Zero, w wolnych chwilach prowadzi bloga związanego z bezpieczeństwem niskopoziomowym (http://j00ru.vexillium.org).

>>POBIERZ FRAGMENT TEGO ARTYKUŁU<<

fuzzing50