Fuzz testēšanas (Fuzzing) apmācība: kas ir, veidi, rīki un amp; Piemērs

Satura rādītājs:

Anonim

Izplūdumu pārbaude

Fuzz Testing jeb Fuzzing ir programmatūras testēšanas paņēmiens, kā programmatūras sistēmā ievietot nederīgus vai nejaušus datus, ko sauc par FUZZ, lai atklātu kodēšanas kļūdas un drošības nepilnības. Fuzz testēšanas mērķis ir datu ievietošana, izmantojot automatizētus vai daļēji automatizētus paņēmienus, un sistēmas pārbaude attiecībā uz dažādiem izņēmumiem, piemēram, sistēmas avāriju vai iebūvēta koda kļūmi utt.

Fuzz testēšanu sākotnēji izstrādāja Barton Miller Viskonsinas universitātē 1989. gadā. Fuzz testēšana jeb fuzzing ir programmatūras testēšanas tehnika, un tā ir drošības testēšanas veids .

Kāpēc veikt Fuzz testēšanu?

  • Parasti Fuzzy testēšana atrod visnopietnāko drošības defektu vai defektu.
  • Fuzz testēšana dod efektīvāku rezultātu, ja to lieto kopā ar melnās kastes testēšanu, beta testēšanu un citām atkļūdošanas metodēm.
  • Fuzz testēšana tiek izmantota programmatūras ievainojamības pārbaudei. Tas ir ļoti rentabls testēšanas paņēmiens.
  • Fuzz testēšana ir viena no melnās kastes testēšanas metodēm. Fuzzings ir viena no izplatītākajām hakeru metodēm, ko izmanto, lai atrastu sistēmas ievainojamību.

Kā veikt Fuzz testēšanu

Neskaidras testēšanas darbības ietver testēšanas pamata darbības-

1. solis. Identificējiet mērķa sistēmu

2. solis. Identificējiet ievadi

3. solis. Ģenerējiet sakausētos datus

4. solis. Veiciet testu, izmantojot neskaidros datus

5. solis) Pārraugiet sistēmas darbību

6. solis) žurnāla defekti

Fuzzers piemēri

  • Uz mutāciju balstīti Fuzzers maina esošos datu paraugus, lai izveidotu jaunus testa datus. Šī ir ļoti vienkārša un vienkārša pieeja, kas sākas ar derīgiem protokola paraugiem un turpina mānīt katru baitu vai failu.

  • Uz paaudzi balstīti Fuzzers definē jaunus datus, pamatojoties uz modeļa ievadi. Tas sāk ģenerēt ievadi no nulles, pamatojoties uz specifikāciju.

  • PROTOKOLU PAMATOJOTĀS kņudas , visveiksmīgākais fuzers ir ar detalizētām zināšanām par testējamo protokola formātu. Izpratne ir atkarīga no specifikācijas. Tas ietver specifikācijas masīva ierakstīšanu rīkā, pēc tam, izmantojot modeļa testēšanas paaudzes tehniku, iziet specifikāciju un pievienojiet datu satura, secības uc pārkāpumus. To sauc arī par sintakses testēšanu, gramatikas testēšanu, izturības pārbaudi, utt. Fuzzer var ģenerēt testa gadījumus no esoša vai arī izmantot derīgas vai nederīgas ievades.

Ir divi ierobežojumi protokolā balstītai saplūšanai:

  1. Testēšanu nevar turpināt, kamēr specifikācija nav pilnīga.
  2. Daudzi noderīgi protokoli ir publicēto protokolu paplašinājums. Ja fuzz testēšana balstās uz publicētajām specifikācijām, jauno protokolu testēšanas pārklājums būs ierobežots.

Vienkāršākais fuzzēšanas paņēmiens ir nejaušas ievades nosūtīšana programmatūrai kā protokola paketes vai kā notikums. Šī nejaušās ievades metode ir ļoti spēcīga, lai atrastu kļūdas daudzās lietojumprogrammās un pakalpojumos. Pieejamas arī citas metodes, un to ir ļoti viegli īstenot. Lai ieviestu šīs metodes, mums vienkārši jāmaina esošie ieguldījumi. Mēs varam mainīt ievadi, tikai apmainot ievades bitus.

