Hakeri često koriste fuzzere za traženje ranjivosti u softveru, istražujući ga za slabosti koje mogu iskoristiti. Programeri mogu koristiti fuzzer za predviđanje i obranu od tih vrsta napada.
Podrijetlo
Prvi fuzzer napisao je početkom osamdesetih godina developer Steve Capps kako bi testirao slabosti u programima za Macintosh računalo. Svoj program nazvao je "Majmun", koji se odnosio na klasičnu izreku majmuna koji je slučajno pritiskao tipke na pisaćem stroju kroz beskonačnu količinu vremena. Teorija je da će, s obzirom na dovoljno vremena, majmun napokon napisati cjelokupno Shakespeareovo djelo. Iako se ovaj pristup testiranju softvera obično naziva "fuzzing", to se također naziva "testiranje majmuna" zbog Capps programa.
Popis fuzzera
Fuzzing tehnike mogu se koristiti za testiranje softvera, a mnoge fuzije postoje za specifične svrhe.
Slijedi popis fuzera, od kojih je većina otvorena i još uvijek aktivna.
Naziv fuzera / URL | Opis |
---|---|
Google Sanitizers | Grupa od četiri dezinfekcijska uređaja koja je razvijena u Googleu i koji koriste fuzzing za otkrivanje programskih pogrešaka:
|
AFL dlačica | American Fuzzy Lop, alat koji koristi genetske algoritme za testiranje sigurnosti kompiliranih programa. |
Backfuzz | Skup alata za fuzzing protokola. |
BrundleFuzz | Distribuirani fuzzer za Windows i Linux. |
CERT FOE | Neuspjelo motrenje motrenja, alat razvijen od strane CERT-a koji koristi mutacijsko fuzziranje za otkrivanje ranjivosti u Windows programima. |
CERTfuzz | Izvorni kod CERT FOE. |
Choronzon | Evolucijski fuzer utemeljen na znanju. |
Diffy | Alat razvijen u Twitteru za otkrivanje ranjivosti u web-uslugama. |
ošamućen | Fuzzing knjižnica za Python |
dfuzzer | Fuzzing alat za testiranje procesa koji komuniciraju putem D-Bus IPC i RPC mehanizma. |
dotdotpwn | Alat za testiranje web aplikacija za propuste u putovanju. |
Dranzer | Fuzz tester za ActiveX kontrole. |
EMFFuzzer | Poboljšani Metafile tester. |
iskoristive | Proširenje za GDB (GNU debugger) koji analizira izvršne datoteke Linuxa i klasificira njihove bugove prema ozbiljnosti prema poznatim eksploatacijama. Izvorno razvijen u CERT-u. |
Go-fuzz | Fuzz tester za Go programe koji popunjavaju njihove objekte slučajnim vrijednostima. |
GRrkao | Prevodi 32-bitne binarne datoteke na 64-bitne, fuzirajući ih kao dio procesa. |
honggfuzz | Evolucijski fuzzer s hardverom i softverom s povratnom vezom. |
HTTP / 2 Fuzzer | Fuzzer za HTTP / 2 aplikacije, još uvijek dostupan za preuzimanje, ali više nije aktivno razvijen. |
Hodor | "Malo više nego totalno glupi" fuzer (brutalna sila). |
iFuzzer | Fuzzer napisan u Pythonu koji koristi Mercurial i Valgrind. |
KEMUfuzzer | Fuzzer za virtualne strojeve koji se izvode na QEMU, VMware, VirtualBox ili BHOCS emulacijskim platformama. |
KernelFuzzer | Fuzzer za pozive u sustavu kernela |
LibFuzzer | Knjižnica za procesno, evolucijsko, pokriveno testiranje. |
Netzob | Fuzzer za obrnuto inženjerske komunikacijske protokole. |
Neural Fuzzer | Fuzzer koji koristi strojno učenje (neuronske mreže) za obavljanje testiranja. |
Noćna mora | Distribuirani fuzzer s alatima za administraciju na webu. |
Pathgrind | Dinamička analiza temeljena na putanji za 32-bitne aplikacije. |
Za izvedbu-fuzzer | Fuzzer posebno dizajniran za testiranje perf_event_open () sistemskog poziva u Linux kernelu. |
pulzar | Fuzzer koji "uči" protokole. |
PyJFuzz | Python JSON fuzzer. |
QuickFuzz | Eksperimentalni flamer za gramatiku pisan u Haskellu. |
Radamsa | Fuzzer za opće namjene. |
pohotljiv | Jednostavan Python fuzzer koji generira slučajni ulaz za testirani program. |
sfuzz | Jednostavno fuzz. "Upravo ono što zvuči - jednostavan fuzer." Uključeno kao dio Kali Linux alata. |
Skipfish | Na Googleu je razvijen sigurnosni skener za web-aplikacije. |
syntribios | Automatizirani tester za fuzz za web API, pisan u Pythonu i održavan od OpenStack Security Group. |
TriforceAFL | Fuzzer cijelog sustava koji koristi QEMU. |
Sjevernoamerički jelen | Skener ranjivosti web aplikacije. |
Wfuzz | Fuzzer za web aplikacije. |
zzuf | Deterministički, transparentni ulazni fuzzer koji slučajno mijenja bitove u ulaznim operacijama datoteke. |
U nastavku se nalaze fuzzing pojasevi ili okviri koji vam mogu pomoći u upravljanju testiranjem na fuzzu.
Fuzzing Framework | Opis |
---|---|
CERT BFF | BFF (Basic Fuzzing Framework), razvijen od strane CERT-a, dizajniran za pronalaženje ranjivosti u Windows, MacOS i Linux aplikacijama. |
FuzzFlow | Fuzzing okvir u AngularJS-u. |
Fuzzinator | Okvir za slučajno testiranje. |
FuzzLabs | Okvir opće namjene za opće namjene. |
brus | Automat za testiranje fuzz / okvir za testiranje web-preglednika. |
Mače | Okvir za testiranje fuzza pisan u Pythonu. |
ofuzz | Fuzzing okvir pisan u OCaml. |
Nodefuzz | Okvir za provjeru fuzija za web preglednike, napisan u nodejs. |
PassiveFuzzFrameworkOSX | Fuzzer za testiranje ranjivosti u MacOS kernelu. |
Fuzzer breskve | Platforma za testiranje na fuzzu koji može "testirati gotovo svaki sustav za nepoznate ranjivosti". |
RamFuzz | Fuzzer za testiranje pojedinih parametara objektnih metoda. |
Sulley | "Potpuno automatizirani i bez nadzora, čisti Python" fuzzing okvir. |
FunFuzzer | Python fuzzing pojas za JavaScript motore i DOM renderere, Mozilla. |
Bug, Uvjeti programiranja, Sigurnosni pojmovi, Testiranje softvera