Naon Fuzzing?

Naon fuzzing

Intro: Naon Fuzzing?

Dina 2014, hacker Cina hacked kana Sistem Kaséhatan Komunitas, ranté rumah sakit AS anu untung, sareng maok 4.5 juta data pasien. Peretas ngeksploitasi bug anu disebut Heartbleed anu kapanggih dina perpustakaan kriptografi OpenSSL sababaraha bulan sateuacan hack.

Heartbleed mangrupikeun conto kelas vektor serangan anu ngamungkinkeun panyerang ngaksés targét ku ngirimkeun pamundut anu salah anu cukup valid pikeun lulus pamariksaan awal. Nalika para profesional anu damel dina bagian anu béda tina hiji aplikasi ngalakukeun anu pangsaéna pikeun mastikeun kaamananna, mustahil pikeun mikirkeun sadaya kasus pojok anu tiasa ngarobih aplikasi atanapi ngajantenkeun éta rentan nalika pangwangunan.

Ieu dimana 'fuzzing' asalna di.

Naon Dupi Serangan Fuzzing?

Fuzzing, uji fuzz, atanapi serangan fuzzing, mangrupikeun téknik tés parangkat lunak otomatis anu dianggo pikeun nyayogikeun data acak, teu kaduga, atanapi teu valid (disebut fuzz) kana program. Program ieu diawaskeun pikeun paripolah anu teu biasa atanapi teu kaduga sapertos overflows panyangga, ngadat, leakages memori, benang ngagantung, sareng pelanggaran aksés baca/tulis. Alat fuzzing atawa fuzzer ieu lajeng dipaké pikeun uncover ngabalukarkeun kabiasaan mahiwal.

Fuzzing dumasar kana anggapan yén sakabéh sistem ngandung bug ngantosan kapanggih, sarta bisa dibere cukup waktu jeung sumberdaya pikeun ngalakukeunana. Paling sistem boga parsers pohara alus atawa validasi input nyegah cybercriminals tina ngamangpaatkeun sagala bug hypothetical dina program. Nanging, sakumaha anu didadarkeun di luhur, nyertakeun sadaya kasus pojok nalika pangwangunan sesah.

Fuzzers dianggo dina program anu nyandak input terstruktur atanapi gaduh sababaraha wates kapercayaan. Contona, program nu narima file PDF bakal mibanda sababaraha validasi pikeun mastikeun file ngabogaan extension .pdf na parser pikeun ngolah file PDF.

Fuzzer anu épéktip tiasa ngahasilkeun input anu cukup valid pikeun ngalangkungan wates-wates ieu tapi cukup teu valid pikeun nyababkeun kabiasaan anu teu kaduga langkung tebih ka handap program. Ieu penting sabab ngan ukur tiasa ngalangkungan validasi henteu hartosna seueur upami henteu aya cilaka deui anu disababkeun.

Fuzzers mendakan vektor serangan anu sami sareng sareng kalebet anu sapertos suntikan SQL, skrip lintas situs, buffer overflow, sareng serangan denial-of-service. Sadaya serangan ieu mangrupikeun hasil tina nyoco data anu teu kaduga, teu valid, atanapi acak kana sistem. 

 

Jenis Fuzzers

Fuzzers bisa digolongkeun dumasar kana sababaraha ciri:

  1. Sasaran narajang
  2. Metoda nyieun Fuzz
  3. Kasadaran struktur input
  4. Kasadaran struktur program

1. Sasaran Serangan

Klasifikasi ieu dumasar kana jinis platform anu dianggo ku fuzzer pikeun diuji. Fuzzers biasana dianggo sareng protokol jaringan sareng aplikasi parangkat lunak. Unggal platform ngagaduhan jinis input khusus anu ditampi, sahingga peryogi sababaraha jinis fuzzer.

Contona, nalika nungkulan aplikasi, sagala usaha fuzzing lumangsung dina rupa saluran input aplikasi urang, kayaning antarbeungeut pamaké, terminal baris paréntah, formulir / input téks, sarta unggah file. Janten sadaya input anu dihasilkeun ku fuzzer kedah cocog sareng saluran ieu.

Fuzzers kaayaan protokol komunikasi kudu nungkulan pakét. Fuzzers nargétkeun platform ieu bisa ngahasilkeun pakét palsu, atawa malah meta salaku proxy pikeun ngaropéa pakét disadap tur muterkeun deui.

2. Métode Nyiptakeun Fuzz

Fuzzers ogé bisa digolongkeun dumasar kana kumaha maranéhna nyieun data pikeun fuzz kalawan. Dina sajarahna, fuzzers nyiptakeun fuzz ku ngahasilkeun data acak ti scratch. Ieu kumaha Profesor Barton Miller, anu ngagagas téknik ieu, mimitina ngalakukeunana. Jenis fuzzer ieu disebut a fuzzer dumasar generasi.

Nanging, sanaos sacara téoritis tiasa ngahasilkeun data anu bakal ngalangkungan wates amanah, éta bakal peryogi waktos sareng sumber daya pikeun ngalakukeunana. Ku alatan éta, métode ieu biasana dipaké pikeun sistem kalawan struktur input basajan.

