Indlela yokusebenzisa i-AFL ne-AFL++ ukuze uthuthukise ama-binary ngendlela ephumelelayo

Isibuyekezo sokugcina: 28/02/2026
Author: Isaka
  • Ukuhlolwa kwe-Fuzz kuzenzakalelayo ukuthumela okokufaka okungalungile ukuze kutholakale amaphutha okuphepha kusofthiwe nezinhlelo.
  • I-AFL ne-AFL++ zingama-fuzzers ahlakaniphile asebenzisa ama-compiler anamathuluzi ukuze aziqondise ngokumbozwa nokuthola izindlela ezintsha zokwenza.
  • Ukuhlaziya ukuphahlazeka ngamathuluzi afana ne-AFLTriage kanye ne-GDB kukuvumela ukuthi uhlole ukuxhashazwa kobuthakathaka obufana ne-Integer Underflow.
  • Ukuhlanganisa ukugeleza komoya emjikelezweni wokuthuthukiswa kuthuthukisa ukuqina, kusiza ukuhlangabezana nezindinganiso zokuphepha, futhi kunciphisa ingozi yezehlakalo ezibucayi.

Ukuxubana ne-AFL ku-binary

Uma unesithakazelo ku- Ukuphepha kwe-inthanethi kanye nokuxhashazwa okugxile ku-binaryNgokushesha noma kamuva uzohlangana nokungakhululeki, ikakhulukazi i-AFL ne-AFL++. Asikhulumi ngethuluzi lelebhu elisebenzisa imfundiso, kodwa into esetshenziswa nsuku zonke ukuthola amaphutha angempela ezinhlelweni ezaziwayo, njengoba kwenzekile ngobuthakathaka ku... izinhlelo zokusebenza ezidumile njenge-7-Zip.

Emigqeni elandelayo sizobona, ngokuningiliziwe nangendlela enobungane, Indlela yokusebenzisa i-AFL ne-AFL++ ukuze uguqule ama-binary abe yi-fuzzSizochaza kahle ukuthi ukuhlolwa kwe-fuzz kuyini, kungani kunamandla kangaka maqondana nokuphepha, nokuthi singakuhlanganisa kanjani nomsebenzi wesimanje wokuthuthukiswa. Sizohlola futhi icala lobuthakathaka bomhlaba wangempela (i-Integer Underflow evumela ukusetshenziswa kwekhodi ekude) futhi sibuyekeze amathuluzi ahambisanayo afana nalawa I-GDB enezandiso, i-AFLTriage kanye namamojula okusebenza.

Yini i-AFL/AFL++ futhi kungani ibhekwa njenge-smart fuzzers?

Ithuluzi le-AFL lokuhlola i-fuzz

I-AFL (i-American Fuzzy Lop) kanye nokuguquka kwayo i-AFL++ Lawa amathuluzi okuvula avulekile aklanyelwe ukuhlola ngokuzenzakalelayo ama-binary, efuna amaphutha afana nokugcwala ngokweqile, amaphutha enkumbulo, noma ukuziphatha okungalindelekile okuholela ekushayweni noma ngisho nasekuntulekeni okungasetshenziswa.

Ubuhle be-AFL abukona nje ukuthumela idatha engahleliwe, kodwa kunalokho i-fuzzer ehlakaniphile noma i-fuzzer eqondiswa ukumbozwaKusukela kusibonelo esisodwa noma ngaphezulu esivumelekile (okuthiwa amacala wokuhlola), i-AFL ihlala ikhiqiza ukuhlukahluka futhi, ngenxa yezinsimbi zohlelo, ithola ukuthi ukuguqulwa okusha kubangela ukuthi i-binary ithathe indlela ehlukile yokusebenza.

Ukuze kufezwe lokhu kusetshenziswa kwezinsimbi, i-AFL inezihlanganisi zayo, njenge afl-gcc kanye ne-afl-g++Lezi zifaka "ama-hook" amancane kukhodi ngesikhathi sokuhlanganiswa. Lezi zi-hook zazisa i-AFL ukuthi kutholakale okuthile okufakiwe imizila emisha ekuhambeni kohleloLokhu kukuvumela ukuthi ugxile ekuguqulweni kwezakhi zofuzo okuhlinzeka ngokumbozwa okwengeziwe futhi ungachithi isikhathi ngedatha engashintshi lutho.

