Beth yw Fuzzing?

Beth sy'n fuzzing

Cyflwyniad: Beth yw Fuzzing?

Yn 2014, hacwyr Tsieineaidd hacio i mewn i Systemau Iechyd Cymunedol, cadwyn ysbyty yr Unol Daleithiau er elw, a dwyn data 4.5 miliwn o gleifion. Fe wnaeth yr hacwyr ecsbloetio byg o'r enw Heartbleed a ddarganfuwyd yn llyfrgell cryptograffeg OpenSSL rai misoedd cyn yr hac.

Mae Heartbleed yn enghraifft o ddosbarth o fectorau ymosodiad sy'n caniatáu i ymosodwyr gael mynediad at darged trwy anfon ceisiadau wedi'u camffurfio sy'n ddigon dilys i basio gwiriadau rhagarweiniol. Er bod gweithwyr proffesiynol sy'n gweithio ar wahanol rannau o app yn gwneud eu gorau i sicrhau ei ddiogelwch, mae'n amhosibl meddwl am bob achos cornel a allai dorri ap neu ei wneud yn agored i niwed yn ystod datblygiad.

Dyma lle mae 'fuzzing' yn dod i mewn.

Beth yw Ymosodiad Fuzzing?

Techneg profi meddalwedd awtomataidd a ddefnyddir i fwydo data ar hap, annisgwyl neu annilys (a elwir yn fuzz) i mewn i raglen yw fuzzing, fuzz testing, neu ymosodiad niwlog. Mae'r rhaglen yn cael ei monitro ar gyfer ymddygiadau anarferol neu annisgwyl fel gorlifiadau byffer, damweiniau, gollyngiadau cof, crogi edau, a thorri mynediad darllen/ysgrifennu. Yna defnyddir y teclyn fuzzing neu fuzzer i ddatgelu achos yr ymddygiad anarferol.

Mae Fuzzing yn seiliedig ar y rhagdybiaeth bod pob system yn cynnwys chwilod sy'n aros i gael eu darganfod, a gellir rhoi digon o amser ac adnoddau iddynt wneud hynny. Mae gan y rhan fwyaf o systemau parsers da iawn neu atal dilysu mewnbwn cybercriminals rhag manteisio ar unrhyw fygiau damcaniaethol mewn rhaglen. Fodd bynnag, fel y soniasom uchod, mae cwmpasu pob achos cornel yn ystod datblygiad yn anodd.

Defnyddir Fuzzers ar raglenni sy'n cynnwys mewnbwn strwythuredig neu sydd â rhyw fath o ffin ymddiriedolaeth. Er enghraifft, byddai rhaglen sy'n derbyn ffeiliau PDF yn cael ei dilysu i sicrhau bod gan y ffeil estyniad .pdf a pharser i brosesu'r ffeil PDF.

Gall fuzzer effeithiol gynhyrchu mewnbynnau sy'n ddigon dilys i fynd heibio'r ffiniau hyn ond eto'n ddigon annilys i achosi ymddygiad annisgwyl ymhellach i lawr y rhaglen. Mae hyn yn bwysig oherwydd nid yw gallu mynd heibio'r dilysiadau yn golygu llawer os na chaiff unrhyw niwed pellach ei achosi.

Mae Fuzzers yn darganfod fectorau ymosodiad sy'n debyg iawn i ac yn cynnwys pethau fel chwistrelliad SQL, sgriptio traws-safle, gorlif byffer, ac ymosodiadau gwrthod gwasanaeth. Mae'r holl ymosodiadau hyn o ganlyniad i fwydo data annisgwyl, annilys neu ar hap i mewn i system. 

 

Mathau o Fuzzers

Gellir dosbarthu Fuzzers yn seiliedig ar rai nodweddion:

  1. Ymosod ar dargedau
  2. Dull creu Fuzz
  3. Ymwybyddiaeth o strwythur mewnbwn
  4. Ymwybyddiaeth o strwythur y rhaglen

