پرش به محتوای اصلی
پرش به محتوای مقاله

VibeGuard با شناسایی ۱۵ الگوی توهم‌گونه، حفره‌های امنیتی کدنویسی AI را می‌بندد

·۳۰ خرداد ۱۴۰۵۳ دقیقه مطالعه۲ بازدید
اسکنر امنیتی برای کد تولیدشده با هوش مصنوعی ساختم — این یافته‌های آن بود
اسکنر امنیتی برای کد تولیدشده با هوش مصنوعی ساختم — این یافته‌های آن بود
اشتراک‌گذاری
واقعاً چه چیز جدید است؟

معرفی ۱۵ «آنتی-پترن» اختصاصی برای کدهای AI (مانند توابع جعلی async و فقدان عملیات write) که پیش از این در هیچ اسکنر امنیتی استانداردی به عنوان دسته مجزا تعریف نشده بودند.

اگر اکنون کدهای تولیدشده توسط هوش مصنوعی را بدون بازبینی دقیق مستقر می‌کنید، احتمالاً در حال وارد کردن بمب‌های ساعتی به محیط Production هستید. واقعیت این است که مدل‌های زبانی برای «کار کردن» کد بهینه شده‌اند، نه برای «امن بودن» یا «کامل بودن» ساختاری.

این وضعیت منجر به پدیده‌ای شده که تحلیلگران آن را Vibe Coding (کدنویسی بر اساس حس) می‌نامند؛ یعنی ارسال کدهایی به محیط عملیاتی که ظاهر آن‌ها درست است اما منطق داخلی‌شان حفره‌دار است. طبق گزارشی در dev.to که در ۲۰ ژوئن ۲۰۲۶ منتشر شد، ابزار VibeGuard برای شناسایی دقیق همین میان‌برهای ساختاری طراحی شده است؛ میان‌برهایی که مدل‌های زبانی هنگام اولویت دادن به زیبایی و ظاهر کد بر امنیت، از آن‌ها استفاده می‌کنند. همان‌طور که در تحلیل‌های پیشین ما درباره‌ی توهمات مدل‌های زبانی اشاره کردیم، مدل‌ها تمایل دارند برای حفظ ظاهرِ «تمیز» کد، بخش‌های حیاتی اما پیچیده را با توابع توخالی جایگزین کنند.

بیشتر برنامه‌نویسان فعلاً به ابزارهایی مثل Bandit یا Semgrep تکیه می‌کنند، اما این ابزارها برای کدهایی که انسان نوشته طراحی شده‌اند. مدل زبانی بزرگ (LLM) — مثل کتابخانه‌داری که میلیاردها صفحه را خوانده و حالا با همان لحن کتاب‌ها جواب می‌دهد — از داده‌های قدیمی یاد می‌گیرد و به‌دلیل همین، به‌طور مداوم الگوهای خطرناکی مثل تزریق SQL یا آسیب‌پذیری‌های پیمایش مسیر (Path Traversal) را بازتولید می‌کند. تصور کنید برنامه‌نویسی تابعی را که در ظاهر بسیار تمیز به نظر می‌رسد در محیط عملیاتی قرار می‌دهد، اما بعداً متوجه می‌شود که هوش مصنوعی صرفاً یک «Stub» یا بدنه توخالی نوشته است که پیام موفقیت برمی‌گرداند، بدون اینکه در واقعیت هیچ داده‌ای را در دیتابیس ذخیره کند.

الگوی شکست هوش مصنوعی

کدهای تولیدی AI اغلب ظاهر «تمیز» را بر امنیت ترجیح می‌دهند. برای مثال، مدل‌ها مکرراً از درون‌یابی f-string در پرس‌وجوهای SQL استفاده می‌کنند (مانند query = f"SELECT * FROM users WHERE id = {user_id}") که مستقیماً منجر به تزریق SQL می‌شود. به همین ترتیب در مدیریت فایل‌ها، آن‌ها اغلب از os.path.join به گونه‌ای استفاده می‌کنند که اگر نام فایلی مانند "../../etc/passwd" ارسال شود، اجازه پیمایش مسیر (Path Traversal) را می‌دهد.

بر اساس مستندات فنی، VibeGuard یک اسکنر قطعی بر پایه AST (درخت نحو انتزاعی) است که از ۴۸ الگوی شناسایی برای یافتن این شکست‌ها استفاده می‌کند. این ابزار از ۹ زبان برنامه‌نویسی از جمله پایتون، جاوااسکریپت، TypeScript، Go، روبی، جاوا، PHP، کاتلین و C/C++ پشتیبانی می‌کند و شناسایی‌ها را به دو دسته اصلی تقسیم کرده است:

الگوهای امنیتی (۳۳ مورد)

  • تزریق دستورات (Command Injection) و SQL
  • پیمایش مسیر (Path Traversal) و SSRF
  • XSS و رمزهای سخت‌افزاری (Hardcoded Secrets)
  • استفاده از رمزنگاری ضعیف و فراخوانی‌های خطرناک eval/exec

