ابزار جدید گیت‌هاب برای خودکارسازی تست فازینگ پروژه‌های C/C++ با هوش مصنوعی

ابزار جدید گیت‌هاب برای خودکارسازی تست فازینگ پروژه‌های C/C++ با هوش مصنوعی

آزمایشگاه امنیت گیت‌هاب (GitHub Security Lab) ابزار جدیدی به نام Fuzzing Taskflow معرفی کرده است که فرآیند تست فازینگ (Fuzzing) را برای پروژه‌های C/C++ با استفاده از عامل‌های هوش مصنوعی (LLM Agents) کاملاً خودکار می‌کند. این ابزار بر پایه فریم‌ورک امنیتی GitHub Security Lab Taskflow Agent توسعه یافته و هدف آن برطرف کردن نیاز به نظارت مداوم انسان در فرآیندهای پیچیده فازینگ است.

نحوه کارکرد و معماری Fuzzing Taskflow

برای استفاده از این ابزار، کاربر تنها کافی است آدرس یک مخزن گیت‌هاب را به آن بدهد. پس از آن، عامل هوش مصنوعی به طور خودکار تمامی مراحل مقدماتی و اجرایی را بر عهده می‌گیرد؛ این مراحل شامل نصب ابزارهای موردنیاز مانند AFL، کلون کردن مخزن، شناسایی توابع کلیدی در کد، نوشتن کدهای تست (Harnesses)، اجرای AFL++، تحلیل گزارش‌های پوشش کد (Coverage)، بهبود کدهای تست و در نهایت بررسی کرش‌ها و تولید گزارش آسیب‌پذیری برای هر باگ منحصربه‌فرد است.

معماری این سیستم از سه لایه اصلی تشکیل شده است:

  • یک اسکریپت شل (run_fuzzing.sh) برای اتصال مراحل مختلف خط‌لوله به یکدیگر.
  • مجموعه‌ای از فایل‌های تنظیمات YAML که نقش پرامپت‌های راهنما را برای عامل هوش مصنوعی ایفا می‌کنند.
  • ابزارهای MCP (پروتکل زمینه مدل) که کارهای اجرایی مانند کامپایل کدهای تست یا اجرای AFL را انجام می‌دهند.

در این ساختار، عامل هوش مصنوعی تصمیم‌گیرنده است و ابزارهای MCP مجری تصمیمات هستند. تمامی داده‌ها و وضعیت‌ها نیز در یک پایگاه داده SQLite ذخیره می‌شوند. به طور پیش‌فرض، این ابزار از مدل Claude Sonnet 5 استفاده می‌کند، اما کاربران می‌توانند آن را تغییر دهند.

چرخه بازخورد پوشش کد و فازینگ ساختاریافته

یکی از بخش‌های کلیدی این ابزار، چرخه بازخورد پوشش کد است. هوش مصنوعی در هر تکرار، ابزار AFL را برای یک بازه زمانی مشخص اجرا می‌کند و با تحلیل شاخه‌های پوشش‌نداده‌شده، اقداماتی نظیر اصلاح کد تست، افزودن ورودی‌های جدید (Seeds) یا نادیده گرفتن مسیرهای کم‌اهمیت را انجام می‌دهد. بودجه زمانی در هر مرحله دوبرابر می‌شود (از ۳۰ ثانیه آغاز شده و تا ۹۶۰ ثانیه افزایش می‌یابد). این چرخه تا زمانی ادامه می‌یابد که افزایش پوشش کد در دو تکرار متوالی به کمتر از ۱ درصد برسد.

علاوه بر این، برای فرمت‌های متنی ساختاریافته مانند JSON و XML که فازرهای سنتی در پردازش آن‌ها مشکل دارند، این ابزار از دیکشنری‌های پیش‌فرض و جهش‌دهنده‌های سفارشی (Custom Mutators) برای تولید ورودی‌های هوشمند استفاده می‌کند.

هشدار امنیتی مهم در استفاده از ابزار

آزمایشگاه امنیت گیت‌هاب هشدار داده است که Fuzzing Taskflow دستورات کامپایلر و ساخت پروژه را مستقیماً روی سیستم میزبان و بدون استفاده از کانتینر ایزوله اجرا می‌کند. از آنجا که عامل هوش مصنوعی ممکن است تحت تأثیر حملات تزریق پرامپت (Prompt Injection) قرار گیرد، اکیداً توصیه می‌شود که این ابزار فقط در محیط‌های یک‌بارمصرف و ایزوله مانند GitHub Codespaces یا ماشین‌های مجازی دورریختنی اجرا شود.