چرا کد ایجنتهای AI امن نیست، و راهحلش چیه
خلاصهٔ کاملتر
ایجنتهای کدنویسی هوش مصنوعی از دو مسیر امنیت پروژه رو به خطر میندازن: یا مستقیم کد ناامن مینویسن (مثل الگوهای SQL injection)، یا یه پکیج ثالث نصب میکنن که خودش یا یکی از زیرمجموعههاش یه CVE (آسیبپذیری شناختهشده) داره. مشکل اینجاست که فهرست الگوهای آسیبپذیر اونقدر بزرگه که هیچ مدلی نمیتونه تو هر تسک همهشو تو ذهن نگه داره و چک کنه.
راهحل اولی که به ذهن میرسه اینه که یه ایجنت دیگه رو بذاری برای بازبینی پولریکوئست قبل از مرج. این کار مفیده ولی بهتنهایی کافی نیست، چون هر چیزی که باعث شده ایجنت اول یه مشکل امنیتی رو نبینه (نبود context، عجله برای سرعت، درک ناقص از کدبیس) با اومدن یه ایجنت دوم از بین نمیره؛ فقط یه لایهی احتمالی دیگه روی لایهی قبلی اضافه میشه.
چیزی که این مقاله بهش میگه «گیت قطعی» (deterministic gate)، یعنی بهجای پرسیدن از یه ایجنت که «این کد امنه؟»، یه ابزار اسکن واقعی مثل SonarQube رو صدا بزنی که نتیجهش همیشه یکسانه و به لحن پرامپت یا حالوهوای مدل بستگی نداره. تا وقتی این اسکن تمیز درنیاد، پولریکوئست اصلا باز نمیشه.
نمونهای که تو مقاله اومده، یه ورکفلو هفتمرحلهایه: اول ایشو دستهبندی میشه (باگ یا فیچر)، بعد ایجنت پلن میده یا تحقیق میکنه، بعد کد رو مینویسه و یه دراف پولریکوئست باز میکنه. نکتهی کلیدی اینجاست: مرحلهی اسکن یه اسکریپته که مستقیم API سونارکیوب رو صدا میزنه، نه یه تسک برای ایجنت. اگه اسکن مشکلی پیدا کنه، گزارش برمیگرده پیش ایجنت تا درستش کنه و دوباره اسکن میشه؛ فقط وقتی نتیجه سبز شد، پولریکوئست آمادهی ریویوی آدمیزاده.
نویسنده تاکید میکنه این روش قول صفر آسیبپذیری نمیده؛ ابزارهای اسکن فقط الگوهای شناختهشده رو میگیرن و یه باگ امنیتی جدید یا یه مشکل تو منطق برنامه میتونه از زیر دستش دربره. ولی چیزی که عوض میشه، سطح پایهی اطمینانه: بهجای امیدوار بودن که یه ایجنت یادش بمونه مراقب باشه، مطمئنی که یه چک مشخص واقعا اجرا و رد شده.
نکات کلیدی:
- ایجنتهای کدنویسی هم با نوشتن کد ناامن و هم با نصب پکیجهای دارای CVE، امنیت پروژه رو به خطر میندازن.
- بازبینی با یه ایجنت دوم یه لایهی مفیده ولی چون خودش هم احتمالیه، بهتنهایی کافی نیست.
- «گیت قطعی» یعنی صدا زدن یه ابزار اسکن واقعی (مثل SonarQube) بهجای قضاوت یه مدل، بهصورت اسکریپت نه تسک ایجنت.
- ورکفلوی نمونه: دستهبندی، پلن یا تحقیق، پیادهسازی، اسکن، اصلاح اجباری، اسکن دوباره، بعد باز شدن پولریکوئست.
- این روش صفر آسیبپذیری تضمین نمیکنه، ولی یه خط پایهی قابلاعتماد و تکرارپذیر میسازه.




