Hekerji pogosto uporabljajo fuzerje, da iščejo ranljivosti v programski opremi in jo preizkušajo za slabosti, ki jih lahko izkoristijo. Razvijalci programske opreme lahko uporabijo fuzzer za predvidevanje in zaščito pred temi vrstami napadov.
Izvor
Prvi fuzer je napisal razvijalec Steve Capps v začetku 80-ih let prejšnjega stoletja, da bi preizkusil slabosti v programih za računalnik Macintosh. Program je imenoval "Opica", ki se je nanašal na klasično besedo opice, ki je na neskončno veliko časa pritisnila na tipke na pisalnem stroju. Teorija je, da bo, ko bo dovolj časa, opica sčasoma napisala celotna dela Shakespeara. Čeprav se ta pristop k testiranju programske opreme običajno imenuje "fuzzing", se imenuje tudi "testiranje opic" zaradi programa Capps.
Seznam fuzerjev
Fuzzing tehnike se lahko uporabljajo za testiranje programske opreme in veliko fuzerjev obstaja za posebne namene.
Sledi seznam fuzerjev, ki so večinoma odprti vir, mnogi pa še vedno delujejo.
Fuzzer Name / URL | Opis |
---|---|
Google Sanitizers | Skupina štirih podatkovnih sanitarjev, razvitih v Googlu, ki uporabljajo fuzzing za zaznavanje programskih napak:
|
afl-fuzz | American Fuzzy Lop, orodje, ki uporablja genetske algoritme za testiranje varnosti zbranih programov. |
Backfuzz | Zbirka orodij za fuzzing protokola. |
BrundleFuzz | Porazdeljena fuzer za Windows in Linux. |
CERT FOE | Failure Observation Engine, orodje, ki ga je razvil CERT in uporablja mutational fuzzing za zaznavanje ranljivosti v programih Windows. |
CERTfuzz | Izvorna koda CERT FOE. |
Choronzon | Evolucijski fuzer, ki temelji na znanju. |
Diffy | Orodje, ki ga je Twitter razvil za odkrivanje ranljivosti spletnih storitev. |
Dizzy | Fuzzing knjižnica za Python |
dfuzzer | Fuzzing orodje za testiranje procesov, ki komunicirajo prek D-Bus IPC in mehanizma RPC. |
dotdotpwn | Orodje za preizkušanje spletnih aplikacij za ranljivosti poti za potovanje poti. |
Dranzer | Preizkuševalnik fuzz za kontrolnike ActiveX. |
EMFFzzer | Izboljšan Metafile tester za fuzz. |
Izkoriščeno | Razširitev za GDB (razhroščevalnik GNU), ki analizira izvršljive datoteke Linuxa in razvrsti njihove napake po resnosti glede na znane napade. Prvotno razvit pri CERT. |
Go-fuzz | Preizkuševalnik fuzz za programe Go, ki njihove objekte napolni z naključnimi vrednostmi. |
grr | Prenese 32-bitne binarne datoteke na 64-bitne, ki jih delijo kot del procesa. |
honggfuzz | Evolucijski fuzer za strojno in programsko opremo. |
HTTP / 2 Fuzzer | Fuzzer za aplikacije HTTP / 2, ki so še vedno na voljo za prenos, vendar ni več aktivno razvita. |
Hodor | Fuzzer "rahlo več kot popolnoma neumen" (brutalna sila). |
iFuzzer | Fuzer napisana v Pythonu, ki uporablja Mercurial in Valgrind. |
KEMUfuzzer | Fuzzer za virtualne stroje, ki se izvajajo na emulacijskih platformah QEMU, VMware, VirtualBox ali BHOCS. |
KernelFuzzer | Fuzzer za sistemske klice jedra |
LibFuzzer | Knjižnica za procesno, evolucijsko, vodeno testiranje fuzije. |
Netzob | Fuzzer za komunikacijske protokole obratnega inženiringa. |
Nevronska fuzer | Fuzzer, ki uporablja strojno učenje (nevronske mreže) za izvajanje testiranja. |
Nočna mora | Porazdeljena fuzer s spletnimi orodji za upravljanje. |
Pathgrind | Dinamična analiza na podlagi poti za 32-bitne aplikacije. |
Perf-fuzzer | Fuzzer, posebej zasnovan za testiranje sistemskega klica perf_event_open () v jedru Linuxa. |
Pulsar | Fuzer, ki se "uči" protokolov. |
PyJFuzz | Python JSON fuzzer. |
QuickFuzz | Eksmerator za eksperimentalno slovnico, napisan v Haskellu. |
Radamsa | Fuzer za splošno uporabo. |
Randy | Preprost Python fuzzer, ki generira naključni vhod za testiran program. |
sfuzz | Enostavno fuzz. "Točno to sliši - preprosto fuzer." Vključen kot del orodja Kali Linux. |
skipfish | Varnostni skener za spletne aplikacije, razvit pri Googlu. |
syntribios | Avtomatiziran tester za spletne API-je, napisan v Pythonu, ki ga vzdržuje OpenStack Security Group. |
TriforceAFL | Fuzzer s polnim sistemom, ki uporablja QEMU. |
Wapiti | Pregledovalnik ranljivosti spletne aplikacije. |
Wfuzz | Fuzzer za spletne aplikacije. |
zzuf | Deterministični, pregledni vhodni fuzzer, ki naključno spremeni bitove v vhodnih operacijah datoteke. |
V nadaljevanju so opisani fuzzing varnostni pasovi ali okviri, ki vam lahko pomagajo pri upravljanju s testiranjem z oblačili.
Fuzzing Framework | Opis |
---|---|
CERT BFF | BFF (Basic Fuzzing Framework), ki ga je razvil CERT, namenjen iskanju ranljivosti v aplikacijah Windows, MacOS in Linux. |
FuzzFlow | Fuzzing okvir v AngularJS. |
Fuzzinator | Okvir za naključno testiranje. |
FuzzLabs | Okvir za splošne namene testiranja. |
Mlinček | Avtomat za testiranje fuzz / okvir za testiranje spletnih brskalnikov. |
Kitty | Okvir za testiranje fuzzov, napisan v Pythonu. |
ofuzz | Fuzzing okvir, napisan v OCaml. |
Nodefuzz | Okvir za testiranje fuzz za spletne brskalnike, napisan v nodejs. |
PassiveFuzzFrameworkOSX | Fuzzer za testiranje ranljivosti v jedru macOS. |
Fužer za breskve | Platforma za testiranje fuzz, ki lahko »preizkusi skoraj vsak sistem za neznane ranljivosti«. |
RamFuzz | Fuzzer za testiranje posameznih parametrov objektnih metod. |
Sulley | "Popolnoma avtomatiziran in nenadzorovan, čist Python" fuzzing okvir. |
FunFuzzer | Python fuzzing snop za motorje JavaScript in DOM renderere, ki jih uporablja Mozilla. |
Bug, pogoji programiranja, varnostni pogoji, testiranje programske opreme