Hakkerit käyttävät usein fuzzereita etsimään ohjelmistojen haavoittuvuuksia ja testaavat heitä heikkouksiin, joita he voivat hyödyntää. Ohjelmistokehittäjät voivat käyttää fuzzeria ennakoimaan ja puolustamaan näitä hyökkäyksiä.
alkuperä
Ensimmäisen fuzzerin kirjoitti kehittäjä Steve Capps 1980-luvun alussa testatakseen Macintosh-tietokoneen ohjelmien heikkoutta. Hän kutsui ohjelmaa "The Monkey" viittaamalla apinan klassiseen sanontaan, joka painoi satunnaisia näppäimiä kirjoituskoneeseen äärettömän paljon aikaa. Teoria on, että antanut tarpeeksi aikaa, apina kirjoittaa lopulta Shakespearen täydelliset teokset. Vaikka tätä lähestymistapaa ohjelmistojen testaukseen kutsutaan tyypillisesti "fuzzingiksi", sitä kutsutaan myös "apinan testaukseksi" Capps-ohjelman vuoksi.
Luettelo Fuzzersista
Fuzzing-tekniikoita voidaan käyttää ohjelmiston testaamiseen, ja monia fuzzereja on olemassa tiettyihin tarkoituksiin.
Seuraavassa on luettelo fuzzereista, joista useimmat ovat avoimen lähdekoodin ja monet yhä aktiivisessa kehityksessä.
Fuzzerin nimi / URL-osoite | Kuvaus |
---|---|
Google Sanitizers | Google-sivustossa kehitettiin neljä tietojenkäsittelylaitetta, jotka käyttävät fuzzingia ohjelmavirheiden havaitsemiseksi:
|
AFL-nöyhtä | American Fuzzy Lop, työkalu, joka käyttää geneettisiä algoritmeja koottujen ohjelmien turvallisuuden testaamiseen. |
Backfuzz | Protokollan fuzzing-työkalupakki. |
BrundleFuzz | Jaettu fuzzer Windowsille ja Linuxille. |
CERT FOE | CERT: n kehittämä epäonnistumisen tarkkailukone, joka käyttää mutaatiota fuzzingin avulla havaitsemaan haavoittuvuudet Windows-ohjelmissa. |
CERTfuzz | CERT FOE: n lähdekoodi. |
Choronzon | Evoluutio tietoon perustuva fuzzer. |
Diffy | Twitterin kehittämä työkalu web-palveluiden haavoittuvuuksien löytämiseksi. |
pyörryksissä | Pythonin fuzzing-kirjasto |
dfuzzer | Fuzzing-työkalu prosessien testaamiseen, jotka kommunikoivat D-Bus IPC- ja RPC-mekanismin kautta. |
dotdotpwn | Työkalu, jolla voidaan testata Web-sovelluksia polkuhaavoittuvuuksiin. |
Dranzer | Fuzz-testeri ActiveX-ohjaimille. |
EMFFuzzer | Enhanced Metafile fuzz tester. |
hyödynnettävissä | Laajennus GDB: lle (GNU debugger), joka analysoi Linux-suoritettavia tiedostoja ja luokittelee niiden virheet vakavuuden mukaan tunnettujen hyödyntämistapojen mukaan. Alun perin kehitetty CERT: ssä. |
Go-fuzz | Fuzz-testeri Go-ohjelmille, joka kokoaa kohteet satunnaisarvoilla. |
GRR | Kääntää 32-bittiset binaarit 64-bittiseksi, fuzzing ne osana prosessia. |
honggfuzz | Evoluutio, palauteohjattu fuzzer laitteisto- ja ohjelmistoalalla. |
HTTP / 2 Fuzzer | HTTP / 2-sovellusten fuzzer on edelleen ladattavissa, mutta sitä ei enää kehitetä aktiivisesti. |
Hodor | "Hieman enemmän kuin täysin tyhmä" (brute force) fuzzer. |
iFuzzer | Pythonissa kirjoitettu fuzzer, joka käyttää Mercurialia ja Valgrindia. |
KEMUfuzzer | Fuzzer virtuaalikoneille, jotka toimivat QEMU-, VMware-, VirtualBox- tai BHOCS-emulointijärjestelmillä. |
KernelFuzzer | Särmäys ytimen järjestelmäpuheluille |
LibFuzzer | Kirjasto prosessin, evoluutio-, peitto-ohjattavan fuzz-testauksen varten. |
Netzob | Fuzzer käänteistekniikan viestintäprotokollia varten. |
Neural Fuzzer | Fuzzer, joka käyttää koneen oppimista (hermoverkkoja) testien suorittamiseen. |
Painajainen | Jaettu fuzzer, jossa on web-pohjaisia hallintatyökaluja. |
Pathgrind | Reittipohjainen dynaaminen analyysi 32-bittisille sovelluksille. |
Teho-fuzzer | Fuzzer, joka on suunniteltu testaamaan perf_event_open () -järjestelmän puhelua Linux-ytimessä. |
pulsar | Fuzzer, joka "oppii" protokollia. |
PyJFuzz | Python JSONin fuzzer. |
QuickFuzz | Haskellissa kirjoitettu kokeellinen kielioppi fuzzer. |
Radamsa | Yleiskäyttöinen fuzzer. |
himokas | Yksinkertainen Python-fuzzer, joka tuottaa satunnaistulon testattuun ohjelmaan. |
sfuzz | Yksinkertainen fuzz. "Mitä se kuulostaa - yksinkertainen fuzzer." Mukana osana Kali Linux -työkalua. |
skipfish | Googlessa kehitetty verkkosovelluksen tietoturvatarkistus. |
syntribios | Automaattinen fuzz-testeri verkkosovelluksille, kirjoitettu Pythonissa ja jota ylläpitää OpenStack Security Group. |
TriforceAFL | Täydellinen järjestelmä, joka käyttää QEMU: ta. |
Kanadanhirvi | Verkkosovelluksen haavoittuvuuden skanneri. |
Wfuzz | Brute-force fuzzer web-sovelluksiin. |
zzuf | Deterministinen, läpinäkyvä sovellustulon fuzzer, joka muuttaa satunnaisesti tiedostojen syöttötoimintojen bittejä. |
Seuraavassa on fuzzing-valjaat tai kehykset, joiden avulla voit hallita fuzz-testausta.
Fuzzing Framework | Kuvaus |
---|---|
CERT BFF | CERT: n kehittämä BFF (Basic Fuzzing Framework), jonka tarkoituksena on löytää haavoittuvuuksia Windows-, MacOS- ja Linux-sovelluksissa. |
FuzzFlow | Fuzzing-kehys AngularJS: ssä. |
Fuzzinator | Runko satunnaisille fuzz-testeille. |
FuzzLabs | Yleiskäyttöinen fuzz-testauskehys. |
mylly | Fuzz-testausautomaatti / kehys web-selaimien testaamiseen. |
Kisu | Pythonissa kirjoitettu fuzz-testauskehys. |
ofuzz | OCAML: ssä kirjoitettu fuzzing-kehys. |
Nodefuzz | Nodejsissa kirjoitettu fuzz-testauskehys web-selaimille. |
PassiveFuzzFrameworkOSX | Fuzzer MacOS-ytimen haavoittuvuuksien testaamiseen. |
Peach Fuzzer | Fuzz-testausfoorumi, joka voi "testata lähes minkä tahansa järjestelmän tuntemattomia haavoittuvuuksia varten". |
RamFuzz | Fuzzer, jolla testataan kohteen menetelmien yksittäisiä parametreja. |
Sulley | "Täysin automatisoitu ja valvomaton, puhdas Pythonin" fuzzing-kehys. |
FunFuzzer | Mozilla on Python-fuzzing-valjaat JavaScript-moottoreille ja DOM-muokkauslaitteille. |
Virhe, ohjelmointitermit, suojausehdot, ohjelmistojen testaus