Programmatūras ievainojamības ir būtiska kiberdrošības problēma. Tie ļauj uzbrukt programmatūras produktiem, un, kad šie produkti ir savienoti ar citādi drošiem tīkliem, tie var nodrošināt hakeru ieejas punktu.

Visi profesionālie programmatūras produkti tiek rūpīgi pārbaudīti pirms izlaišanas. Diemžēl ievainojamības joprojām ir izplatīta parādība. Viens no veidiem, kā atrast papildu ievainojamības, ir izmantot programmatūras testēšanas paņēmienu, kas pazīstams kā fuzzing.

Tātad, kas ir fuzzing un kā tas darbojas?

Kas ir Fuzzing?

Fuzzing ir automatizēta programmatūras testēšanas metode, kas mēģina atrast ievainojamības, izmantojot nejaušus ievades datus.

Programmatūra bieži uzvedas neparedzami, kad lietotājs ievada citu ievadi, nevis to, kas tika pieprasīts. Izplūdes metode ir liela neparedzētu ievades daudzuma ievadīšana un notiekošā ierakstīšana. Ideja ir tāda, ka lietotājs pēc tam var pārraudzīt programmatūru un noteikt, vai tajā ir ievainojamība.

Izplūdumu izmanto, lai pārbaudītu programmatūras produktus, un drošības speciālisti izmanto, lai noteiktu, vai tīkls ir drošs. To izmanto arī hakeri, kuri praktizē izplūšanu, lai atrastu ievainojamības, kuras viņi paši var izmantot.

Izplūdes rezultātā atklātās ievainojamības ir ļoti dažādas. Negaidīta ievade var izraisīt programmatūras vienkāršu avāriju. Taču tā var arī atgriezt privātu informāciju vai ļaut lietotājam piekļūt programmatūras daļām, kas citādi būtu ierobežotas.

Kādas ir izplūdes priekšrocības?

Izjaukšana ir tikai viens no daudzajiem veidiem, kā programmatūras produktos var pārbaudīt ievainojamības. Tas ir populārs, jo:

  • Izplūdes funkcija ir pilnībā automatizēta. Kad neskaidra programma ir iestatīta, tā var turpināt meklēt ievainojamības bez cilvēka iejaukšanās.
  • Fuzzing var atrast ievainojamības, kuras citas programmatūras testēšanas metodes neatrod. Šī iemesla dēļ to bieži izmanto papildus manuālajām metodēm.
  • Hakeri bieži izmanto izplūšanu atrast nulles dienas ievainojamības. Izmantojot tos pašus paņēmienus, ko hakeri, izstrādātāji var atrast nulles dienas ievainojamības, pirms viņi to dara.

Kā darbojas izplūdes sistēma?

Rīkam, ko izmanto izkliedēšanai, parasti ir trīs sastāvdaļas. Viņus bieži dēvē par dzejnieku, kurjeru un orākulu.

Dzejnieks

Dzejnieks sāk procesu un ir atbildīgs par testa piemēra ģenerēšanu. Pārbaudes gadījums ir garš iespējamo ievades datu saraksts.

Kurjers

Kurjers visas nejaušās ievades ievieto mērķa programmatūrā. Fuzzers ir paredzēti, lai to izdarītu automātiski, ļaujot lielapjoma testēt lielu daudzumu ievades.

Orākuls

Orākuls pārbauda, ​​vai kāda no ievadēm neliek programmatūrai darīt kaut ko citu, nekā tas bija paredzēts. Ja izplūšana tiek veikta likumīgos nolūkos, darbību var atkārtot un labot. Vai arī, ja izplūšanu veic hakeris un neparedzētā rīcība ir noderīga, to var izmantot ļaunprātīgiem nolūkiem.

Kā uzbrucēji izmanto izplūdumu?

Fuzing ir populārs paņēmiens hakeru vidū, jo tas ļauj viņiem atrast programmatūras ievainojamības bez piekļuves avota kodam. Tā kā izplūdes funkcija ir automatizēta, to ir arī viegli veikt. Ja hakeris atklāj ievainojamību, viņš var veikt tālāk norādītos uzbrukumus.

DDoS uzbrukumi