الگوهای Vibe-Coding (۱۵ مورد)

  • STUB_SKELETON: جای‌گذارهای توخالی که توسط LLM رها شده‌اند (مثلاً def process(data): return {}).
  • MISSING_WRITE: توابعی که ادعای ذخیره داده دارند اما فاقد دستورات INSERT هستند (مثلاً بازگرداندن {"status": "saved"} بدون نوشتن در دیتابیس).
  • FAKE_ASYNC: توابع نامتقارنی (Async) که از کلمه کلیدی await استفاده نمی‌کنند.
  • DEAD_CALL_RESULT: ماژول‌هایی که فراخوانی می‌شوند اما مقادیر بازگشتی‌شان نادیده گرفته می‌شود.
  • HARDCODED_TABLE: جایگزینی جست‌وجوهای دیتابیس با دیکشنری‌های استاتیک و غول‌آسا.
  • INPUT_OUTPUT_DISCONNECTED: پارامترهایی که هیچ تأثیری بر مقدار بازگشتی تابع ندارند.
  • MOCK_PATTERN: حضور کتابخانه‌های تست مانند unittest.mock در کدهای محیط عملیاتی.

در یک تست واقعی، VibeGuard یک دستیار کدنویسی متن‌باز محبوب با بیش از ۲۵ هزار ستاره را بررسی کرد. این ابزار در عرض تنها ۳ ثانیه، یک آسیب‌پذیری تزریق دستور در سطح BLOCK در فایل agent.py (خط ۱۲۲۲) را شناسایی کرد که از subprocess.Popen(cmd, shell=True) استفاده می‌کرد؛ حفره‌ای که هر دو ابزار Bandit و Semgrep به‌طور کامل نادیده گرفته بودند. نکته کلیدی این است که VibeGuard در خط لوله (Pipeline) خود از هیچ مدل زبانی استفاده نمی‌کند تا تضمین شود ورودی یکسان همیشه خروجی یکسانی دارد.

این تغییر، گذاری از «لینتینگ عمومی» به «حسابرسی امنیتی آگاه از AI» است. برای برنامه‌نویس، این یعنی دیگر «حس خوب» (Vibe) کد سیگنال اصلی نیست، بلکه یکپارچگی ساختاری در برابر حالت‌های شکست شناخته‌شده‌ی مدل‌ها سنجیده می‌شود. این ابزار به‌طور مؤثر شکافی را می‌پوشاند که در آن اعتمادبه‌نفس بالای مدل، خطاهای منطقی بحرانی را می‌پوشاند.

گام بعدی شما

  • اگر از GitHub Actions استفاده می‌کنید، می‌توانید اکشن Moonsehwan/aina-vibeguard-action@v1 را در خط لوله CI/CD خود ادغام کنید تا PRهایی که حاوی تزریق SQL یا بدنه‌های توخالی هستند، مسدود شوند.
  • از لایه‌ی رایگان (۵۰ اسکن در روز) برای بررسی سریع فایل‌های حساس خود استفاده کنید. شایان ذکر است که قابلیت‌های نسخه Pro تا تاریخ ۲۴ ژوئن به‌صورت رایگان در دسترس هستند.
  • برنامه‌نویسان همچنین می‌توانند با استفاده از دستور curl به API میزبانی‌شده در Railway با کلید تست vg_free_test صحت کدهای تولیدشده توسط AI را به‌سرعت تست کنند.

اما داستان سخت‌افزاری این تحول حتی شگفت‌انگیزتر است — به تحلیل ما درباره‌ی تراشه‌های Blackwell مراجعه کنید.

چرا این موضوع مهم است؟

این ابزار با تکیه بر تحلیل AST، لایه جدیدی از اعتماد را به چرخه CI/CD می‌افزاید و مانع از ورود کدهای «ظاهراً درست اما توخالی» به محیط عملیاتی می‌شود. اعتبار این رویکرد در شناسایی حفره‌هایی است که اسکنرهای سنتی به‌دلیل عدم شناخت رفتارهای تولیدی AI، نادیده می‌گرفتند.

تأثیر برای ایران

برنامه‌نویسان ایرانی که به‌شدت از Copilot و ChatGPT برای تسریع توسعه استفاده می‌کنند، می‌توانند با استفاده از اکشن رایگان گیت‌هاب این ابزار، ریسک امنیتی پروژه‌های خود را بدون هزینه کاهش دهند.

·نگاه ما
تحریریه دات‌هوش

اعتماد کورکورانه به «تمیزی» کدهای AI در حال تبدیل شدن به یک ریسک سیستمی است. VibeGuard با تعریف «آنتی-پترن‌های AI»، نشان می‌دهد که ما به ابزارهای نظارتی نیاز داریم که نه تنها اشتباهات برنامه‌نویسی، بلکه «استراتژی‌های تقلب» مدل‌ها برای زیبا جلوه دادن کد را بشناسند.

منابع

این گزارش با خط‌لولهٔ خودکار دات‌هوش از منابع معتبر جهانی تدوین و زیر نظر تحریریه منتشر شده است. روش کار ما

گفتگو

پنج‌شنبه‌های هوش‌محور

بسته‌ی هفتگی دات‌هوش

۵ خبر، ۲ ابزار، ۱ پرامپت در هر شماره. به‌زودی راه‌اندازی می‌شود — هر پنج‌شنبه صبح.

خبر کلیدی
ابزار کاربردی
پرامپت حرفه‌ای
تحلیل پژوهش
به‌زودی
زاویه‌ی ایرانی
به‌زودی
تمرین این هفته
به‌زودی

راهنماهای دات‌هوش

راهنماهای کاربردیِ دات‌هوش برای کار با هوش مصنوعی — از همین‌جا شروع کنید:

دات‌هوش

راهنمای فارسی هوش مصنوعی — با نگاه به ایران

اخبار روزانه، معرفی ابزارها و مدل‌ها، و آموزشِ کار با هوش مصنوعی؛ همیشه با این پرسش که از ایران چه چیزی کار می‌کند و چه چیزی نه.