Sumutestaus
Fuzz-testaus tai Fuzzing on ohjelmistojen testaustekniikka, jolla virheellisiä tai satunnaisia FUZZ-tietoja ladataan ohjelmistojärjestelmään koodausvirheiden ja tietoturva-aukkojen löytämiseksi. Fuzz-testauksen tarkoituksena on lisätä tietoja automaattisilla tai puoliautomaattisilla tekniikoilla ja testata järjestelmää erilaisille poikkeuksille, kuten järjestelmän kaatumiselle tai sisäänrakennetun koodin vikaantumiselle.
Fuzz-testauksen on alun perin kehittänyt Barton Miller Wisconsinin yliopistossa vuonna 1989. Fuzz-testaus tai fuzzing on ohjelmistotestaustekniikka, ja se on eräänlainen tietoturvatestaus .
Miksi tehdä Fuzz-testausta?
- Yleensä sumea testaus löytää vakavimman tietoturvavirheen tai -vian.
- Fuzz-testaus antaa tehokkaamman tuloksen käytettäessä Black Box -testausta, beetatestausta ja muita virheenkorjausmenetelmiä.
- Fuzz-testausta käytetään ohjelmiston haavoittuvuuden tarkistamiseen. Se on erittäin kustannustehokasta testaustekniikkaa.
- Sumutestaus on yksi mustan laatikon testaustekniikoista. Fuzzing on yksi yleisimmistä menetelmä hakkereista, joita käytetään järjestelmän haavoittuvuuden löytämiseen.
Kuinka tehdä sumutestaus
Sumean testauksen vaiheet sisältävät perustestauksen vaiheet-
Vaihe 1) Tunnista kohdejärjestelmä
Vaihe 2) Tunnista tulot
Vaihe 3) Luo fuusioidut tiedot
Vaihe 4) Suorita testi sumean datan avulla
Vaihe 5) Seuraa järjestelmän toimintaa
Vaihe 6) Lokivirheet
Esimerkkejä sumuttimista
-
Mutaatiopohjaiset Fuzzerit muuttavat olemassa olevia datanäytteitä uuden testidatan luomiseksi. Tämä on hyvin yksinkertainen ja suoraviivainen lähestymistapa, se alkaa kelvollisilla protokollanäytteillä ja sekoittaa joka tavua tai tiedostoa.
-
Generation-based Fuzzers määrittelee uuden datan mallin syötteen perusteella. Se alkaa tuottaa tuloa alusta alkaen määrittelyn perusteella.
-
PÖYTÄKIRJA-PERUUTETTU fuzzer , menestynein fuzzer on saada yksityiskohtaiset tiedot testattavasta protokollamuodosta. Ymmärtäminen riippuu erittelystä. Se käsittää spesifikaation taulukon kirjoittamisen työkaluun ja sitten mallipohjaisen testinmuodostustekniikan avulla läpi spesifikaation ja lisäämällä epäsäännöllisyyttä tietosisällössä, järjestyksessä jne. Tätä kutsutaan myös syntaksitestaukseksi, kieliopin testaukseksi, kestävyystestaukseksi, jne. Fuzzer voi tuottaa testitapauksia olemassa olevasta tai käyttää kelvollisia tai virheellisiä syötteitä.
Protokollaan perustuvaa fuusiointia on kaksi rajoitusta:
- Testausta ei voida jatkaa, ennen kuin määrittely on kypsä.
- Monet hyödylliset protokollat ovat jatkoa julkaistuille protokollille. Jos fuzz-testaus perustuu julkaistuihin spesifikaatioihin, uusien protokollien testauskattavuus on rajoitettu.
Fuzzing-tekniikan yksinkertaisin muoto on satunnaisen syötteen lähettäminen ohjelmistolle joko protokollapaketteina tai tapahtumana. Tämä satunnaisen syötteen välittämistekniikka on erittäin tehokas vikojen löytämiseksi monista sovelluksista ja palveluista. Saatavilla on myös muita tekniikoita, ja se on erittäin helppo toteuttaa. Näiden tekniikoiden toteuttamiseksi meidän on vain muutettava olemassa olevia panoksia. Voimme muuttaa tuloa vain vaihtamalla tulobittejä.
Fuzz-testauksessa havaitut virhetyypit
-
Väitevikoja ja muistivuotoja Tätä menetelmää käytetään laajalti suurissa sovelluksissa, joissa virheet vaikuttavat vakavaan haavoittuvuuteen muistin turvallisuuteen.
- Virheellinen syöte
Fuzz-testauksessa fuzzereita käytetään tuottamaan virheellinen tulo, jota käytetään virheenkäsittelyrutiinien testaamiseen, ja tämä on tärkeää ohjelmistolle, joka ei hallitse sen tuloa. Yksinkertainen sulautuminen voidaan tunnistaa keinona automatisoida negatiivinen testaus.
- Korjausvirheet
Fuzzingia voidaan käyttää myös eräiden "oikein" -vikojen havaitsemiseen. Kuten vioittunut tietokanta, huonot hakutulokset jne.
Fuzz-testaustyökalut
Verkkoturvallisuudessa käytettäviä työkaluja voidaan käyttää laajalti fuzz-testauksessa, kuten Burp Suite, Peach Fuzzer jne.
- Peach Fuzzer
Peach Fuzzer tarjoaa vankemman ja turvallisemman kattavuuden kuin skanneri. Muut testaustyökalut voivat etsiä vain tunnettuja ketjuja, kun taas Peach Fuzzer antaa käyttäjille mahdollisuuden löytää tunnettuja ja tuntemattomia ketjuja.
- Spike-välityspalvelin
Se on ammattitason työkalu, joka etsii verkkosovellusten sovellustason haavoittuvuuksia. SPIKE Proxy kattaa perusasiat, kuten SQL Injection ja sivustojen väliset komentosarjat, mutta se on täysin avoin Python-infrastruktuuri. SPIKE Proxy on saatavana Linuxille ja Windowsille.
- Webscarab
Webscarab on kirjoitettu Java-muodossa, joten se on kannettava monille alustoille. Sovellusten analysointiin käytetään Webscarab-kehystä, joka kommunikoi HTTP- ja HTTPS-protokollien avulla.
Esim .: Webscarab toimii sieppaavana välityspalvelimena, jonka avulla operaattori voi tarkistaa ja muokata selaimen luomaa pyyntöä, ennen kuin palvelin vastaanottaa ne. Anna tarkistaa ja päivittää palvelimen luomat vastaukset ennen kuin selain on vastaanottanut ne. Tällä tavalla, jos web-scarab löytää aukon, se tekee luettelon ilmoitetuista ongelmista.
- OWASP WSFuzzer
WSFuzzer on GPL-ohjelma, joka kirjoitetaan Pythonissa. GPL'd-ohjelma kohdistuu tällä hetkellä verkkopalveluihin. OWASPWSFuzzerin nykyisessä versiossa HTTP-pohjaiset SOAP-palvelut ovat pääkohde.
Fuzz-testauksen edut
- Fuzz-testaus parantaa ohjelmistojen tietoturvatestausta.
- Fuzzingissa havaitut virheet ovat joskus vakavia, ja hakkerit käyttävät suurimman osan ajasta, mukaan lukien kaatumiset, muistivuodot, käsittelemättömät poikkeukset jne.
- Jos testaajat eivät huomaa mitään virheistä ajan ja resurssien rajoituksen vuoksi, nämä virheet löytyvät myös Fuzz-testauksesta.
Fuzz-testauksen haitat
- Pelkkä sumutestaus ei voi antaa täydellistä kuvaa yleisestä turvallisuusuhasta tai virheistä.
- Fuzz-testaus on vähemmän tehokasta sellaisten tietoturvauhkien torjumiseksi, jotka eivät aiheuta ohjelman kaatumisia, kuten jotkut virukset, madot, troijalaiset jne.
- Fuzz-testaus voi havaita vain yksinkertaiset viat tai uhat.
- Tehokas toiminta vaatii huomattavaa aikaa.
- Raja-arvon ehdon asettaminen satunnaisilla syötteillä on hyvin ongelmallista, mutta nyt käyttäjien panoksiin perustuvien determinististen algoritmien käyttö ratkaisee tämän ongelman.
Yhteenveto:
Ohjelmistotuotannossa Fuzz-testaus osoittaa virheiden esiintymisen sovelluksessa. Fuzzing ei voi taata virheiden havaitsemista kokonaan sovelluksessa. Mutta Fuzz-tekniikkaa käyttämällä se varmistaa, että sovellus on vankka ja turvallinen, koska tämä tekniikka auttaa paljastamaan suurimman osan yleisimmistä haavoittuvuuksista.
Tämän artikkelin on kirjoittanut Priyanka Kothe