Ce este Fuzz Testing?

Testarea Fuzz este considerată a fi tipul de testare în care tehnicile de testare automatizate sau semiautomatizate sunt necesare pentru a afla erori la codare, precum și lacune în securitate, fie în software, fie în sistemele de operare, prin furnizarea datelor aleatorii. la sistem. Aceste date aleatorii se numesc FUZZ. La urma urmei, acest lucru are loc, sistemul este verificat pentru diferite tipuri de excepții, cum ar fi fie sistemul prăbușit sau chiar codul încorporat este eșuat și multe altele. Acest lucru a fost inițial dezvoltat de cineva numit Barton Miller, care era de la Universitatea din Wisconsin. Este, de asemenea, numit fuzzing este considerat a fi tipul de testare de securitate.

De ce avem nevoie de testare fuzz?

  • Adesea, testarea Fuzz are capacitatea de a descoperi cele mai grave defecțiuni de securitate din sistem.
  • Oferă rezultate mult mai eficiente atunci când îl utilizăm împreună cu Black Box Testing, Beta Testing sau diferite metode de depanare.
  • De asemenea, este necesar să verificați vulnerabilitatea software-ului. Este, de asemenea, o tehnică de testare eficientă din punct de vedere al costurilor.
  • Este considerată o tehnică de testare a cutiei negre. Este, de asemenea, unul dintre cei mai folosiți hackeri de metodă care descoperă vulnerabilitatea sistemului.

Cum se realizează Testarea Fuzzy?

Pașii pentru testarea fuzzy includ etapele de testare de bază-

Pasul 1 : Recunoașterea sistemului țintă.

Pasul 2 : Recunoașterea intrărilor.

Pasul 3 : Generare de date confuzate.

Pasul 4 : Testare execuție folosind date confuze.

Pasul 5 : Monitorizarea comportamentului sistemului.

Pasul 6 : înregistrarea defectelor.

Exemple de Fuzzers

Există mai multe fuzzers ca mai jos:

  • Funcții bazate pe mutații: aceste fuzzere schimbă probele de date care există pentru a face date de testare noi. Aceasta este destul de ușoară, precum și metoda directă, începe cu un protocol rezonabil și continuă să amestece fiecare octet sau chiar ca fișier.
  • Generatoare bazate pe generație: definesc date care sunt noi în funcție de introducerea modelului. Începe generarea de intrare de la zero, în funcție de specificație.
  • Fuzzer pe bază de protocol: Se consideră fuzzer care are cel mai mare succes, care are cunoștințe destul de explicate cu privire la formatul de protocol care trebuie testat. Această înțelegere depinde de specificații. Acesta include scrierea unei serii de specificații în interiorul instrumentului și după aceea se folosește tehnica bazată pe model. Este cunoscut și sub denumirea de testare de sintaxă sau testare gramaticală sau testare de robustete.

Avem două limitări ale acestui fuzzing bazat pe protocol, care este cel de mai jos:

  1. Nu putem continua testarea decât până când specificația este destul de matură.
  2. Există multe protocoale care sunt o extensie a protocoalelor publicate. În cazul în care testarea fuzz se bazează pe aceste specificații, care sunt publicate, atunci acoperirea testelor pentru aceste noi protocoale ar fi limitată.

Există cea mai simplă formă de testare fuzzing care este trimiterea intrării aleatorii în software sub formă de pachete de protocol sau chiar sub formă de eveniment. Acest mod particular de trecere a intrării aleatorii este considerat a fi destul de puternic pentru localizarea erorilor în diverse aplicații, precum și în servicii. Există și alte tehnici care sunt disponibile și sunt destul de ușor de implementat.

Tipuri de erori detectate prin testarea fuzz

  • Scurgeri de memorie și defecțiuni de asertare: această metodă este folosită pe larg în aplicații largi în care bug-urile afectează siguranța memoriei, care este considerată a fi o vulnerabilitate severă.
  • Invalid Input: Fuzzers sunt necesare pentru a genera intrarea nevalidă care este necesară la testarea rutinelor de gestionare a erorilor în testarea fuzz. De asemenea, este destul de necesar pentru software care nu controlează intrarea. Fuzzing-ul este considerat a fi o modalitate de automatizare a testelor negative.
  • Corectitudinea erorilor : Fuzzing-ul este necesar pentru a detecta câteva tipuri de bug-uri de „corectitudine” precum o bază de date coruptă sau rezultatele slabe ale căutării și multe altele.

Instrumente de testare fuzz

Instrumentele care sunt destul de utile în securitatea web pot fi, de asemenea, utilizate în mare măsură pentru testarea fuzz sau fuzzy. De exemplu Fuzzer Peach, Burp Suite etc.

1. Fuzzer Peach

Acest instrument oferă o acoperire mult mai robustă și de securitate în comparație cu scanerul. Dacă vorbim despre alte instrumente de testare, acestea au capacitatea de a căuta doar amenințările cunoscute. Dar Peach Fuzzer îi face pe utilizatori să descopere, precum și amenințări necunoscute.

2. Proxy Spike

Spike este considerat a fi instrumentul de calitate profesională care caută vulnerabilități la nivel de aplicație în diverse aplicații web. SPIKE Proxy are în vedere doar elementele de bază precum SQL Injection sau cross-site scripting. Cu toate acestea, este pe deplin o infrastructură deschisă a Python. Proxy SPIKE este prezent atât pentru Linux, cât și pentru Windows.

avantaje

  • Bug-urile care sunt descoperite în testarea fuzz sunt adesea considerate a fi severe și mai ales sunt utilizate de hackeri care constau în crash-uri, scurgeri de memorie sau o excepție neîntemeiată și multe altele.
  • În cazul în care orice eroare sau eroare nu a reușit să fie descoperită de către testeri din cauza limitării timpului, precum și a resurselor, atunci aceste bug-uri pot fi descoperite în testarea Fuzz.

Dezavantaje

  • Numai singur, testarea fuzz nu are capacitatea de a oferi scenariul general al tuturor amenințărilor la adresa securității.
  • De asemenea, testarea fuzz este considerată a fi foarte eficientă atunci când se confruntă cu bug-uri de securitate care nu provoacă prăbușiri de programe precum viruși, viermi etc.
  • Are capacitatea de a detecta doar amenințări simple.
  • Pentru a oferi o performanță eficientă, este nevoie de timp semnificativ.

Concluzie

Astfel putem trage concluzia că în tehnica software această testare, adică testarea Fuzz demonstrează prezența erorilor în orice aplicație. Această testare nu asigură detectarea erorilor într-o manieră completă în oricare dintre aplicații. Cu toate acestea, dacă folosim această tehnică Fuzz, aceasta garantează că aplicația este destul de robustă, precum și sigură motivul pentru care testarea fuzz ajută destul de mult la expunerea multor vulnerabilități comune.

Articole recomandate

Acesta este un ghid pentru testarea Fuzz. Aici discutăm ce este testarea fuzz? instrumente de testare, avantaje și, respectiv, dezavantaje. Puteți parcurge și alte articole sugerate pentru a afla mai multe -

  1. Testare de referință
  2. Tipuri de testare software
  3. Ce este testarea utilizabilității?
  4. Testare statică