Le ndlela yenza i-AFL ibe yinto efana "ne-dirb of binary": ithuluzi elaziwayo, okulula ukulisebenzisa uma usuqonda ukugeleza okuyisisekelo, futhi elinamandla okuthola amaphutha amakhulu ezinhlelweni zokukhiqizanoma ngabe kukhona ama-fuzzers athuthukile noma akhethekile.

Isingeniso sokuhlolwa kwe-fuzz kanye nendima yaso ekuphepheni kwe-cyber

Ukuhlola i-fuzz, noma ukumane u-fuzzing, kuyindlela yokwenza ukuhlolwa kokuphepha okuzenzakalelayo kanye nokuqinaUmqondo uwukuthumela uhlelo lokusebenza uchungechunge lwedatha engahlelekile, engahleliwe, noma engavamile, ngenhloso yokubona ukuthi uhlelo luyaphuka, luyaphahlazeka, noma luziphatha ngendlela engalindelekile.

Uma isofthiwe iphazamiseka, inhloso ukuthola amaphutha anjengokuthi ukugcwala kwebhafa, ukwehluleka kokuqinisekisa kokufaka, izinkinga zokuphatha imemori, noma izimo zomjahoAmaphutha amaningi alawa angaholela ekusetshenzisweni kwekhodi ngokungahleliwe, ukuvuza kolwazi, noma ukwenqatshwa kwensizakalo.

Ekuhambeni komsebenzi ojwayelekile, ukuhlolwa kwe-fuzz kulandela izigaba ezintathu ezicacile: okokuqala, isethi yedatha yokuhlola ikhiqizwa (kungakhathaliseki ukuthi ingahleliwe ngokuphelele, ikhiqizwa ngokulandela ifomethi ethile, noma ngokuguqula okokufaka okusebenzayo); bese... sebenzisa i-binary ngaphansi kokuhlolwa ngenkathi uqashwe Ukuziphatha kwayo kuyaqashwa; futhi ekugcineni, ukuphahlazeka noma ukuziphatha okungavamile kuyaqoshwa futhi kuhlaziywe ukuze abathuthukisi bakwazi ukuphenya umthombo wenkinga.

Kunezindlela ezahlukene zokuphambanisa. Amanye amathuluzi agxile ku i-fuzz yesizukulwaneukudala okufakiwe okuhlonipha ifomethi echazwe kahle (isibonelo, isakhiwo sefayela noma iphrothokholi yenethiwekhi); okunye kusekelwe ku ukuguqulwa kokufakwayo okusebenzayoLena yindlela lapho i-AFL ne-AFL++ ziphumelela khona. Kukhona futhi izindlela eziningi ezingahleliwe kanye nezinye ezithembele olwazini oluthile lwesistimu evivinywayo ukuze ziqondise amaphuzu ayo abuthakathaka kakhulu.

Ekuphepheni kwe-inthanethi kwanamuhla, ukuhlolwa kwe-fuzz kuyinto ebalulekile: kusiza ukuthola ubuthakathaka ku- ukwenza izinto zibe lula, ngaphambi kokuba isofthiwe iqale ukukhiqizwafuthi kunegalelo ekuhambisaneni nemithethonqubo nezindinganiso ezifana ne-ISO 27001 noma izidingo zokuvikelwa kwedatha. Ngaphezu kwalokho, kunciphisa ingozi yedumela elizobangelwa ubuthakathaka obukhulu obungasetshenziswa buwela ezandleni zabahlaseli.

Icala langempela: I-Integer Underflow kanye nokuba sengozini kwe-RCE ku-decompressor

