ClusterFuzzLite، سیستمی برای سازماندهی تست های فازی کد

به تازگی گوگل رونمایی کرد از طریق یک پست وبلاگ پروژه ClusterFuzzLite که امکان سازماندهی تست های فازی را فراهم می کند کد برای تشخیص زودهنگام آسیب پذیری های بالقوه در مرحله عملیاتی سیستم های یکپارچه سازی مداوم

در حال حاضر، ClusterFuzz می تواند برای خودکارسازی تست فازی درخواست های کشش در GitHub Actions استفاده شود, Google Cloud Build and Prow، اما انتظار می رود در آینده با سایر سیستم های آی سی سازگار باشد. این پروژه بر اساس پلت فرم ClusterFuzz است که برای هماهنگی کار خوشه های آزمایش فازی ایجاد شده است و تحت مجوز Apache 2.0 توزیع شده است.

لازم به ذکر است که پس از معرفی سرویس OSS-Fuzz توسط گوگل در سال 2016، بیش از 500 پروژه اصلی منبع باز در برنامه تست فازی پیوسته پذیرفته شد. از بررسی های انجام شده، بیش از 6.500 آسیب پذیری تایید شده رفع شده و بیش از 21.000 خطا اصلاح شده است.

درباره ClusterFuzzLite

ClusterFuzzLite به توسعه مکانیسم های تست فازی ادامه می دهد با توانایی شناسایی مسائل زودتر در مرحله بررسی همتا تغییرات پیشنهادی. ClusterFuzzLite قبلاً در فرآیندهای بررسی تغییرات در پروژه های systemd و curl معرفی شده استو امکان شناسایی خطاهایی را که در آنالایزرهای استاتیک و لینترهایی که در مرحله اولیه تایید کد جدید مورد استفاده قرار گرفته اند شناسایی نشده است.

امروز، ما خوشحالیم که ClusterFuzzLite را معرفی می کنیم، یک راه حل فازی مداوم که به عنوان بخشی از گردش کار CI / CD برای یافتن آسیب پذیری ها سریعتر از همیشه اجرا می شود. تنها با چند خط کد، کاربران GitHub می‌توانند ClusterFuzzLite را در گردش کار خود ادغام کنند و درخواست‌های کششی فازی را برای پیدا کردن باگ‌ها قبل از ایجاد آن‌ها حل کنند و امنیت کلی زنجیره تامین نرم‌افزار را بهبود بخشند.
از زمان راه اندازی آن در سال 2016، بیش از 500 پروژه منبع باز حیاتی در برنامه OSS-Fuzz گوگل ادغام شده است که منجر به اصلاح بیش از 6.500 آسیب پذیری و 21.000 باگ عملکردی شده است. ClusterFuzzLite با OSS-Fuzz دست به دست می شود و خطاهای رگرسیون را خیلی زودتر در فرآیند توسعه تشخیص می دهد.

ClusterFuzzLite از اعتبارسنجی پروژه در C، C ++، جاوا پشتیبانی می کند (و سایر زبان های مبتنی بر JVM)، Go، Python، Rust و Swift. تست های فازی با استفاده از موتور LibFuzzer انجام می شود. ابزارهای AddressSanitizer، MemorySanitizer و UBSan (UndefinedBehaviorSanitizer) نیز می توانند برای تشخیص خطاها و ناهنجاری های حافظه فراخوانی شوند.

از ویژگی های کلیدی برای مثال ClusterFuzzLite برجسته می کند بررسی سریع تغییرات پیشنهادی برای یافتن خطاها در مرحله قبل از پذیرش کد و همچنین دانلود گزارش در مورد شرایط وقوع تصادفات، توانایی حرکت به تست های فازی پیشرفته تر برای شناسایی خطاهای عمیق‌تر که پس از تأیید تغییر کد ظاهر نشدند، همچنین تولید گزارش‌های پوشش برای ارزیابی پوشش کد در طول آزمایش‌ها و معماری ماژولار که به شما امکان می‌دهد عملکرد مورد نیاز را انتخاب کنید.

پروژه‌های بزرگ از جمله systemd و curlya از ClusterFuzzLite در طول بررسی کد استفاده می‌کنند و نتایج مثبتی به همراه دارد. به گفته دانیل استنبرگ، نویسنده curl، «وقتی بازبین‌های انسانی با کد موافقت می‌کنند و کد را تأیید می‌کنند و تحلیل‌گرها و لینترهای کد استاتیک آن‌ها نمی‌توانند مشکلات بیشتری را تشخیص دهند، فاز کردن چیزی است که شما را به سطح بعدی بلوغ و استحکام کد می‌برد. OSS-Fuzz و ClusterFuzzLite به ما کمک می کنند تا کرل را به عنوان یک پروژه با کیفیت، در تمام روز، هر روز و در هر تعامل حفظ کنیم.

باید به خاطر داشته باشیم که تست های فازی جریانی از انواع ترکیبات تصادفی از داده های ورودی نزدیک به داده های واقعی (مثلاً صفحات html با پارامترهای تگ تصادفی، فایل ها یا تصاویر با هدرهای غیرعادی و غیره) تولید می کنند و خرابی های احتمالی در این فرآیند را تصحیح می کنند.

اگر هر دنباله ای شکست بخورد یا با پاسخ مورد انتظار مطابقت نداشته باشد، این رفتار به احتمال زیاد نشان دهنده یک اشکال یا آسیب پذیری است.

سرانجام اگر شما علاقه مند به دانستن بیشتر در مورد آن هستید، می توانید جزئیات را بررسی کنید در لینک زیر.


محتوای مقاله به اصول ما پیوست اخلاق تحریریه. برای گزارش یک خطا کلیک کنید اینجا.

اولین کسی باشید که نظر

نظر خود را بگذارید

نشانی ایمیل شما منتشر نخواهد شد. بخشهای موردنیاز علامتگذاری شدهاند با *

*

*

  1. مسئول داده ها: میگل آنخل گاتون
  2. هدف از داده ها: کنترل هرزنامه ، مدیریت نظرات.
  3. مشروعیت: رضایت شما
  4. ارتباط داده ها: داده ها به اشخاص ثالث منتقل نمی شوند مگر با تعهد قانونی.
  5. ذخیره سازی داده ها: پایگاه داده به میزبانی شبکه های Occentus (EU)
  6. حقوق: در هر زمان می توانید اطلاعات خود را محدود ، بازیابی و حذف کنید.