Apa iku Fuzzing?

Apa fuzzing

Intro: Apa itu Fuzzing?

Ing 2014, peretas Cina disusupi menyang Sistem Kesehatan Masyarakat, chain rumah sakit AS sing untung, lan nyolong data pasien 4.5 yuta. Peretas ngeksploitasi bug sing diarani Heartbleed sing ditemokake ing perpustakaan kriptografi OpenSSL sawetara wulan sadurunge hack.

Heartbleed minangka conto saka kelas vektor serangan sing ngidini panyerang ngakses target kanthi ngirim panjaluk sing salah sing cukup valid kanggo ngliwati pemeriksaan awal. Nalika profesional sing makarya ing macem-macem bagean saka app nindakake sing paling apik kanggo njamin keamanan sawijining, iku mokal kanggo mikir kabeh kasus sudhut sing bisa break app utawa nggawe ngrugekke sak pembangunan.

Iki ngendi 'fuzzing' mlebu.

Apa Serangan Fuzzing?

Fuzzing, testing fuzz, utawa serangan fuzzing, minangka teknik testing software otomatis sing digunakake kanggo feed data acak, ora dikarepke, utawa ora valid (disebut fuzz) menyang program. Program kasebut dipantau kanggo prilaku sing ora biasa utawa ora dikarepke kayata buffer overflows, crash, kebocoran memori, thread hang, lan pelanggaran akses maca/nulis. Alat fuzzing utawa fuzzer banjur digunakake kanggo nemokake sabab saka prilaku sing ora biasa.

Fuzzing adhedhasar asumsi yen kabeh sistem ngemot bug sing nunggu ditemokake, lan bisa diwenehi wektu lan sumber daya sing cukup kanggo nglakoni. Umume sistem duwe parser sing apik banget utawa nyegah validasi input cybercriminals saka eksploitasi sembarang bug hipotetis ing program. Nanging, kaya sing kasebut ing ndhuwur, nutupi kabeh kasus pojok sajrone pembangunan angel.

Fuzzer digunakake ing program sing njupuk input terstruktur utawa duwe sawetara wates kepercayaan. Contone, program sing nampa file PDF bakal duwe sawetara validasi kanggo mesthekake file duwe extension .pdf lan parser kanggo proses file PDF.

Fuzzer sing efektif bisa ngasilake input sing cukup sah kanggo ngliwati wates-wates kasebut nanging cukup ora bener kanggo nyebabake prilaku sing ora dikarepke luwih adoh saka program kasebut. Iki penting amarga mung bisa ngliwati validasi ora ateges yen ora ana gawe piala maneh.

Fuzzers nemokake vektor serangan sing meh padha karo lan kalebu sing kaya injeksi SQL, skrip lintas situs, buffer overflow, lan serangan penolakan layanan. Kabeh serangan kasebut minangka akibat saka data sing ora dikarepke, ora bener, utawa acak menyang sistem. 

 

Jinis Fuzzers

Fuzzers bisa diklasifikasikaké adhedhasar sawetara ciri:

  1. Serangan target
  2. Metode nggawe fuzz
  3. Kesadaran struktur input
  4. Kesadaran struktur program

1. Sasaran Serangan

Klasifikasi iki adhedhasar jinis platform sing digunakake fuzzer kanggo nyoba. Fuzzers umume digunakake karo protokol jaringan lan aplikasi piranti lunak. Saben platform duwe jinis input tartamtu sing ditampa, lan mbutuhake macem-macem jinis fuzzer.

Contone, nalika nangani aplikasi, kabeh upaya sing ora jelas kedadeyan ing macem-macem saluran input aplikasi, kayata antarmuka panganggo, terminal baris perintah, input formulir/teks, lan unggahan file. Dadi kabeh input sing digawe fuzzer kudu cocog karo saluran kasebut.

Fuzzer sing ngurusi protokol komunikasi kudu nangani paket. Fuzzers sing nargetake platform iki bisa ngasilake paket palsu, utawa malah dadi proxy kanggo ngowahi paket sing dicegat lan muter maneh.

2. Cara Nggawe Fuzz

Fuzzers uga bisa diklasifikasikake adhedhasar cara nggawe data kanggo fuzz. Secara historis, fuzzers nggawe fuzz kanthi ngasilake data acak saka awal. Iki minangka cara Profesor Barton Miller, pamula teknik iki, nindakake ing wiwitan. Jinis fuzzer iki diarani a fuzzer basis generasi.

Nanging, nalika bisa ngasilake data kanthi teoritis sing bakal ngliwati wates kepercayaan, butuh wektu lan sumber daya sing akeh kanggo nindakake. Mulane cara iki biasane digunakake kanggo sistem kanthi struktur input sing prasaja.