Ja fuzzing atklāj, ka noteiktu ievades datu apstrādei ir nepieciešams ilgs laiks, šo informāciju var izmantot, lai sāktu DDoS uzbrukumu. DDoS uzbrukums ietver tik daudz pieprasījumu nosūtīšanu sistēmai, ka tā pārstāj darboties. Izplūdes funkcija ļauj pielāgot pieprasījumus tā, lai tiem atbildētu visvairāk sistēmas resursu.

SQL injekcija

SQL injekcijas uzbrukums ir tad, kad lietojumprogrammai tiek nosūtīti ļaunprātīgi SQL priekšraksti. Ja šie paziņojumi nav pareizi notīrīti, tie var ļaut uzbrucējam mijiedarboties ar datu bāzi. Tas var ļaut viņiem nozagt datus vai tos modificēt. Fuzzing ir efektīvs rīks, lai mēģinātu izmantot lielu daudzumu SQL priekšrakstu un noteiktu, vai tie rada labvēlīgu atbildi.

Bufera pārpilde

Bufera pārplūdes uzbrukums ir tad, kad programmas buferim tiek pievienots vairāk datu, nekā tas spēj apstrādāt. Šādā gadījumā hakeris var likt šai programmai izpildīt ļaunprātīgu kodu. To var izmantot, lai nozagtu datus vai iegūtu nesankcionētu piekļuvi. Izplūdes funkcija tiek izmantota, lai atrastu ievades, kas var izraisīt bufera pārplūdi.

Izplūdes veidi

Izplūdušos rīkus var klasificēt, pamatojoties gan uz to, kā tiek ģenerēti testa gadījumi, gan pēc tā, cik daudz ir zināms par sistēmu.

Mēms vs. Gudrs

Mēmā izplūšana vienkārši pievieno lielu daudzumu nejaušas ievades. Tas neizvēlas ievades datus, kurus lietojumprogramma, visticamāk, pieņems. Tas atvieglo ieviešanu, neko nezinot par programmatūru; tomēr tas ir arī ļoti neefektīvs, jo lielākā daļa ievades tiks noraidītas.

Viedā izplūdes funkcija ģenerē ievadi, ko lietojumprogramma, visticamāk, pieņems. Tas prasa, lai lietotājs saprastu, kāds ievades formāts ir pieņemams, un pēc tam ģenerē lielu daudzumu ievades šajā formātā. Viedās izplūdes ieviešana prasa vairāk pūļu un produktu zināšanas, taču tā ir ievērojami efektīvāka.

Mutācijas vs. Paaudžu

Mutācijas fuzeri izmanto ievadi, kas iepriekš tika pieņemta, un veic tajā nelielas izmaiņas. Tas ļauj ģenerēt ievades datus, kas, visticamāk, tiks pieņemti, nezinot pieņemto formātu.

Paaudžu fuzeri rada pilnīgi jaunus ievades datus, pamatojoties uz to, kas ir zināms par pieņemto formātu.

Baltā kaste vs. Melnā kaste

Black box fuzing tiek izmantots bez jebkādas informācijas par testējamo lietojumprogrammu. Tas ir mazāk efektīvs nekā baltās kastes izplūdes, taču to var lietot jebkurai lietojumprogrammai bez piekļuves avota kodam. Tas padara to populāru hakeru vidū.

Baltā lodziņa izplūdes funkcija izmanto informāciju par testējamo lietojumprogrammu, lai izveidotu ievades datus, kas, visticamāk, tiks pieņemti un radītu ievainojamības. To galvenokārt izmanto programmatūras izstrādātāji, jo tas ir efektīvāks par melnās kastes izplūdumu.

Fuzzing ir jaudīga programmatūras testēšanas metode, ko izmanto programmatūras izstrādātāji, drošības speciālisti un hakeri. Tā ieviešana prasa minimālu piepūli, un tā spēj atrast ievainojamības, kuras citas programmatūras testēšanas metodes neatrod.

Tas ir īpaši svarīgi no drošības viedokļa, jo to bieži izmanto, lai atklātu nulles dienas ievainojamības. Šīs ievainojamības var atklāt un novērst drošības speciālisti, vai arī tās var atklāt un izmantot hakeri.