Fuzz-testimise (fuzzingu) õpetus: mis on, tüübid, tööriistad & Näide

Lang L: none (table-of-contents):

Anonim

Fuzzi testimine

Fuzz Testing ehk Fuzzing on tarkvara testimise tehnika, mille abil valed või juhuslikud andmed, mida nimetatakse FUZZ-iks, sisestatakse tarkvarasüsteemi, et avastada kodeerimisvead ja turvaaugud. Fuzz-testimise eesmärk on andmete sisestamine automatiseeritud või poolautomaatsete tehnikate abil ning süsteemi testimine mitmesuguste erandite osas, nagu süsteemi krahh või sisseehitatud koodi rike jne.

Fuzz katsetamine oli algselt välja töötatud Barton Miller Ülikooli Wisconsin 1989. Fuzz katsetamine või fuzzing on tarkvara testimine tehnikat ja see on teatud tüüpi turvalisuse testimine .

Miks teha udutesti?

  • Tavaliselt leitakse Fuzzy testimisel kõige tõsisem turvaviga või defekt.
  • Fuzz-testimine annab tõhusama tulemuse, kui seda kasutatakse musta kasti testimise, beetatestimise ja muude silumismeetoditega.
  • Fuzz-testimist kasutatakse tarkvara haavatavuse kontrollimiseks. See on väga kulutõhus testimistehnika.
  • Fuzz testimine on üks musta kasti testimise tehnikat. Fuzzing on üks levinumaid meetodeid, mida häkkerid kasutavad süsteemi haavatavuse leidmiseks.

Kuidas teha udususe testimist

Hägusa testimise etapid hõlmavad testimise põhietappe

1. samm. Tehke kindlaks sihtsüsteem

2. samm. Tehke kindlaks sisendid

Samm 3) genereerige fuzzed andmed

4. samm. Tehke test uduste andmete abil

5. samm. Jälgige süsteemi käitumist

Samm 6) Logi defektid

Fuzzerite näited

  • Mutatsioonipõhised fuzzerid muudavad olemasolevaid andmeproove uute testandmete loomiseks. See on väga lihtne ja arusaadav lähenemisviis, see algab kehtivatest protokolli näidistest ja hoiab iga baidi või faili pidevalt segamini.

  • Generatsioonipõhised Fuzzers määratlevad uued andmed mudeli sisendi põhjal. See hakkab spetsifikatsiooni põhjal nullist sisendit genereerima.

  • PROTOKOLLIPÕHINE fuzzer , kõige edukam fuzzer on üksikasjalikud teadmised testitava protokolli vormingust. Mõistmine sõltub spetsifikatsioonist. See hõlmab spetsifikatsiooni massiivi kirjutamist tööriista, seejärel mudelipõhise testi genereerimise tehnika abil spetsifikatsiooni läbimist ja ebakorrapärasuse lisamist andmete sisus, järjestuses jne. Seda nimetatakse ka süntaksi testimiseks, grammatika testimiseks, vastupidavuse testimiseks, jne. Fuzzer võib genereerida testjuhtumeid olemasolevast või kasutada kehtivaid või valesid sisendeid.

Protokollipõhisel sulandamisel on kaks piirangut:

  1. Testimist ei saa jätkata enne, kui spetsifikatsioon on küps.
  2. Paljud kasulikud protokollid on avaldatud protokollide laiendus. Kui fuzz-testimine põhineb avaldatud spetsifikatsioonidel, on uute protokollide testide katvus piiratud.

Fuzzingi tehnika lihtsaim vorm on juhusliku sisendi saatmine tarkvarale kas protokollipakettidena või sündmusena. See juhusliku sisendi edastamise tehnika on paljude rakenduste ja teenuste vigade leidmiseks väga võimas. Saadaval on ka muud tehnikad ja seda on väga lihtne rakendada. Nende tehnikate rakendamiseks peame lihtsalt muutma olemasolevaid sisendeid. Saame sisendit muuta, vahetades sisendibitte.