Fuzz testēšanas laikā atklāto kļūdu veidi

  • Apgalvojuma kļūmes un atmiņas noplūde šo metodiku plaši izmanto lielām lietojumprogrammām, kur kļūdas ietekmē atmiņas drošību, kas ir nopietna ievainojamība.

  • Nepareiza ievade

    Fuzz testēšanā fuzzers tiek izmantots, lai ģenerētu nederīgu ievadi, ko izmanto kļūdu apstrādes rutīnas testēšanai, un tas ir svarīgi programmatūrai, kas nekontrolē tās ievadi. Vienkāršu saplūšanu var saukt par negatīvu testu automatizācijas veidu.

  • Pareizības kļūdas

    Fuzzingu var izmantot arī, lai noteiktu dažus "pareizības" kļūdu veidus. Piemēram, bojāta datu bāze, slikti meklēšanas rezultāti utt.

    Fuzz testēšanas rīki

    Tīmekļa drošībā izmantotos rīkus var plaši izmantot fuzz testēšanā, piemēram, Burp Suite, Peach Fuzzer utt.

  • Persiku fuzers

    Peach Fuzzer nodrošina stabilāku un drošāku pārklājumu nekā skeneris. Citi testēšanas rīki var meklēt tikai zināmus pavedienus, savukārt Peach Fuzzer ļauj lietotājiem atrast zināmus un nezināmus pavedienus.

  • Spike Proxy

    Tas ir profesionālas klases rīks, kas meklē lietojumprogrammu līmeņa vājās vietas tīmekļa lietojumprogrammās. SPIKE Proxy aptver pamatus, piemēram, SQL Injection un starpvietu skriptu izveidi, taču tā ir pilnīgi atvērta Python infrastruktūra. SPIKE Proxy ir pieejams operētājsistēmām Linux un Windows.

  • Webscarab

    Webscarab ir rakstīts Java valodā, tādējādi pārnēsājams daudzās platformās. Lietojumprogrammas analizēšanai tiek izmantots Webscarab ietvars, kas sazinās, izmantojot HTTP un HTTPS protokolus.

    Piem .: Webscarab darbojas kā pārtverošs starpniekserveris, tas ļauj operatoram pārskatīt un modificēt pārlūkprogrammas izveidoto pieprasījumu, pirms serveris tos saņem. Un ļaujiet pārskatīt un atjaunināt servera ģenerēto atbildi, pirms tā tiek saņemta pārlūkprogrammā. Tādā veidā, ja tīmekļa skarabejs atrod kādu nepilnību, tas izveidos ziņoto problēmu sarakstu.

  • OWASP WSFuzzer

    WSFuzzer ir GPL'd programma, kas rakstīta Python. GPL'd programma, kuras mērķis pašlaik ir Web Services. Pašreizējā OWASPWSFuzzer versijā HTTP mērķis ir SOAP pakalpojumi.

Fuzz testēšanas priekšrocības

  • Fuzz testēšana uzlabo programmatūras drošības testēšanu.
  • Kļūdas, kas konstatētas satricinājumā, dažreiz ir smagas, un lielāko daļu laika hakeri izmanto, ieskaitot avārijas, atmiņas noplūdi, neapstrādātus izņēmumus utt.
  • Ja kādu no kļūdām laika un resursu ierobežojuma dēļ testētāji nepievērš uzmanību, šīs kļūdas ir atrodamas arī Fuzz testēšanā.

Fuzz testēšanas trūkumi

  • Tikai ar Fuzz testēšanu nevar iegūt pilnīgu priekšstatu par vispārējiem drošības apdraudējumiem vai kļūdām.
  • Fuzz testēšana ir mazāk efektīva, lai risinātu drošības draudus, kas neizraisa programmas avārijas, piemēram, dažus vīrusus, tārpus, Trojas zirgus utt.
  • Fuzz testēšana var atklāt tikai vienkāršas kļūdas vai draudus.
  • Lai veiktu efektīvi, tas prasīs ievērojamu laiku.
  • Robežvērtības nosacījuma iestatīšana ar nejaušām ieejām ir ļoti problemātiska, taču tagad, izmantojot deterministiskos algoritmus, kuru pamatā ir lietotāju ievadīti dati, lielākā daļa testētāju atrisina šo problēmu.

Kopsavilkums:

Programmatūras inženierijā Fuzz testēšana parāda kļūdu klātbūtni lietojumprogrammā. Fuzzing nevar garantēt kļūdu pilnīgu atklāšanu lietojumprogrammā. Bet, izmantojot Fuzz tehniku, tas nodrošina lietojumprogrammas izturību un drošību, jo šī metode palīdz atklāt lielāko daļu izplatīto ievainojamību.

Šo rakstu ir veidojusi Priyanka Kothe