SAIST داتاداگ: اسکنر امنیتی کد با مدل زبانی
خلاصهٔ کاملتر
داتاداگ پروژهٔ متنباز SAIST رو منتشر کرده؛ ابزاری که خودش رو یه SAST بومیِ هوش مصنوعی معرفی میکنه. تفاوتش با اسکنرهای سنتی اینه که به جای تکیهٔ کامل بر پارس کد و قواعد از پیش نوشتهشده، خودِ تشخیص آسیبپذیری رو به یه مدل زبانی میسپره — Claude از Anthropic، GPT از OpenAI یا Gemini از گوگل. توی مستندات پروژه اومده که هم میشه مستقل روی لپتاپ اجراش کرد و هم بهعنوان بخشی از Datadog Code Security در دسترسه.
زبانهای پشتیبانیشده Go، Java، Python، C#، JavaScript، TypeScript و Kotlin هستن و خروجی به فرمت استاندارد SARIF نوشته میشه، پس مستقیم به ابزارهای موجود CI و داشبوردهای امنیتی وصل میشه. ابزار با Tree-sitter کد رو پارس میکنه و یه ایندکس از کانتکست پروژه میسازه تا تحلیلش بینفایلی و دقیقتر باشه؛ روی مخزنهای بزرگ میشه با --skip-indexing این ایندکس رو خاموش کرد و مصرف حافظه رو به قیمت از دست دادن تشخیص بینفایلی پایین آورد.
اجرا دو تا مدل جدا میگیره: یکی برای تشخیص و یکی برای اعتبارسنجی نتیجه، یعنی یافتهها قبل از رسیدن به گزارش یه بار دیگه بازبینی میشن.
make build
./bin/datadog-saist --directory <path> --output report.sarif --detection-model gemini-2.5-flash --validation-model gemini-2.5-flashنکتهٔ مهم برای شروع اینه که حساب داتاداگ لازم نیست؛ قواعد تشخیص از یه اندپوینت عمومی داتاداگ گرفته میشن و فقط کلید API یکی از سه ارائهدهنده باید توی متغیر محیطی ست بشه. پروژه هنوز در حال توسعه و تو مرحلهٔ preview هست، پس فعلاً بیشتر یه لایهٔ کمکی کنار SAST فعلیه تا جایگزینش. گزینههایی مثل --file-concurrency برای تعداد فایل همزمان، --request-timeout-sec برای تایماوت فراخوانی مدل و --local-prompts برای استفاده از قواعد جاسازیشده در باینری هم هست.
نکات کلیدی:
- SAIST تشخیص آسیبپذیری رو به LLM میسپره، نه فقط به قواعد ثابت
- پشتیبانی از Go، Java، Python، C#، JavaScript، TypeScript و Kotlin با خروجی SARIF
- دو مدل جدا: یکی برای تشخیص، یکی برای اعتبارسنجی یافتهها
- حساب داتاداگ لازم نیست؛ فقط کلید API یکی از Anthropic، OpenAI یا گوگل
- ایندکس بینفایلی با Tree-sitter ساخته میشه و روی مخزن بزرگ قابل خاموش کردنه




