Mikä on Fuzzing? Ohjelmistojen testaustekniikan ymmärtäminen haavoittuvuuksien tunnistamiseen
Fuzzing on ohjelmistotestaustekniikka, joka sisältää virheellisen tai odottamattoman syötteen syöttämisen ohjelmalle ja sen toiminnan tarkkailemisen mahdollisten vikojen tai haavoittuvuuksien havaitsemiseksi. Fuzzingin tarkoituksena on simuloida todellisia skenaarioita, joissa käyttäjät voivat antaa virheellisiä tai haitallisia syötteitä, ja tunnistaa mahdolliset tietoturvariskit tai ohjelmiston vakausongelmat.
Fuzzing-toiminnolla luodaan yleensä satunnaisia tai odottamattomia syötetietoja, kuten väärin muotoiltuja verkkopaketteja, jotka on kirjoitettu väärin URL-osoitteita tai odottamatonta käyttäjän syötettä ja syöttämistä ohjelmistoon sen toiminnan tarkkailemiseksi. Ohjelmiston tulos analysoidaan sitten mahdollisten poikkeavuuksien tai odottamattoman toiminnan havaitsemiseksi, joka voi viitata haavoittuvuuteen tai bugiin.
Fuzsing-tapauksia on useita, mukaan lukien:
1. Staattinen fuzzing: Tämän tyyppinen fuzzing sisältää ohjelmiston koodin analysoinnin mahdollisten haavoittuvuuksien tunnistamiseksi ja sitten syötetietojen luomisen, joka kohdistuu erityisesti näihin haavoittuvuuksiin.
2. Dynaaminen fuzzing: Tämän tyyppinen fuzzing sisältää satunnaisten syöttötietojen luomisen ja syöttämisen ohjelmistoon sen toiminnan tarkkailemiseksi ja mahdollisten poikkeamien tai haavoittuvuuksien havaitsemiseksi.
3. Protokollan fuzzing: Tämän tyyppinen fuzzing sisältää verkkoprotokollien, kuten HTTP:n tai FTP:n, testaamisen lähettämällä väärin muotoiltuja tai odottamattomia paketteja ja tarkkailemalla palvelimen vastausta.
4. Harmaan laatikon fuzzing: Tämän tyyppinen sumutus edellyttää jonkin verran tietoa ohjelmiston sisäisistä toiminnoista, kuten käytetyistä algoritmeista, ja tämän tiedon käyttämistä kohdistettujen syöttötietojen luomiseen.
Fuzzing on tehokas työkalu ohjelmiston haavoittuvuuksien tunnistamiseen, mutta se voi olla aikaa. - kuluttava ja resurssivaltainen. Sellaisenaan sitä käytetään tyypillisesti osana kattavaa testausstrategiaa, joka sisältää muuntyyppisiä testauksia, kuten yksikkötestausta ja integraatiotestausta.