SAST مخفف Static Application Security Testing یا آزمون امنیت ایستای نرم‌افزار است. ابزار SAST سورس کد یا نمایش میانی آن را بدون نیاز به اجرای سناریوی واقعی برنامه برای الگوهای آسیب‌پذیری تحلیل می‌کند. این روش در IDE و پایپ‌لاین CI کاربرد دارد.

ابزاراکوسیستم نمونهویژگی
Semgrepچند زبان از جمله PHP، Go، Python و JSقواعد قابل تنظیم
CodeQLGitHub و چند زبانتحلیل جریان داده و کوئری
SonarQubeتوسعه چندزبانهکیفیت کد و قواعد امنیتی
PHPStan / PsalmPHPتحلیل نوع و برخی خطاهای مرتبط با صحت، نه جایگزین اسکن امنیتی
BanditPythonقواعد امنیتی برای پایتون
gosecGoتحلیل الگوهای ناامن در Go

مثال در محیط توسعه

# Run locally on a repository you are authorized to scan
python -m pip install semgrep
semgrep scan --config auto .

مثلاً اگر مقدار ورودی کنترل‌نشده مستقیماً وارد ساخت کوئری SQL شود، تحلیل جریان داده ممکن است مسیر آن را علامت بزند. اما SAST معمولاً ضعف منطقی مثل «کاربر A سفارش کاربر B را می‌بیند» را به‌تنهایی تشخیص نمی‌دهد.

خطای مثبت و منفی

هشدار SAST همیشه آسیب‌پذیری واقعی نیست. شدت و زمینه اجرا را بررسی کنید. از سوی دیگر، نبودن هشدار نیز اثبات امن بودن برنامه نیست.

اصطلاحات مرتبط: تست امنیت پویای نرم‌افزار، اس‌سی‌ای، سی‌دبلیو‌ای، اوواسپ، تست امنیت نرم‌افزار، یکپارچه‌سازی و تحویل/استقرار مداوم.