1. Targedau Ymosod

Mae'r dosbarthiad hwn yn seiliedig ar y math o blatfform y mae'r fuzzer yn cael ei ddefnyddio i'w brofi. Defnyddir Fuzzers yn gyffredin gyda phrotocolau rhwydwaith a chymwysiadau meddalwedd. Mae gan bob platfform fath arbennig o fewnbwn y mae'n ei dderbyn, ac felly mae angen gwahanol fathau o fuzzers.

Er enghraifft, wrth ddelio â chymwysiadau, mae pob ymgais niwlog yn digwydd ar sianeli mewnbwn amrywiol y rhaglen, megis y rhyngwyneb defnyddiwr, terfynell llinell orchymyn, ffurflenni / mewnbynnau testun, a llwytho ffeiliau i fyny. Felly mae'n rhaid i'r holl fewnbynnau a gynhyrchir gan y fuzzer gyfateb i'r sianeli hyn.

Mae'n rhaid i fuzzers sy'n delio â phrotocolau cyfathrebu ddelio â phecynnau. Gall fuzzers sy'n targedu'r platfform hwn gynhyrchu pecynnau ffug, neu hyd yn oed weithredu fel dirprwyon i addasu pecynnau rhyng-gipio a'u hailchwarae.

2. Dull Creu Fuzz

Gellir dosbarthu Fuzzers hefyd yn seiliedig ar sut maent yn creu data i fuzz ag ef. Yn hanesyddol, creodd fuzzers fuzz trwy gynhyrchu data ar hap o'r dechrau. Dyma sut y gwnaeth yr Athro Barton Miller, ysgogydd y dechneg hon, hynny i ddechrau. Gelwir y math hwn o fuzzer a fuzzer seiliedig ar genhedlaeth.

Fodd bynnag, er y gallai rhywun yn ddamcaniaethol gynhyrchu data a fydd yn osgoi ffin ymddiriedolaeth, byddai'n cymryd cryn amser ac adnoddau i wneud hynny. Felly defnyddir y dull hwn fel arfer ar gyfer systemau gyda strwythurau mewnbwn syml.

Ateb i'r broblem hon yw treiglo data y gwyddys ei fod yn ddilys i gynhyrchu data sy'n ddigon dilys i basio ffin ymddiriedolaeth, ond eto'n ddigon annilys i achosi problemau. Enghraifft dda o hyn yw a Fuzzer DNS sy'n cymryd enw parth ac yna'n cynhyrchu rhestr fawr o enwau parth i ganfod parthau a allai fod yn faleisus sy'n targedu perchennog y parth penodedig.

Mae'r dull hwn yn ddoethach na'r un blaenorol ac yn cyfyngu'n sylweddol ar y trynewidiadau posibl. Gelwir fuzzers sy'n defnyddio'r dull hwn fuzzers seiliedig ar dreiglad

Mae trydydd dull mwy diweddar sy'n defnyddio algorithmau genetig i gydgyfeirio ar y data fuzz optimaidd sydd ei angen i gael gwared ar wendidau. Mae'n gweithio trwy fireinio ei ddata fuzz yn barhaus, gan ystyried perfformiad pob data prawf wrth ei fwydo i mewn i raglen. 

Mae'r setiau data sy'n perfformio waethaf yn cael eu tynnu o'r gronfa ddata, tra bod y goreuon yn cael eu treiglo a/neu eu cyfuno. Yna defnyddir y genhedlaeth newydd o ddata i brofi fuzz eto. Cyfeirir at y fuzzers hyn fel fuzzers esblygiadol seiliedig ar dreiglad.

3. Ymwybyddiaeth o Strwythur Mewnbwn