Ukuze uqonde ukubaluleka kwangempela kwe-AFL kanye nokungakhululeki, kuyasiza kakhulu ukubheka ubuthakathaka obuthile obusekelwe ku- I-Integer Underflow ngaphakathi kwe-decompressor yefayela ethandwa kakhuluLeli iphutha lokusebenzisa ikhodi ekude (RCE) eliqala lapho kucutshungulwa amafayela acindezelwe nge-algorithm ye-Zstandard, enamaphuzu aphezulu e-CVSS, nakuba engekho aphezulu, ngoba nje lidinga umongo othize (isibonelo, ukuthi amafayela athile ayacutshungulwa).

Ukugeleza Okungaphansi Kwenani Eliphelele kwenzeka lapho i-integer variable enemingcele ephansi echazwe kahle Isetshenziswa emisebenzini yokususa kuze kube yilapho inani layo eliphansi selifinyelelwe.Njengoba izinhlobo eziningi ze-integer zingavumeli amanani angemihle, lapho "engena ngaphansi", esikhundleni sokuthola inombolo engaphansi kuka-zero, kwenzeka ukugxuma okuya enanini eliphezulu kakhulu lobubanzi, ngenxa yokuthi lawo manani amelelwe kanjani ngaphakathi.

  Sayina izikripthi bese uqinisa i-ExecutionPolicy nge-AppLocker kanye ne-WDAC

Cabanga nge-integer variable, ngokombono, okungafanele neze ibe negative. Uma uqhubeka nokususa i-constant uze ufike ku-0 bese uqhubeka nokususa, Ngeke uthole u--1, -2, njll.Esikhundleni salokho, inani lizophenduka libe yinombolo enkulu ekugcineni okuphezulu kobubanzi obuvunyelwe. Lesi sibalo esingenangqondo, uma sisetshenziswa njengenkomba noma usayizi ekusebenzeni kwememori, singabangela ukufunda noma ukubhala ngaphandle kwemingcele ehlosiwe.

Inkinga iba bucayi uma leyo nguquko yenani eliphelele elingadlula lisetshenziswa ukuphatha i-buffer noma ukubala ama-offsetIsibonelo esivamile esingamanga singaba ukusebenzisa i-variable elawulwa ngumsebenzisi ngokungaqondile njenge-offset kumsebenzi wohlobo lwe-memcpy, ku-loop enciphisa i-constant ku-iteration ngayinye kuze kube yilapho kuthiwa ifinyelela ku-zero noma inombolo engeyona eqondile.

Esimweni esinjalo, uma inani lokuqala lingazange likwazi "ukwanelisa" isimo sokuphuma ngokuhlanzekile, ukugeleza kwamanzi ekugcineni kuzokwenza inombolo ibe nkulu kakhulu, iluphu izoqhubeka isebenza, kanye ne- ukonakala okukhulu kwenkumbuloLokhu kuholela ekuphahlazekeni futhi, ngomsebenzi owanele wokuxhaphaza, kungenzeka ukuthi kusetshenziswe ikhodi engahleliwe.

Indlela i-AFL esiza ngayo ukuthola lezi zinhlobo zobuthakathaka

Uma umqondo we-Integer Underflow usuqondwa, kuba sobala ukuthi kungani i-AFL ne-AFL++ ziwusizo kangaka: kusukela ku- ifayela elilodwa noma ambalwa okufaka asebenza kahle ngokupheleleI-fuzzer ingakhiqiza amashumi ezinkulungwane zezinguquko, kuze kube yilapho ifika kuleyo ebangela i-bug ethile endleleni yokunciphisa ukucindezeleka ethintekile.

Ngesikhathi sokufuzzing, i-AFL iqapha i-binary esetshenziswayo ukuze inqume ukuthi okokufaka kubangela ukuthi indlela ehlukile yokulawula ukugeleza isetshenziswe nini. Isikhathi ngasinye lapho ithola indlela entsha, Maka lokho okufakiwe njengokuthakazelisayo futhi igcina njengesisekelo sokuguqulwa kwesikhathi esizayo. Ngale ndlela, akuzona nje kuphela izindlela ezivamile zokwenza ezihlolwayo, kodwa futhi nalezo zinhlanganisela zedatha ezisebenzisa imizila yekhodi engavamile, njengenqubo yokususa ukucindezela ngamapharamitha angajwayelekile.

