در حال بارگذاری...
فعالیتهای امنیتی در مرحله توسعه: بررسی کد، تست واحد امنیتی، تحلیل ایستا و بازرسی دستی.
اهداف این درس
فاز ۳ از چارچوب تست امنیت وب OWASP شامل فعالیتهای امنیتی است که در مرحله توسعه و نوشتن کد انجام میشوند. این فاز بسیار مهم است زیرا بسیاری از آسیبپذیریها در همین مرحله ایجاد میشوند و شناسایی زودهنگام آنها هزینه رفع را به شدت کاهش میدهد.
بررسی کد امن (Secure Code Review) فرآیند تحلیل کد نوشتهشده برای شناسایی آسیبپذیریهای امنیتی است. این بررسی میتواند بهصورت دستی توسط توسعهدهندگان دیگر (Peer Review) یا با استفاده از ابزارهای خودکار انجام شود.
تحلیل ایستا (Static Application Security Testing - SAST) تحلیل کد منبع بدون اجرای برنامه است. این ابزارها میتوانند الگوهای آسیبپذیر رایج مثل SQL Injection، XSS و Hardcoded Secrets را شناسایی کنند.
| ابزار | زبانها | ویژگی |
|---|---|---|
| SonarQube | چند زبانه | تحلیل کیفیت و امنیت |
| Semgrep | چند زبانه | قوانین سفارشی |
| CodeQL | چند زبانه | تحلیل عمیق GitHub |
| Bandit | Python | تحلیل امنیتی Python |
| ESLint Security | JavaScript | قوانین امنیتی |
تستهای واحد امنیتی (Security Unit Tests) تستهایی هستند که رفتار امنیتی کد را بررسی میکنند. این تستها باید برای تمام ورودیها، مکانیزمهای احراز هویت و کنترل دسترسی نوشته شوند.
بازرسی دستی کد توسط متخصص امنیت میتواند آسیبپذیریهایی را شناسایی کند که ابزارهای خودکار قادر به تشخیص آنها نیستند. این شامل آسیبپذیریهای منطقی، پیکربندیهای نادرست و مشکلات معماری است.
ادغام در CI/CD
ابزارهای SAST باید در خط لوله CI/CD ادغام شوند تا هر بار که کد جدید ارسال میشود، بهصورت خودکار تحلیل شود. این کار تضمین میکند که آسیبپذیریها فوراً شناسایی شوند.
هشدار
ابزارهای SAST ممکن است نتایج کاذب (False Positive) زیادی تولید کنند. همیشه نتایج را بهصورت دستی بررسی کنید و فقط آسیبپذیریهای واقعی را رفع کنید.
خروجیهای اصلی فاز ۳ شامل گزارش آسیبپذیریهای شناساییشده، کد اصلاحشده، تستهای واحد امنیتی و گزارش تحلیل ایستا هستند. این خروجیها ورودیهای مهمی برای فاز استقرار (فاز ۴) هستند.
توصیه عملی
بررسی کد را به بخشی از فرآیند توسعه تبدیل کنید. هر Pull Request باید حداقل توسط یک توسعهدهنده دیگر بررسی شود.
بررسی کد باید بخشی از فرآیند توسعه باشد.
تستهای واحد امنیتی باید برای تمام ورودیها نوشته شوند.
ابزارهای SAST باید در CI/CD ادغام شوند.
آسیبپذیریها در این مرحله ارزانتر رفع میشوند.
کدام فعالیت در فاز ۳ (توسعه) انجام میشود؟
چه فعالیتهای امنیتی باید در مرحله توسعه انجام شود؟
در مرحله توسعه باید: ۱) بررسی کد امن (Secure Code Review)، ۲) تستهای واحد امنیتی، ۳) تحلیل ایستا (SAST)، ۴) بازرسی دستی، ۵) تست یکپارچگی امنیتی انجام شود.
SAST چیست و چه مزایایی دارد؟
SAST (Static Application Security Testing) تحلیل کد منبع بدون اجرای برنامه است. مزایای آن شامل: شناسایی زودهنگام آسیبپذیریها، قابلیت ادغام در CI/CD، و پوشش بالای کد است.