Tarkvara haavatavused on küberturvalisuses oluline probleem. Need võimaldavad rünnata tarkvaratooteid ja kui need tooted on muul viisil turvaliste võrkudega ühendatud, võivad need pakkuda häkkeritele sisenemispunkti.
Kõiki professionaalseid tarkvaratooteid testitakse enne väljalaskmist põhjalikult. Kahjuks on haavatavused endiselt tavaline nähtus. Üks võimalus täiendavate haavatavuste leidmiseks on kasutada tarkvara testimise tehnikat, mida nimetatakse fuzzingiks.
Mis on fuzzing ja kuidas see toimib?
Mis on Fuzzing?
Fuzzing on automatiseeritud tarkvara testimistehnika, mis püüab juhuslike sisendite abil turvaauke leida.
Tarkvara käitub sageli ettearvamatult, kui kasutaja sisestab muu sisendi, kui seda, mida taotleti. Hägustamine on suurte ootamatute sisendite sisestamise ja toimuva salvestamise tava. Idee seisneb selles, et kasutaja saab seejärel tarkvara jälgida ja teha kindlaks, kas seal on turvaauke või mitte.
Fuzzingit kasutatakse tarkvaratoodete testimiseks ja turbespetsialistide poolt, et teha kindlaks, kas võrk on turvaline. Seda kasutavad ka häkkerid, kes kasutavad fuzzingut, et leida turvaauke, mida nad ise saavad kasutada.
Hägustamise käigus avastatud haavatavused on väga erinevad. Ootamatu sisend võib põhjustada tarkvara lihtsalt krahhi. Kuid see võib tagastada ka privaatset teavet või võimaldada kasutajal juurdepääsu tarkvara osadele, mis muidu oleksid piiratud.
Millised on hägustamise eelised?
Hägustamine on vaid üks paljudest viisidest, kuidas tarkvaratooteid turvaaukude suhtes testida. See on populaarne, kuna:
- Fuzzing on täielikult automatiseeritud. Kui uduprogramm on seadistatud, võib see jätkata turvaaukude otsimist ilma inimese sekkumiseta.
- Fuzzing võib leida turvaauke, mida teised tarkvara testimistehnikad ei leia. Seetõttu kasutatakse seda sageli lisaks manuaalsetele tehnikatele.
- Häkkerid kasutavad sageli hägustamist leida nullpäeva haavatavused. Häkkeritega samade tehnikate kasutamine võimaldab arendajatel leida nullpäeva haavatavused enne, kui nad seda teevad.
Kuidas Fuzzing töötab?
Hägustamiseks kasutataval tööriistal on tavaliselt kolm komponenti. Neid nimetatakse sageli luuletajaks, kulleriks ja oraakliks.
Luuletaja
Luuletaja alustab protsessi ja vastutab testjuhtumi loomise eest. Testjuhtum on pikk loend potentsiaalsetest sisenditest.
Kuller
Kuller sisestab kõik juhuslikud sisendid sihitud tarkvarasse. Fuzzerid on loodud seda tegema automaatselt, võimaldades suures koguses sisendeid hulgi testida.
Oraakel
Oraakel kontrollib, kas mõni sisenditest paneb tarkvara tegema midagi muud, kui see oli ette nähtud. Kui hägustamist tehakse seaduslikel eesmärkidel, saab käitumist korrata ja parandada. Või kui häkker teeb hägustamist ja ootamatu käitumine on kasulik, võidakse seda kasutada pahatahtlikel eesmärkidel.
Kuidas ründajad fuzzingut kasutavad?
Fuzzing on häkkerite seas populaarne tehnika, kuna see võimaldab neil leida tarkvara turvaauke ilma lähtekoodile juurdepääsuta. Kuna hägustamine on automatiseeritud, on seda ka lihtne teostada. Kui häkker avastab haavatavuse, võib ta olla võimeline sooritama järgmisi ründeid.
DDoS rünnakud
Kui fuzzing tuvastab, et teatud sisendite töötlemine nõuab pikka aega, saab seda teavet kasutada DDoS-i rünnaku käivitamiseks. DDoS rünnak hõlmab süsteemile nii paljude päringute saatmist, et see lakkab töötamast. Fuzzing võimaldab taotlusi kohandada nii, et nendele vastamiseks on vaja kõige rohkem süsteemiressursse.
SQL-i süstimine
SQL-i süstimise rünnak on siis, kui rakendusele saadetakse pahatahtlikud SQL-laused. Kui need avaldused pole korralikult puhastatud, võivad need lubada ründajal andmebaasiga suhelda. See võib võimaldada neil andmeid varastada või neid muuta. Fuzzing on tõhus tööriist suure hulga SQL-lausete proovimiseks ja selle kindlakstegemiseks, kas need annavad positiivse vastuse.
Puhvri ületäitumine
Puhvri ülevoolu rünnak on see, kui programmi puhvrisse lisatakse rohkem andmeid, kui see suudab hakkama saada. Selle stsenaariumi korral on võimalik, et häkker paneb selle programmi käivitama pahatahtlikku koodi. Seda saab kasutada andmete varastamiseks või volitamata juurdepääsu saamiseks. Hägustamist kasutatakse sisendite leidmiseks, mis võivad põhjustada puhvri ülevoolu.
Fuzzingi tüübid
Hägutööriistu saab klassifitseerida nii selle põhjal, kuidas testjuhtumeid genereeritakse ja kui palju süsteemist teatakse.
Loll vs. Nutikas
Loll segamine lisab lihtsalt suurel hulgal juhuslikke sisestusi. See ei vali sisendeid, mida rakendus kõige tõenäolisemalt aktsepteerib. See muudab juurutamise lihtsamaks ilma tarkvarast midagi teadmata; kuid see on ka väga ebaefektiivne, kuna enamik sisendeid lükatakse tagasi.
Nutikas fuzzing genereerib sisendeid, mida rakendus tõenäoliselt aktsepteerib. See nõuab, et kasutaja mõistaks, milline sisendvorming on vastuvõetav, ja seejärel genereerib selles vormingus suurel hulgal sisendeid. Nutikas fuzzing nõuab rakendamiseks rohkem pingutust ja tooteteadmisi, kuid see on oluliselt tõhusam.
Mutatsiooniline vs. Põlvkondlik
Mutatsioonilised fuzzerid võtavad varem vastu võetud sisendi ja teevad selles väiksemaid muudatusi. See võimaldab genereerida sisendeid, mis tõenäoliselt aktsepteeritakse ilma aktsepteeritud vormingu teadmata.
Põlvkondade fuzzerid loovad täiesti uusi sisendeid, mis põhinevad aktsepteeritud vormingu kohta teadaolevatel andmetel.
Valge kast vs. Must Kast
Musta kasti hägustamist kasutatakse ilma testitava rakenduse kohta teabeta. See on vähem efektiivne kui valge kasti udustamine, kuid seda saab rakendada mis tahes rakendusele, millel pole juurdepääsu lähtekoodile. See muudab selle häkkerite seas populaarseks.
Valge kasti hägustamine kasutab testitava rakenduse teavet, et luua sisendeid, mis tõenäoliselt aktsepteeritakse ja tekitavad turvaauke. Seda kasutavad peamiselt tarkvaraarendajad, kuna see on tõhusam kui musta kasti udustamine.
Fuzzing on võimas tarkvara testimismeetod, mida kasutavad tarkvaraarendajad, turbespetsialistid ja häkkerid. Selle rakendamine nõuab minimaalseid jõupingutusi ja suudab leida turvaauke, mida teised tarkvara testimistehnikad ei leia.
See on turvalisuse seisukohast eriti oluline, kuna seda kasutatakse sageli nullpäeva haavatavuste avastamiseks. Need haavatavused võivad avastada ja parandada turvaspetsialistid või häkkerid avastada ja ära kasutada.