هارنس مرجع Anthropic برای پیداکردن باگهای امنیتی
خلاصهٔ کاملتر
Anthropic یه ریپازیتوری مرجع آزاد به اسم defending-code-reference-harness منتشر کرده که نشون میده چطور میشه با Claude کشف و رفع آسیبپذیری رو خودکار کرد. به گفتهٔ Anthropic، این پیادهسازی حاصل همکاری با تیمهای امنیتی چند سازمانه و قراره یه نقطهٔ شروع برای ساختن خطلولهٔ اختصاصی خودت باشه، نه یه محصول آماده. خود ریپو هم میگه نگهداری نمیشه و کنار این، محصول میزبانیشدهٔ Claude Security بهعنوان گزینهٔ مدیریتشده معرفی شده.
ریپو دو بخش داره. اول یهسری اسکیل تعاملی Claude Code مثل /quickstart، /threat-model، /vuln-scan، /triage، /patch و /customize برای دامنهبندی، اسکن، triage و وصله. دوم پوشهٔ harness/ که خطلولهٔ مرجع و خودکار رو داره و پیشفرض برای پیداکردن آسیبپذیریهای حافظهٔ C/C++ با Docker و ASAN (تشخیصدهندهٔ خطای حافظه) تنظیم شده. نویسنده تأکید میکنه این هارنس یه مرجعه نه محصول و لزوماً روی هر کدبیسی بدون تغییر کار نمیکنه؛ برای پورتکردن به زبان یا کلاس آسیبپذیری دیگه باید /customize رو اجرا کنی.
نکتهٔ امنیتی مهم اینه که اسکیلهای تعاملی فقط فایل میخونن و مینویسن و بدون سندباکس امن هستن، ولی خطلولهٔ خودکار کد هدف رو واقعاً اجرا میکنه؛ برای همین بیرون از سندباکس gVisor راه نمیافته مگه صریحاً override بشه. هر ایجنت داخل یه کانتینر gVisor با خروجی شبکهٔ محدودشده به API کلود اجرا میشه. راهاندازیش هم با اجرای scripts/setup_sandbox.sh و بعد فراخوانی خطلوله از طریق bin/vp-sandboxedـه.
زیر کاپوت، خطلوله از هفت مرحله رد میشه. Build هدف رو با ASAN به یه ایمیج Docker کامپایل میکنه. Recon یه ایجنت سبک سورس رو میخونه و یه پارتیشن از زیرسیستمهای ورودی پیشنهاد میده تا ایجنتهای موازی سراغ نواحی مختلف برن نه یه باگ مشترک. تو مرحلهٔ Find چند ایجنت موازی، هرکدوم تو کانتینر جدا، ورودیهای ناقص میسازن و باینری ASAN رو اجرا میکنن تا یه ورودی سه بار از سه بار کرش بده.
سه مرحلهٔ بعدی تأیید و جمعبندیه. Verify یه ایجنت داور جدا، کرش رو تو یه کانتینر تازه بازتولید میکنه و تنها چیزی که از ایجنت Find عبور میکنه همون proof of conceptـه. Dedupe یه ایجنت قاضی کرشهای تأییدشده رو با باگهای گزارششده مقایسه میکنه و تصمیم میگیره باگ تازهست یا تکراری. Report هم برای هر باگ یکتا یه تحلیل ساختاریافتهٔ بهرهبرداری شامل کلاس primitive، دسترسپذیری، مسیر escalation و شدت مینویسه.
مرحلهٔ هفتم یعنی Patch جداست: یه ایجنت وصله یه رفع پیشنهادی مینویسه و یه ایجنت داور تأیید میکنه که کد جدید build میشه، ورودی proof of concept اولیه دیگه کرش نمیده، تستسوئیت هدف هنوز پاس میشه و یه ایجنت Find تازه نمیتونه راه دوری برای حمله پیدا کنه. نویسنده صادقانه میگه triage و وصلهٔ خودکار هنوز مسئلهٔ بازن و این هارنس کاملاً حلشون نکرده؛ بخشبندی شدت و اولویتبندی در نهایت قضاوت دربارهٔ محیط خودته و باید براش وقت مهندسی واقعی بذاری.
نکات کلیدی:
- یه پیادهسازی مرجع آزاد برای کشف و رفع خودکار آسیبپذیری با Claude
- حلقهٔ هفتمرحلهای: build، recon، find، verify، dedupe، report و patch
- پیشفرض برای باگهای حافظهٔ C/C++ با Docker و ASAN؛ قابل پورت به زبانهای دیگه
- چون کد هدف اجرا میشه، خطلولهٔ خودکار فقط داخل سندباکس gVisor راه میافته
- اسکیلهای تعاملی Claude Code فقط فایل میخونن/مینویسن و امن هستن
- خود Anthropic میگه triage و وصلهٔ خودکار هنوز مسئلهٔ حلنشدهای هستن