Endabeni ye-Integer Underflow, i-AFL ingathola isampula ebangela ukuthi i-variable ehilelekile ingafinyeleli inani elilindelekile lokukhipha ku-loop. Umphumela uba ukuphahlazeka okubonakalayo, okuzogcinwa kufolda yemiphumela ye-AFL ehambisanayo, ilungele ukuhlaziywa okwengeziwe.

Ngemva kwemizuzu embalwa noma amahora okubulawa, kuvamile ukuthi i-AFL ibonise ukuphahlazeka kokuqala okufaneleAkuzona zonke iziphazamisi ozitholayo ezizosetshenziswa, kodwa ziyisibonakaliso esicacile sokuthi okuthile ekuphathweni kwememori, ukuqinisekiswa kokufakwayo, noma i-logic yangaphakathi ye-binary akusebenzi njengoba kufanele.

Yilapho-ke amathuluzi okusekela afana ne-AFLTriage noma i-debugger efana ne-GDB eqala ukusebenza khona, ekuvumela ukuthi ujule kakhulu enhlekeleleni, ubheke isimo samarejista nememori, futhi uhlole ukuthi ukwehluleka kungasetshenziswa ngokuthembekile noma uma kumane nje kungasetshenziswa kangako ngokombono womhlaseli.

Ukufakwa okuyisisekelo kwe-AFL / AFL++ kanye nendawo yokuhlaziya

Ukusetha indawo encane kakhulu yokusebenzisa i-AFL ohlelweni olujwayelekile lwe-Linux kulula kakhulu. Ezindaweni eziningi zokusabalalisa, kwanele ukufaka iphakheji ehambisana nama-compilers afakwe izinsimbi, isibonelo, usebenzisa umyalo ofana faka i-afl-g++ noma iphakheji efanayo ye-AFL++ Letha yonke i-suite.

Ukwenza kanjalo kufaka amathuluzi omabili ashisayo (njenge- i-afl-fuzz) njengezihlanganisi ezikhethekile (afl-gcc, afl-g++, kanye nezinhlobo zazo zesimanje ku-AFL++). Lawa mahlanganisi yiwo ozowasebenzisa uma ufuna ukuhlanganisa kabusha ithagethi yakho ngezinsimbi, okubalulekile ukuze uthole okuningi ekuhlanganiseni okuqondiswa ukumbozwa.

Ngaphandle kwe-fuzzer uqobo, indawo enhle yokulungisa amaphutha iyadingeka cishe. I-GDB enwetshiwe ene- ama-plugin afana ne-PEDA noma i-GEF Kwenza impilo ibe lula kakhulu ngenxa yemiyalo eyengeziwe, ukufometha imemori okulula, ukuboniswa kwe-stack, kanye nezinqamuleli zokuhlola amarejista namamephu ememori.

Uma ungenayo i-GDB kakade, ungayifaka usebenzisa umphathi wephakheji yokusabalalisa kwakho. Bese, mane uhlanganise i-plugin oyikhethile (isibonelo, ngokulanda i-GEF noma i-PEDA kusuka ezindaweni zabo zokugcina bese ubafaka kufayela lakho lokucushwa kwe-GDB, noma ngokusebenzisa umyalo othi `umthombo` ngaphakathi kwe-debugger uqobo).

Ukuba nale "GDB kuma-steroids" kuzokuvumela ukuthi uhlaziye ama-binary afakwe izinsimbi awela ngaphansi kokushisa, landa okokufaka okubangela ukuphahlazeka bese ulandela isinyathelo ngesinyathelo okwenzekayo ekuqalisweni ngesikhathi sokwehluleka.

Hlanganisa i-target binary ne-AFL ukuze uguqule

