هارنسِ کشفِ آسیبپذیری بسازیم
خلاصهٔ کاملتر
تو این مطلبِ کلادفلر اومده که آیندهٔ کارهای امنیتیِ عاملمحور نه تو یه مدلِ تنها، بلکه تو یه معماریه که مدلها رو مثلِ قطعاتِ قابلتعویض میبینه. تکیه به یه مدل پوششِ دفاعی رو محدود میکنه، چون همیشه از یه زاویه به کد نگاه میکنه؛ برای همین باید مدلها رو مدام عوض و ضربدری تست کرد. به گفتهٔ نویسنده اگه سیستمِ خودتون رو میسازید، از روزِ اول مدلناوابسته طراحیش کنید.
همهچیز با یه «اسکیل»ِ حدوداً ۴۵۰خطی شروع شد که روی یه ریپازیتوری یه ممیزیِ هفتمرحلهای اجرا میکرد و پرامپتهاش تا جایی تنظیم شدن که باگهای واقعی بیرون بیان. ولی این اسکیل زود به دیوار خورد: پرشدنِ پنجرهٔ کانتکست، ازدسترفتنِ کارِ ساعتها با یه کرش، و کوریِ نسبت به رابطهٔ بینِ ریپوها. نویسنده میگه راهِ عبور، بیرونکشیدنِ کاملِ وضعیت بود و رفتار با LLM مثلِ یه موتورِ محاسباتیِ بیحافظه.
سیستمِ نهایی دو مرحله داره: هارنسِ کشفِ آسیبپذیری (VDH) که کدها رو میگرده، و سیستمِ راستیآزماییِ آسیبپذیری (VVS) که یافتهها رو غربال میکنه. نکتهٔ کلیدی اینه که VDH با یه مدل کار میکنه و VVS با یه مدلِ کاملاً متفاوت، پس عملاً دو مدل کارِ همدیگه رو ضربدری چک میکنن؛ مدلِ دوم مثلِ یه داورِ بیطرف و سختگیر فرضیاتِ مدلِ اول رو زیرِ فشار میذاره.
به گفتهٔ نویسنده سختترین بخش، ساختنِ یافتههاییه که بشه بهشون اعتماد کرد. یه ایجنت راحت میتونه سورس رو دستکاری کنه تا اکسپلویتش کار کنه و بعد افتخارآمیز باگی رو گزارش کنه که خودش ساخته. برای همین هر «شکارچی» اول باید مدلِ تهدید رو تعریف کنه، بعد هر یافته باید یه اثباتِ عملی (PoC) بهشکلِ یه تستِ اجرایی روی کدِ دستنخورده و یه وصلهٔ پیشنهادی همراه داشته باشه؛ وگرنه جعلی حساب میشه.
دو درسِ مقیاس هم بیرون اومد: اول اینکه حذفِ یافتههای تکراری خودش اونقدر سنگینه که به ایجنتهای اختصاصی نیاز داره، و دوم اینکه ابزارهای تحلیلِ ایستا مثلِ Semgrep عملاً بیاستفاده موندن چون ایجنتها ترجیح میدادن خودِ کد رو بخونن و اجرا کنن. آماری هم که نویسنده میده: نرخِ ردِ اولیه از حدودِ ۴۰٪ به ۱۱٪ رسید و سهمِ یافتههای باکیفیت از ۳۵٪ به ۵۸٪. تصمیمِ نهاییِ اعمالِ وصله هم همیشه دستِ یه انسانه.
نکات کلیدی:
- ارزشِ ماندگار تو خودِ ارکستریشنه نه مدل؛ سیستم رو مدلناوابسته بساز.
- یه مدل کشف میکنه، مدلِ دیگه راستیآزمایی؛ راستیآزماییِ ضربدری اعتماد میسازه.
- وضعیت رو از مدل جدا کن و کانتکستِ هر ایجنت رو محدود نگه دار.
- هر یافته باید مدلِ تهدید، PoCِ اجرایی روی کدِ دستنخورده و وصلهٔ پیشنهادی داشته باشه.
- حذفِ یافتههای تکراری و اعمالِ نهاییِ وصله به کارِ اختصاصی و تأییدِ انسانی نیاز دارن.




