SAST مخفف Static Application Security Testing یا آزمون امنیت ایستای نرمافزار است. ابزار SAST سورس کد یا نمایش میانی آن را بدون نیاز به اجرای سناریوی واقعی برنامه برای الگوهای آسیبپذیری تحلیل میکند. این روش در IDE و پایپلاین CI کاربرد دارد.
| ابزار | اکوسیستم نمونه | ویژگی |
|---|---|---|
| Semgrep | چند زبان از جمله PHP، Go، Python و JS | قواعد قابل تنظیم |
| CodeQL | GitHub و چند زبان | تحلیل جریان داده و کوئری |
| SonarQube | توسعه چندزبانه | کیفیت کد و قواعد امنیتی |
| PHPStan / Psalm | PHP | تحلیل نوع و برخی خطاهای مرتبط با صحت، نه جایگزین اسکن امنیتی |
| Bandit | Python | قواعد امنیتی برای پایتون |
| gosec | Go | تحلیل الگوهای ناامن در 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 همیشه آسیبپذیری واقعی نیست. شدت و زمینه اجرا را بررسی کنید. از سوی دیگر، نبودن هشدار نیز اثبات امن بودن برنامه نیست.
اصطلاحات مرتبط: تست امنیت پویای نرمافزار، اسسیای، سیدبلیوای، اوواسپ، تست امنیت نرمافزار، یکپارچهسازی و تحویل/استقرار مداوم.