Solusi pikeun masalah ieu nyaéta mutasi data anu dipikanyaho valid pikeun ngahasilkeun data anu cukup valid pikeun ngalangkungan wates amanah, tapi henteu sah pikeun nyababkeun masalah. Hiji conto alus ngeunaan ieu a DNS fuzzer nu nyokot ngaran domain lajeng dibangkitkeun daptar badag tina ngaran domain pikeun ngadeteksi domain berpotensi jahat targeting nu boga domain dieusian.

Pendekatan ieu langkung pinter tibatan anu sateuacana sareng sacara signifikan ngahususkeun kamungkinan permutasi. Fuzzers anu ngagunakeun métode ieu disebut fuzzers dumasar mutasi

Aya metodeu katilu anu langkung anyar anu ngagunakeun algoritma genetik pikeun konvergen kana data fuzz optimal anu diperyogikeun pikeun ngaleungitkeun kerentanan. Gawéna ku terus-terusan ngamurnikeun data fuzz na, merhatikeun kinerja unggal data tés nalika asup kana program. 

Setélan data anu paling awon dipiceun tina kolam renang data, sedengkeun anu pangsaéna dimutasi sareng / atanapi digabungkeun. Generasi anyar data ieu lajeng dipaké pikeun fuzz test deui. fuzzers ieu disebut salaku fuzzers dumasar mutasi évolusionér.

3. Kasadaran Struktur Input

Klasifikasi ieu dumasar kana naha fuzzer sadar tur aktip ngagunakeun struktur input program dina ngahasilkeun data fuzz. A tukang bedog (fuzzer anu henteu sadar kana struktur input program) ngahasilkeun fuzz sacara acak. Ieu tiasa kalebet fuzzers dumasar generasi sareng mutasi. 


Upami fuzzer disayogikeun sareng modél input program, fuzzer teras tiasa nyobian ngahasilkeun atanapi mutasi data supados cocog sareng modél input anu disayogikeun. Pendekatan ieu salajengna ngirangan jumlah sumber daya anu dianggo pikeun ngahasilkeun data anu teu sah. Sapertos fuzzer disebut a pinter fuzzer.

4. Kasadaran Struktur Program

Fuzzers ogé bisa digolongkeun dumasar kana naha maranéhna geus sadar kana workings internal tina program aranjeunna fuzzing, sarta ngagunakeun kasadaran éta pikeun mantuan generasi data fuzz. Nalika fuzzers dianggo pikeun nguji program tanpa ngartos struktur internalna, éta disebut tés kotak hideung. 

Data Fuzz anu dihasilkeun nalika nguji black-box biasana acak iwal fuzzer mangrupa fuzzer dumasar mutasi évolusionér, dimana eta 'diajar' ku ngawas efek fuzzing sarta ngagunakeun éta. inpormasi pikeun nyaring set data fuzz na.

Uji kotak bodas di sisi séjén ngagunakeun modél struktur internal program pikeun ngahasilkeun data fuzz. Pendekatan ieu ngamungkinkeun fuzzer dugi ka lokasi kritis dina program sareng nguji éta. 

Alat Fuzzing populér

Aya loba fuzzing pakakas kaluar aya dipaké ku testers kalam. Sababaraha anu pang populerna nyaéta:

Watesan Of Fuzzing

Sanaos Fuzzing mangrupikeun téknik tés pen anu leres-leres mangpaat, éta sanés tanpa kasalahan. Sababaraha di antarana nyaéta:

  • Butuh waktu rada lila pikeun ngajalankeun.
  • Kacilakaan sareng paripolah anu teu disangka-sangka anu dipendakan nalika nguji kotak hideung tina program tiasa sesah, upami teu mungkin pikeun nganalisis atanapi debug.
  • Nyiptakeun témplat mutasi pikeun fuzzers dumasar-mutasi pinter tiasa nyéépkeun waktos. Sakapeung, éta malah moal mungkin kusabab modél input anu proprietary atanapi teu dipikanyaho.

 

Nanging, éta mangrupikeun alat anu mangpaat sareng dipikabutuh pikeun saha waé anu hoyong mendakan bug sateuacan jalma jahat.

kacindekan

Fuzzing mangrupikeun téknik tés pen anu kuat anu tiasa dianggo pikeun mendakan kerentanan dina parangkat lunak. Aya seueur jinis fuzzer anu béda, sareng fuzzer énggal dikembangkeun unggal waktos. Sanaos fuzzing mangrupikeun alat anu luar biasa mangpaat, éta ngagaduhan watesanana. Salaku conto, fuzzers ngan ukur tiasa mendakan seueur kerentanan sareng aranjeunna tiasa rada intensif sumberdaya. Nanging, upami anjeun hoyong nyobian téknik anu luar biasa ieu pikeun diri anjeun, kami ngagaduhan bebas DNS Fuzzer API nu bisa Anjeun pake dina platform urang. 

Ku kituna naon nu ngantosan? 

Mimitian fuzzing dinten ieu!