Solusi kanggo masalah iki yaiku mutasi data sing dikawruhi sah kanggo ngasilake data sing cukup valid kanggo ngliwati wates kepercayaan, nanging cukup ora sah kanggo nyebabake masalah. Tuladhane kang becik yaiku a DNS fuzzer sing njupuk jeneng domain banjur nggawe dhaptar gedhe saka jeneng domain kanggo ndeteksi domain duweni potensi angkoro nargetake pemilik saka domain kasebut.

Pendekatan iki luwih pinter tinimbang sing sadurunge lan sacara signifikan nyuda permutasi sing bisa ditindakake. Fuzzers sing nggunakake cara iki disebut fuzzers adhedhasar mutasi

Ana cara kaping telu sing luwih anyar sing nggunakake algoritma genetika kanggo nggabungake data fuzz optimal sing dibutuhake kanggo ngilangi kerentanan. Kerjane kanthi terus-terusan nyaring data fuzz, kanthi nimbang kinerja saben data tes nalika diisi menyang program. 

Set data sing paling awon dicopot saka blumbang data, dene sing paling apik dimutasi lan / utawa digabung. Data generasi anyar banjur digunakake kanggo uji fuzz maneh. Fuzzers iki diarani minangka fuzzers adhedhasar mutasi evolusi.

3. Kesadaran Struktur Input

Klasifikasi iki adhedhasar apa fuzzer ngerti lan aktif nggunakake struktur input program kanggo ngasilake data fuzz. A bodho fuzzer (fuzzer sing ora ngerti struktur input program) ngasilake fuzz kanthi cara sing biasane acak. Iki bisa uga kalebu fuzzers adhedhasar generasi lan mutasi. 


Yen fuzzer diwenehake karo model input program, fuzzer banjur bisa nyoba ngasilake utawa ngowahi data supaya cocog karo model input sing diwenehake. Pendekatan iki luwih nyuda jumlah sumber daya sing digunakake kanggo ngasilake data sing ora bener. Ukara kang kaya mangkono iku diarani a pinter fuzzer.

4. Kesadaran Struktur Program

Fuzzers uga bisa digolongake adhedhasar apa dheweke ngerti cara kerja internal program sing disalahake, lan nggunakake kesadaran kasebut kanggo mbantu nggawe data fuzz. Nalika fuzzers digunakake kanggo nyoba program tanpa mangerteni struktur internal, iku disebut testing kothak ireng. 

Data fuzz sing diasilake sajrone tes kothak ireng biasane acak kajaba fuzzer minangka fuzzer adhedhasar mutasi evolusi, ing ngendi dheweke 'sinau' kanthi ngawasi efek fuzzing lan nggunakake Alexa kanggo nyaring set data fuzz sawijining.

Tes kothak putih ing sisih liya nggunakake model struktur internal program kanggo ngasilake data fuzz. Pendekatan iki ngidini fuzzer menyang lokasi kritis ing program lan nyoba. 

Alat Fuzzing populer

Ana akeh fuzzing pribadi metu ana digunakake dening pen tester. Sawetara sing paling populer yaiku:

Watesan Fuzzing

Nalika Fuzzing minangka teknik tes pen sing migunani, nanging ora ana kesalahane. Sawetara iki yaiku:

  • Mbutuhake wektu sing cukup suwe kanggo mlaku.
  • Kacilakan lan tindak tanduk liyane sing ora dikarepke sing ditemokake sajrone testing kothak ireng program bisa dadi angel, yen ora mokal kanggo nganalisa utawa debug.
  • Nggawe cithakan mutasi kanggo fuzzers adhedhasar mutasi pinter bisa dadi akeh wektu. Kadhangkala, bisa uga ora bisa ditindakake amarga model input dadi kepemilikan utawa ora dingerteni.

 

Nanging, iku alat sing cukup migunani lan perlu kanggo sapa wae sing pengin nemokake kewan omo sadurunge wong ala.

kesimpulan

Fuzzing minangka teknik tes pen sing kuat sing bisa digunakake kanggo nemokake kerentanan ing piranti lunak. Ana macem-macem jinis fuzzer, lan fuzzer anyar dikembangake kabeh wektu. Nalika fuzzing minangka alat sing migunani banget, nanging duwe watesan. Contone, fuzzers mung bisa nemokake akeh kerentanan lan bisa uga cukup intensif sumber daya. Nanging, yen sampeyan pengin nyoba metu technique apik tenan iki kanggo dhewe, kita duwe free DNS Fuzzer API sing bisa digunakake ing platform kita. 

Dadi apa sing nunggu? 

Mulai fuzzing dina iki!

Google lan Mitos Incognito

Google lan Mitos Incognito

Google lan The Incognito Myth Ing tanggal 1 April 2024, Google sarujuk kanggo ngrampungake tuntutan hukum kanthi ngrusak milyaran cathetan data sing diklumpukake saka mode Incognito.

Read More »