Nocht Google scaoileadh le déanaí Tionscadal Atheris, ar forbairt de sraith uirlisí foinse oscailte speisialaithe le haghaidh tástálacha fuzzing de chód Python agus síntí do CPython scríofa i C / C ++.
El Proyecto úsáideann inneall libFuzzer-bhunaithe agus is féidir iad a úsáid i gcomhar leis na huirlisí Seoladh Sanitizer agus Iompar Neamhshainithe Sanitizer chun earráidí breise a bhrath. Tá an cód oscailte faoin gceadúnas Apache 2.0.
Maidir le Google Atheris
I bhfocail Google Atheris, is foireann uirlisí é is féidir a úsáid chun earráidí i gcód Python agus síntí dúchasacha a aimsiú go huathoibríoch. Is fuascán ‘tiomáinte ag clúdach’ é Atheris, rud a chiallaíonn go ndéanfaidh Atheris iarracht arís agus arís eile ionchuir éagsúla i do chlár agus é ag breathnú air ag rith agus ag iarraidh cosáin spéisiúla a fháil.
Tugtar tacaíocht d’athbhreithniú cód do Python 2.7 agus Python 3.3+, ach le haghaidh clúdach iomlán, treoraithe, molaimid brainsí Python 3.8 agus 3.9 a úsáid, a thacaíonn anois le staitisticí opcode trí opcode.
Sa phróiséas, Liostaíonn Atheris teaglaim fhéideartha sonraí ionchuir agus gineann sé tuarascáil maidir le gach locht braite agus eisceachtaí nár aimsíodh.
Mar shampla, agus leabharlann pharsála YAML in Atheris á seiceáil, fuarthas amach go dtógann roinnt YAML, mar shampla "-_" a shonrú in ionad luach slánuimhir nó liosta a úsáid in ionad eochair, caith eisceacht gan choinne in ionad caighdeán YAMLErrors earráid.
Is teicníc aitheanta í an tástáil fuzz chun earráidí cláir a fhionnadh. Tá impleachtaí tromchúiseacha slándála ag go leor de na hearráidí inbhraite seo. Fuair Google na mílte leochaileachtaí slándála agus fabhtanna eile agus an teicníc seo á úsáid. Úsáidtear fuzzing go traidisiúnta i dteangacha dúchasacha mar C nó C ++, ach anuraidh chruthaíomar inneall nua Python fuzzing. Inniu, d’eisíomar inneall fuzzing Atheris mar fhoinse oscailte.
Atheris is féidir a úsáid freisin chun difríochtaí san iompar a aithint leabharlanna a dhíríonn ar thascanna comhionanna. Mar shampla, fuair seiceáil achomair ar phacáiste Python "idna" agus an leabharlann "libidn2", a chomhlíonann an tasc ainmneacha fearainn idirnáisiúnaithe a dhíchódú, nach dtugann siad an toradh céanna i gcónaí.
Is é ceann de na húsáidí is fearr le haghaidh Atheris le haghaidh difusálaithe difreálacha. Is fuascáin iad seo a fhéachann le difríochtaí in iompar dhá leabharlann atá i gceist an rud céanna a dhéanamh. Déanann ceann de na fuascáin shampla atá cuachta le Atheris é seo go díreach chun pacáiste "idna" Python a chur i gcomparáid leis an bpacáiste C "libidn2".
Go háirithe, má bhain an fearann úsáid as seichimh Unicode, thiontaigh "idna" agus "libidn2" an t-ainm fearainn idirnáisiúnaithe go hóstach éagsúil.
Go ginearálta, tá Atheris úsáideach i gcód Python íon chomh fada agus a bhfuil bealach aige an t-iompar “ceart” a chur in iúl, nó ar a laghad a chur in iúl cé na hiompraíochtaí nach bhfuil ceart i ndáiríre. D’fhéadfadh sé seo a bheith chomh casta le cód saincheaptha sa fhuascán a dhéanann measúnú ar chruinneas aschur leabharlainne, nó chomh simplí agus a sheiceáil nach n-ardaítear aon eisceachtaí gan choinne.
Tá sé tábhachtach é sin a chur san áireamh Gineann tástálacha fuzzing sruth de gach cineál teaglaim randamach de shonraí ionchuir, gar do na sonraí iarbhír (m.sh. leathanaigh html le paraiméadair tag randamach, comhaid nó íomhánna le ceannteidil neamhghnácha, srl.) agus glití féideartha a shocrú sa phróiseas.
Má bhíonn eisceacht mar thoradh ar aon seicheamh nó mura n-oireann sé don fhreagra a bhfuil súil leis, is dóichí go léiríonn an t-iompar seo fabht nó leochaileacht.
Mar fhocal scoir, mar a luadh Oibríonn Atheris le cód Python i leagan 2.7 agus 3.3+, cé go molann Google go láidir 3.8+ agus síntí dúchasacha scríofa do CPython a úsáid.
Níl Windows fós i measc na gcóras oibriúcháin tacaithe, mar sin níl an t-inneall ach spéisiúil d’úsáideoirí Linux agus Mac OS X anois.
Chun é a úsáid ar na hardáin seo, ní mór d’fhorbróirí leagan reatha de éadan an tiomsaitheora Clang a bheith suiteáilte.
Más mian leat tuilleadh a fháil amach faoi, is féidir leat an nóta bunaidh a sheiceáil sa nasc seo a leanas.
Bí ar an chéad trácht