تحلیل آسیبپذیری با هوش مصنوعی محلی: وقتی LLM کد باگدار رو میخونه
خلاصهٔ کاملتر
یه محقق امنیتی که حدود یک سال روی آسیبپذیریهای N-day مایکروسافت کار کرده، مجموعهای از ابزارهای سفارشی ساخته. از جملهشون Diffrays هست که با IDA Pro کار میکنه و pseudocode توابع رو استخراج میکنه تا بشه باینریهای patched و unpatched رو با هم مقایسه کرد. یه ابزار دیگه هم به اسم WinDriver-EXP هست که PoC exploit برای آسیبپذیریهای درایورهای ویندوز داره.
با توجه به رشد تحلیلهای مبتنی بر هوش مصنوعی، محقق تصمیم گرفت بفهمه آیا یه LLM میتونه کدهای آسیبپذیر و پچشده رو بگیره و خودش آسیبپذیری رو پیدا کنه. این کار میتونه بهعنوان یه لایه اول triage خیلی مفید باشه و سرعت تحلیل رو بالا ببره.
برای راهاندازی محیط، از Ollama روی Docker استفاده شده. با یه دستور ساده میشه Ollama رو بهصورت local deploy کرد:
docker run -d -v ollama:/root/.ollama -p 11434:11434 --gpus=all --name ollama ollama/ollamaبعد از نصب، مدل دلخواه رو میشه pull کرد. برای ماشینهای معمولی، مدل qwen3:4b-q4_K_M با ۴ میلیارد پارامتر و حجم حدود ۲.۶ گیگابایت گزینه مناسبیه:
docker exec -it ollama ollama pull qwen3:4b-q4_K_Mانتخاب سایز مدل یه تریدآف مستقیمه؛ مدلهای بزرگتر استدلال بهتری دارن ولی به GPU و RAM بیشتری نیاز دارن، در حالی که مدلهای کوچیکتر سریعتر روی سختافزار محدود اجرا میشن. میشه از طریق CLI یا API با مدل تعامل داشت که این دومی برای ادغام با اسکریپتهای پایتون و اتوماسیون خیلی کاربردیتره.
هدف نهایی اینه که pseudocode توابع patched و unpatched به مدل داده بشه و از LLM خواسته بشه تفاوتها رو شناسایی کنه و احتمال وجود آسیبپذیری رو ارزیابی کنه؛ یه رویکرد جذاب برای ترکیب ابزارهای سنتی reverse engineering با تواناییهای استدلالی هوش مصنوعی.
نکات کلیدی:
- محقق ابزارهایی مثل Diffrays و WinDriver-EXP برای تحلیل N-day مایکروسافت ساخته
- هدف اصلی اینه که LLM بتونه آسیبپذیری رو از روی مقایسه کد patched و unpatched پیدا کنه
- Ollama روی Docker یه روش ساده و سریع برای اجرای LLM بهصورت local هست
- مدل qwen3:4b-q4_K_M برای ماشینهای معمولی پیشنهاد شده (2.6 گیگابایت)
- این رویکرد میتونه فاز triage اولیه در تحقیقات امنیتی رو خودکار کنه




