ClusterFuzzLite, isang sistema para sa pag-aayos ng code fuzzing test

Kamakailan lamang Inilantad ng Google sa pamamagitan ng isang post sa blog ang proyekto ng ClusterFuzzLite, na nagbibigay-daan sa pag-aayos ng mga fuzzing test ng code para sa maagang pagtuklas ng mga potensyal na kahinaan sa yugto ng pagpapatakbo ng tuluy-tuloy na mga sistema ng pagsasama.

Sa kasalukuyan, ang ClusterFuzz ay maaaring gamitin upang i-automate ang fuzz testing ng mga pull request sa GitHub Actions, Google Cloud Build at Prow, ngunit inaasahan na sa hinaharap ay magiging katugma ito sa iba pang mga IC system. Ang proyekto ay batay sa platform ng ClusterFuzz, na nilikha upang i-coordinate ang gawain ng mga fuzzing test cluster, at ipinamamahagi sa ilalim ng lisensya ng Apache 2.0.

Dapat tandaan na pagkatapos ng pagpapakilala ng serbisyo ng OSS-Fuzz ng Google noong 2016, higit sa 500 pangunahing open source na proyekto ang tinanggap sa tuluy-tuloy na programa sa pag-uusig ng fuzzing. Mula sa mga pagsusuri na isinagawa, higit sa 6.500 kumpirmadong kahinaan ang naalis at higit sa 21.000 mga pagkakamali ang naitama.

Tungkol sa ClusterFuzzLite

Ang ClusterFuzzLite ay patuloy na gumagawa ng mga mekanismo ng fuzzing test na may kakayahang tumukoy ng mga isyu nang mas maaga sa yugto ng peer review ng mga iminungkahing pagbabago. Ang ClusterFuzzLite ay naipakilala na sa mga proseso ng pagsusuri ng pagbabago sa systemd at curl na mga proyekto, at naging posible na matukoy ang mga error na hindi nakita sa mga static na analyzer at linter na ginamit sa unang yugto ng pag-verify ng bagong code.

Ngayon, ikinalulugod naming ianunsyo ang ClusterFuzzLite, isang tuluy-tuloy na fuzzing na solusyon na tumatakbo bilang bahagi ng mga daloy ng trabaho ng CI / CD upang makahanap ng mga kahinaan nang mas mabilis kaysa dati. Sa ilang linya lang ng code, maaaring isama ng mga user ng GitHub ang ClusterFuzzLite sa kanilang daloy ng trabaho at mga kahilingan ng fuzz pull upang mahuli ang mga bug bago gawin ang mga ito, na pagpapabuti sa pangkalahatang seguridad ng supply chain ng software.
Mula nang ilunsad ito noong 2016, mahigit 500 kritikal na open source na proyekto ang isinama sa OSS-Fuzz program ng Google, na nagreresulta sa pagwawasto ng higit sa 6.500 kahinaan at 21.000 functional bug. Ang ClusterFuzzLite ay sumasabay sa OSS-Fuzz, na nakakakita ng mga error sa regression nang mas maaga sa proseso ng pagbuo.

Sinusuportahan ng ClusterFuzzLite ang pagpapatunay ng proyekto sa C, C ++, Java (at iba pang mga wikang nakabatay sa JVM), Go, Python, Rust, at Swift. Ang mga fuzzing test ay isinasagawa gamit ang LibFuzzer engine. Ang mga tool na AddressSanitizer, MemorySanitizer at UBSan (UndefinedBehaviorSanitizer) ay maaari ding tawagan upang makita ang mga error at anomalya sa memorya.

Ng mga pangunahing tampok ClusterFuzzLite highlights halimbawa ang mabilis na pag-verify ng mga iminungkahing pagbabago upang mahanap ang mga error sa yugto bago ang pagtanggap ng code, pati na rin ang pag-download ng mga ulat sa mga kondisyon ng paglitaw ng mga pag-crash, ang kakayahang lumipat sa mas advanced na mga fuzzing test upang matukoy ang mas malalim na mga error na hindi lumitaw pagkatapos ma-verify ang pagbabago ng code, gayundin ang pagbuo ng mga ulat sa saklaw upang suriin ang saklaw ng code sa panahon ng mga pagsubok at ang modular na arkitektura na nagbibigay-daan sa iyong piliin ang kinakailangang paggana.

Ang malalaking proyekto kabilang ang systemd at curlya ay gumagamit ng ClusterFuzzLite sa panahon ng pagsusuri ng code, na may mga positibong resulta. Ayon kay Daniel Stenberg, may-akda ng curl, “Kapag ang mga tagasuri ng tao ay sumang-ayon at naaprubahan ang code at ang kanilang mga static na code analyzer at linter ay hindi na makakakita ng anumang mga problema, ang fuzzing ang magdadala sa iyo sa susunod na antas ng code maturity at robustness. Tinutulungan kami ng OSS-Fuzz at ClusterFuzzLite na mapanatili ang curl bilang isang de-kalidad na proyekto, buong araw, araw-araw at sa bawat pakikipag-ugnayan.

Dapat nating tandaan na ang mga fuzzing test ay bumubuo ng stream ng lahat ng uri ng random na kumbinasyon ng input data na malapit sa aktwal na data (hal. html page na may mga random na parameter ng tag, mga file o mga larawang may abnormal na mga header, atbp.) at itatama ang mga posibleng pagkabigo sa proseso.

Kung ang anumang pagkakasunud-sunod ay nabigo o hindi tumutugma sa inaasahang tugon, ang gawi na ito ay malamang na nagpapahiwatig ng isang bug o kahinaan.

Sa wakas kung interesado kang malaman ang tungkol dito, maaari mong suriin ang mga detalye Sa sumusunod na link.


Iwanan ang iyong puna

Ang iyong email address ay hindi nai-publish. Mga kinakailangang patlang ay minarkahan ng *

*

*

  1. Responsable para sa data: Miguel Ángel Gatón
  2. Layunin ng data: Kontrolin ang SPAM, pamamahala ng komento.
  3. Legitimation: Ang iyong pahintulot
  4. Komunikasyon ng data: Ang data ay hindi maiparating sa mga third party maliban sa ligal na obligasyon.
  5. Imbakan ng data: Ang database na naka-host ng Occentus Networks (EU)
  6. Mga Karapatan: Sa anumang oras maaari mong limitahan, mabawi at tanggalin ang iyong impormasyon.