Uma usulungile nge-AFL noma i-AFL++, isinyathelo esilandelayo sokuthola i-fuzzing enkulu yilesi hlanganisa ithagethi ngama-compilers e-AFLfuthi ukwenza lokho ngezinketho ezifanele zokwenza lula kokubili ukuhlaziya kanye nokuxhashazwa okungenzeka, uma inhloso yalo msebenzi kuwucwaningo oluhlaselayo.

  I-SmartScreen ivimba izinhlelo zokusebenza ezisemthethweni: kwenzekani nokuthi yini okufanele yenziwe

Kumaphrojekthi amakhulu, njenge-decompressor noma i-archive utility suite, kungumqondo omuhle ukuvumela izimpawu zokulungisa amaphutha (inketho DEBUG noma amafulegi afana ne--gfuthi kuncishiswe ukulungiswa (isibonelo, ukusebenzisa i--O0 esikhundleni se--O2). Lokhu kusiza kakhulu ekuqondeni ukuthi kwenzekani kukhodi yomthombo maqondana nokuphahlazeka okubonwe.

Ngokuvamile kuzodingeka uthole ifayela le-makefile noma ifayela lokwakha elifanele futhi shintsha imigqa lapho kuchazwa khona amafulegi okuhlanganisaLokhu kungafaka phakathi ukusebenzisa i-DEBUG variable, ukuphoqa izinga elithile lokwenza ngcono, futhi, okubaluleke kakhulu, ukufaka esikhundleni i-CC ne-CXX nge-afl-gcc kanye ne-afl-g++ (noma amathuluzi afanayo e-AFL++).

Isibonelo, ungaqala ukwakha ngento efana ne-CC=afl-gcc kanye ne-CXX=afl-g++ kanye nefayela le-makefile elifanele. Umphumela uzoba yi-binary efakwe izinsimbi ehlanganisa ama-hook adingekayo ukuze i-AFL ikwazi ukukala ukumbozwa kulo lonke ukwenziwa.

Uma ukuhlanganiswa sekuqediwe, kungumqondo omuhle ukuhlola ukuthi i-binary ephumayo empeleni inezimpawu zokulungisa amaphutha kanye nokwakhiwa okulungile, usebenzisa umyalo ofana ifayela mayelana ne-executableLokhu kuqinisekisa ukuthi awuphumi ngokungazi nokuthi ungalungisa kalula noma yikuphi ukuphahlazeka okuvelayo.

Ukulungiswa kwamacala okuhlolwa kanye nokuqaliswa kwe-AFL

Ngaphambi kokuqalisa i-AFL ngokumelene ne-binary yakho, udinga ukulungiselela isethi ye- okufakiwe okuncane okuvumelekileUma uhlola i-decompressor ehluleka ngamafayela acindezelwe kusetshenziswa i-algorithm ethile, kuzodingeka udale okungenani ifayela elilodwa elakhiwe kahle elisebenzisa leyo ndlela yokucindezela.

Umkhuba ojwayelekile ukudala uhlu lwemibhalo, isibonelo olubizwa ngokuthi ama-testcases, bese ugcina isampula eyodwa noma ngaphezulu ezisebenzayo lapho. Lokhu kuzosebenza njengendawo yokuqala ye-AFL. kudala izinguquko ezinolaka ngokwengeziweuzama ukuthola izindlela ezintsha zokwenza izinto, futhi ekugcineni, uyaphahlazeka.

Umyalo ojwayelekile wokuqala i-AFL ubukeka kanje: chaza igama leseshini noma lokuvumelanisa, ifolda yokufaka enezimo zokuhlola, indlela yokuphuma lapho imiphumela izogcinwa khona, kanye namapharamitha engeziwe njenge-timeout yokugwema ukubhajwa ezingodweni ezingenamkhawulo.

Umugqa womyalo uphinde ucacise ukuthi uhlelo oluqondiwe luqhutshwa kanjani kusetshenziswa ibhodi lamaphuzu @@okuyinto i-AFL ezoyishintsha ngokuzenzakalelayo ngendlela yecala ngalinye lokuhlola eliyikhiqizayo. Ngakho-ke ungacacisa into efana ./izimpikiswano ezimbili @@ futhi i-AFL izoba nesibopho sokuqalisa izinkulungwane zezikhathi ezisebenzisekayo ngamafayela ahlukene.

Kubalulekile ukwazi ukuthi i-AFL ingase iqale ikhale ngokucushwa kwesistimu (ngenxa yemikhawulo yezinsizakusebenza, ama-core dumps, njll.). Kuleso simo, ngokuvamile kuba nesikripthi somsizi noma ithuluzi elilungisa amapharamitha e-kernel kanye neseshini ukuze kulungiselelwe indawo efiphazayo, okufanele isetshenziswe ngezimvume ezifanele ngaphambi kokuphinda ukuhlolwa.

Ukuhlaziywa kokuphahlazeka nge-AFLTriage kanye ne-GDB

Ngemva kwesikhathi sokungakhululeki, i-AFL izogcwalisa kancane kancane ifolda yokukhipha ngezinto ezintsha ezithakazelisayo futhi, ngaphezu kwakho konke, nge amafayela abangele ukuphahlazekaLokhu kuvame ukugcinwa kufolda ethile engaphansi (isibonelo, ukuphahlazeka ngaphakathi kwefolda yeseshini).

Ukuze ugweme ukuhlanya ukubuyekeza okufakwayo ngakunye ngakunye, kunezindlela ezifana ne-AFLTriage ezikuvumela ukuthi Sebenzisa ngokuzenzakalela i-binary ngokumelene nefayela ngalinye lokuphahlazeka futhi ukhiqize imibiko ehlelekile enemininingwane mayelana nokuthi ukwehluleka kwenzeke kuphi nokuthi kanjani.

Uma uqalisa i-AFLTriage, ucacisa isiqondisi sokufaka (ifolda yokuphahlazeka), isiqondisi sokukhipha ukuze ulondoloze imibiko, kanye nomyalo wokusebenzisa i-binary usebenzisa i-@. Ithuluzi lizohlaziya icala ngalinye futhi Izokhiqiza amafayela ombhalo anolwazi oluthakazelisayo. kumhlaziyi.

Okuqukethwe okuvamile kwale mibiko kufaka phakathi uhlobo lwesignali ebangele ukuphahlazeka, indlela lapho kwehluleke khona, umkhondo we-stack oyisisekelo, kanye, ezimweni eziningi, umsebenzi noma i-macro lapho ikhodi iphukile khona (isibonelo, umsebenzi othile wokukopisha, i-compression loop, noma i-COPY_CHUNKS macro esusa osayizi ku-iteration ngayinye).

Uma ukuphahlazeka okuthakazelisayo sekutholiwe, isinyathelo esilandelayo ukukuphinda ku-GDB. Ukuze wenze lokhu, i-debugger iqaliswa ngefayela lokufaka le-binary kanye ne-culprit njengempikiswano, bese uhlelo luqaliswa ngaphakathi kwe-GDB. Uma ukuphahlazeka kuphinde kwakhiqizwa, isimo se Amarekhodi ayisihluthulelo njenge-RAX, i-RDX, njll., hlola imiyalelo eqondile esetshenziswayo bese ubheka amamephu enkumbulo (i-vmmap) ukuze ubone ukuthi yisiphi isifunda esifundelwa noma esibhalelwa kuso.

Kusukela ekuphahlazekeni kuya ekuxhashazweni okungenzeka: amamojula okuhlaziya ku-GDB

Ukubona i-binary wehla akusho ngaso sonke isikhathi ukuthi ubuthakathaka bungasetshenziswa. Yilapho izandiso ze-GDB ezifana ne-module zisebenza khona. ezisebenzisekayo, eklanyelwe ukuhlaziya umongo wokuphahlazeka nokunikeza ukuhlukaniswa okulinganiselwe kokuthi ukwehluleka kungasetshenziswa kabi noma cha.

Lezi zinhlobo zezandiso zihlola izici ezifana nokusebenza kwesikhombisi semiyalelo, isimo sesikhombisi se-stack, izimvume zememori zekheli lapho kwenziwa khona umzamo wokufunda noma wokubhala, kanye nohlobo lwesignali ebangele ukuphahlazeka. Ngalo lonke lolu lwazi, zinikeza i- isinqumo esikhombayo mayelana namathuba okuxhashazwa (isibonelo, ngokubeka i-bug esigabeni njengengase isetshenziswe, okungenzeka isetshenziswe, noma engenasithakazelo esikhulu).

  Uzinqanda kanjani izixhumanisi ezinonya kumaQembu e-Microsoft

Endabeni ye-Integer Underflow egcina ibhalele kwimemori yokufunda kuphela, i-plugin ingase iphakamise ukuthi lokhu kuyicala elingasebenziseka kalula ngoba umsebenzi wokubhala wenziwa ngaphandle kwemingcele elindelekile esifundeni lapho kungafanele kuthinteke lutho.

Akuzona zonke izimo ezizoba lula kangaka, kodwa lokhu kuhlanganiswa kwe-AFL ukuthola ukuphahlazeka, i-AFLTriage ukuqoqa nokuchaza amacala, kanye ne-GDB kanye nezandiso zokuhlola ukusetshenziswa kwawo, kwakha i- Ipayipi lokuhlola eliqinile kakhulu le-binaryKusukela lapho, umsebenzi osele uwukucwaninga nokuthuthukisa ukuxhashazwa, into engahluka kakhulu ngobunzima kuye ngokuthi izivikelo ezimbili nezisebenzayo ziyasebenza yini.

Enye ingxenye ebalulekile yokuhlaziywa, ikakhulukazi lapho kushicilelwa i-CVE kanye ne-patch ehlobene, ukubukeza ukuthi ubuthakathaka bulungiswe kanjani kukhodi yomthombo. Lokhu kuvame ukuhilela izinguquko ohlotsheni lwedatha esetshenzisiwe (isibonelo, ukusuka ku-byte esayiniwe kuya ku-byte engasayiniwe, ukwandisa ububanzi) kanye nokufakwa kokuhlolwa okwengeziwe (uma lokho kubuyisela amakhodi amaphutha uma imikhawulo ethile idluliwe) ukuvimbela ukugeleza kwegazi noma ukonakala kwememori.

Amanye ama-fuzzers namathuluzi afanele ohlelweni lwe-ecosystem

Nakuba i-AFL ne-AFL++ ziphakathi kwezinketho ezaziwa kakhulu zokuthola ama-binary omdabu angcolile, uhlelo lokuhlola i-fuzz lubanzi kakhulu futhi lufanele ukuqashelwa uma usebenza njalo ne- ukuphepha kwesofthiwe.

Phakathi kwezinketho ezisetshenziswa kakhulu yiLibFuzzer, umtapo wolwazi owasungulwa yiGoogle ohlanganisa ngqo nekhodi ye-C/C++ futhi usebenza kahle. ukufiphaza ezingeni lemisebenzi ethile, ilungele ukuhlola izingxenye ngazinye ngokufakwayo okulawulwa kakhulu.

Kukhona ne-Peach Fuzzer, ipulatifomu enenhloso ejwayelekile futhi elungisekayo ekuvumela ukuthi uchaze amamodeli anembile amaphrothokholi, amafomethi amafayela, kanye nezakhiwo eziyinkimbinkimbiKuthandwa kakhulu emikhakheni lapho ukuthembeka kubaluleke kakhulu, njengezinhlelo zezimboni noma izindawo ze-IoT.

Esizindeni sewebhu, amathuluzi afana ne-OWASP ZAP afaka phakathi amamojula ashukumisayo aqondiswe kuzinhlelo zokusebenza zewebhu, akwazi ukuthumela izicelo ezishintshiwe, imithwalo engalungile, kanye nokuhlolwa komjovo Ama-endpoints e-HTTP ukuthola ubuthakathaka obufana nokufakwa kwe-SQL, izinkinga zokuqinisekisa okufakwayo, noma amaphutha okucubungula amafomu.

Konke lokhu kuhambisana nokushintshashintsha kwe-AFL/AFL++ okubili, njengoba kuvumela ukumbozwa kusukela kukhodi yemvelo esezingeni eliphansi kuya ezingqimbeni zohlelo lokusebenza ezivezwa kakhulu kumsebenzisi wokugcina. Umgomo ofanayo kuzo zonke izimo uyafana: ukwenza ngokuzenzakalelayo usesho lobuthakathaka ngaphambi kokuba abahlaseli benze kanjalo.

Indlela yokuhlanganisa ukuhlolwa kwe-fuzz emjikelezweni wokuthuthukiswa

Ukuze i-fuzzing ilethe inani langempela njalo, akwanele nje ukuqalisa i-AFL noma i-AFL++ ngezikhathi ezithile bese ukhohlwa ngakho. Kusebenza kahle kakhulu. ukuhlanganisa ukuhlolwa kwe-fuzz emjikelezweni wokuphila kokuthuthukiswa kwesofthiwe, ngendlela efanayo nendlela okwenziwa ngayo ngokuhlolwa kweyunithi noma kokuhlanganiswa.

Isinyathelo sokuqala ukuchaza yiziphi izingxenye zesistimu ezibaluleke kakhuluAbahlaziyi bamafayela, amamojula enethiwekhi, izingxenye ezicubungula idatha yomsebenzisi, noma izinsizakalo ezivezwe ngaphandle. Imikhankaso ethile yokufiphaza ingaklanywa ngokuzungeza lezi zinhloso, kusetshenziswa amacala okuhlola akhethwe ngokucophelela.

Okulandelayo, udinga ukukhetha ithuluzi elifanele icala ngalinye. Kuma-binary omdabu ayinkimbinkimbi, i-AFL++ noma i-LibFuzzer ngokuvamile kuyizinto zemvelo, kuyilapho kuma-API ewebhu noma izinhlelo zokusebenza ze-HTTP, ithuluzi eliqondiswe kuwebhu lizoba nomqondo ongcono. Into ebalulekile ukuthi i-fuzzing yenziwe kahle. kuyaphindaphindeka futhi kuyazenzakalela.

Ukuhlanganiswa nezinhlelo ze-CI/CD kuwusizo kakhulu: ipayipi lingalungiswa ngendlela yokuthi, emagatsheni athile noma ngaphambi kokufakwa okuthile, ibhethri eliqhumayo liqaliswe ngesikhathi esilinganiselwe, lisindise noma yikuphi ukuphahlazeka okusha okutholiwe futhi lihluleke ukwakhiwa uma kuvela ubuthakathaka obukhulu.

Okokugcina, kubalulekile ukuqonda ukuthi ukufuzzing kuyinqubo ephindaphindayo. Isikhathi ngasinye lapho iphutha lilungiswa, ingxenye ethintekile kufanele ifuzzinglwe futhi ukuqinisekisa ukuthi i-patch iyasebenza nokuthi azikho iziphazamisi ezintsha ezifakiwe. akukho ukubuyela emuva noma ubuthakathaka obushaNgale ndlela, ukuhlolwa kwe-fuzz kuba ungqimba olwengeziwe lokuvikela okuqhubekayo hhayi ukuhlolwa okuhlukile.

Uma kubhekwa konke lokhu, konke okungenhla kubonisa ukuthi i-AFL, i-AFL++, kanye nokuhlolwa kwe-fuzz ngokuvamile kusivumela kanjani ukuthi sisuke endleleni yokuphepha esekelwe kuphela ekubuyekezweni okwenziwa ngesandla siye endleleni ephelele. okuzenzakalelayo kakhulu futhi kupheleleIyakwazi ukwembula amaphutha abengahlala efihliwe. Ukusebenza ngamacala angokoqobo, njengobuthakathaka bokugeleza kwamanzi kuma-decompressor asetshenziswa kabanzi, kusiza futhi ukuqonda ukuthi lokhu akuyona nje inkolelo-mbono, kodwa izinkinga esezisetshenziswa kakade. Ngakho-ke, ukugcina isofthiwe ibuyekeziwe futhi ifakwa ekushiseni njalo kungenza umehluko phakathi kohlelo olusengozini kanye noluqinile.