Mae'r dosbarthiad hwn yn seiliedig ar p'un a yw niwdwr yn ymwybodol o strwythur mewnbwn rhaglen ac yn ei ddefnyddio'n weithredol i gynhyrchu data fuzz. A fuzzer mud (fuzzer nad yw'n ymwybodol o strwythur mewnbwn rhaglen) yn cynhyrchu fuzz ar hap yn bennaf. Gallai hyn gynnwys fuzzers cenhedlaeth a threigladau. 


Os darperir model mewnbwn rhaglen i fuzzer, yna gall y niwgwr geisio cynhyrchu neu dreiglo data fel ei fod yn cyfateb i'r model mewnbwn a ddarparwyd. Mae'r dull hwn yn lleihau ymhellach faint o adnoddau sy'n cael eu gwario ar gynhyrchu data annilys. Gelwir y fath fuzzer a fuzzer smart.

4. Ymwybyddiaeth o Strwythur y Rhaglen

Gellir dosbarthu Fuzzers hefyd yn seiliedig ar p'un a ydynt yn ymwybodol o weithrediad mewnol y rhaglen y maent yn rhyfeddu, a defnyddio'r ymwybyddiaeth honno i gynorthwyo â chynhyrchu data fuzz. Pan ddefnyddir fuzzers i brofi rhaglen heb ddeall ei strwythur mewnol, fe'i gelwir yn brofion blwch du. 

Mae data Fuzz a gynhyrchir yn ystod profion blwch du fel arfer ar hap oni bai bod y niwlydd yn fuzzer esblygiadol sy'n seiliedig ar dreiglad, lle mae'n 'dysgu' trwy fonitro effaith ei niwl a defnyddio hynny gwybodaeth i fireinio ei set ddata fuzz.

Mae profion blwch gwyn ar y llaw arall yn defnyddio model o strwythur mewnol y rhaglen i gynhyrchu data fuzz. Mae'r dull hwn yn gadael i fuzzer gyrraedd lleoliadau hanfodol mewn rhaglen a'i phrofi. 

Offer Fuzzing Poblogaidd

Mae yna lawer o fuzzing offer allan yna a ddefnyddir gan brofwyr pen. Rhai o'r rhai mwyaf poblogaidd yw:

Cyfyngiadau Fuzzing

Er bod Fuzzing yn dechneg profi ysgrifbin wirioneddol ddefnyddiol, nid yw heb ei ddiffygion. Rhai o'r rhain yw:

  • Mae'n cymryd cryn amser i redeg.
  • Gall damweiniau ac ymddygiadau annisgwyl eraill a ganfyddir wrth brofi rhaglen mewn blwch du fod yn anodd, os nad yn amhosibl eu dadansoddi neu eu dadfygio.
  • Gall creu templedi treiglo ar gyfer fuzzers smart sy'n seiliedig ar dreiglad gymryd llawer o amser. Weithiau, efallai na fydd yn bosibl hyd yn oed oherwydd bod y model mewnbwn yn berchnogol neu'n anhysbys.

 

Serch hynny, mae'n arf eithaf defnyddiol ac angenrheidiol i unrhyw un sydd am ddarganfod chwilod cyn y dynion drwg.

Casgliad

Mae Fuzzing yn dechneg brawf pin bwerus y gellir ei defnyddio i ddatgelu gwendidau mewn meddalwedd. Mae yna lawer o wahanol fathau o fuzzers, ac mae fuzzers newydd yn cael eu datblygu drwy'r amser. Er bod fuzzing yn offeryn hynod ddefnyddiol, mae ganddo ei gyfyngiadau. Er enghraifft, dim ond cymaint o wendidau y gall fuzzers eu canfod a gallant fod yn eithaf dwys o ran adnoddau. Fodd bynnag, os ydych chi am roi cynnig ar y dechneg anhygoel hon drosoch eich hun, mae gennym ni a API DNS Fuzzer am ddim y gallwch ei ddefnyddio ar ein platfform. 

Felly beth ydych chi'n aros amdano? 

Dechrau fuzzing heddiw!