Fuzz Testinguga tuvastatud vigade tüübid

  • Väite tõrked ja mälulekked seda metoodikat kasutatakse laialdaselt suurte rakenduste jaoks, kus vead mõjutavad mälu ohutust, mis on tõsine haavatavus.

  • Vigane sisestus

    Fuzz-testimisel kasutatakse fuzzereid kehtetu sisendi genereerimiseks, mida kasutatakse veakäsitlusrutiinide testimiseks, ja see on oluline tarkvara jaoks, mis ei kontrolli selle sisendit. Lihtsat fuzzingit võib nimetada negatiivse testimise automatiseerimise viisiks.

  • Korrektsuse vead

    Fuzzingi abil saab tuvastada ka teatud tüüpi "korrektsuse" vigu. Näiteks rikutud andmebaas, kehvad otsingutulemused jne.

    Fuzzi testimise tööriistad

    Veebiturvalisuses kasutatavaid tööriistu saab laialdaselt kasutada fuzz-testimisel, näiteks Burp Suite, Peach Fuzzer jne.

  • Virsikuhelin

    Peach Fuzzer pakub tugevamat ja turvalisemat katvust kui skanner. Muud testimisvahendid saavad otsida ainult teadaolevaid lõime, Peach Fuzzer aga võimaldab kasutajatel leida teadaolevaid ja tundmatuid lõime.

  • Spike Proxy

    See on professionaalse taseme tööriist, mis otsib veebirakenduste rakendustaseme haavatavusi. SPIKE Proxy hõlmab põhitõdesid, nagu SQL Injection ja saididevaheline skriptimine, kuid see on täiesti avatud Pythoni infrastruktuur. SPIKE Proxy on saadaval Linuxile ja Windowsile.

  • Veebikaamera

    Webscarab on kirjutatud Java keeles, seega on see paljudele platvormidele kaasaskantav. Rakenduse analüüsimiseks kasutatakse Webscarabi raamistikku, mis suhtleb HTTP ja HTTPS protokollide abil.

    Nt: Webscarab töötab pealtkuulatava puhverserverina, see võimaldab operaatoril üle vaadata ja muuta brauseri loodud taotlust enne, kui server need kätte saab. Ja lubage enne brauserisse laekumist üle vaadata ja värskendada serveri loodud vastust. Sel viisil, kui veebi scarab leiab lünga, teeb see teatatud probleemide loendi.

  • OWASP WSFuzzer

    WSFuzzer on GPL-i programm, mis on kirjutatud Pythonis. GPL'd programm sihib praegu veebiteenuseid. OWASPWSFuzzeri praeguses versioonis on peamine sihtmärk HTTP-põhised SOAP-teenused.

Fuzz-testimise eelised

  • Fuzz-testimine parandab tarkvara turvalisuse testimist.
  • Fuzzingis leitud vead on mõnikord tõsised ja häkkerid kasutavad seda enamasti, sealhulgas krahhid, mälulekked, käsitlemata erandid jne.
  • Kui mõni vigadest ei märka testijad aja ja ressursside piiratuse tõttu, leiavad need vead ka Fuzzi testimises.

Fuzz-testimise puudused

  • Ainult udususe testimine ei anna täielikku ülevaadet üldisest turvaohust või vigadest.
  • Fuzz-testimine on vähem efektiivne turvaohtudega tegelemiseks, mis ei põhjusta programmi krahhi, näiteks mõned viirused, ussid, Trooja jne
  • Fuzz-testimisega saab tuvastada ainult lihtsaid vigu või ohte.
  • Efektiivseks tulemuseks on vaja palju aega.
  • Piirväärtuse tingimuse seadmine juhuslike sisenditega on väga problemaatiline, kuid nüüd lahendab selle probleemi probleemide lahendamiseks kasutaja sisenditel põhinevad deterministlikud algoritmid.

Kokkuvõte:

Tarkvaratehnikas näitab Fuzzi testimine vigade olemasolu rakenduses. Fuzzing ei taga rakenduses vigade täielikku avastamist. Kuid Fuzzi tehnika abil tagab see rakenduse töökindluse ja turvalisuse, kuna see tehnika aitab paljastada enamiku levinumatest haavatavustest.

Selle artikli autor on Priyanka Kothe