پرش به محتویات

ایجاد یک برنامه امنیت برنامه مدرن (Establishing a Modern Application Security Program)

لیست‌های OWASP Top Ten اسناد آگاهی‌بخشی هستند که هدفشان جلب توجه به مهم‌ترین ریسک‌ها در حوزه امنیت برنامه است. این لیست‌ها فهرست کامل نیستند و صرفاً نقطه شروع محسوب می‌شوند. نسخه‌های قبلی نشان داده‌اند که شروع یک برنامه امنیت برنامه بهترین راه برای کاهش این ریسک‌ها و دیگر خطرات مرتبط است.

در این بخش، نحوه شروع و ساخت یک برنامه امنیت برنامه مدرن توضیح داده می‌شود.


ارزیابی بلوغ موجود

اگر از قبل برنامه امنیت برنامه دارید، می‌توانید با استفاده از:

بلوغ برنامه خود را ارزیابی کنید. این مدل‌ها جامع هستند و به شما کمک می‌کنند تمرکز خود را برای توسعه و بلوغ برنامه مشخص کنید. توجه داشته باشید که اجرای تمام موارد SAMM یا DSOMM لازم نیست؛ این مدل‌ها صرفاً راهنما هستند و گزینه‌های متعددی ارائه می‌دهند.

اگر برنامه امنیت را از صفر شروع می‌کنید یا SAMM/DSOMM فعلاً برای تیم شما سنگین هستند، توصیه‌های زیر را دنبال کنید:


1. اتخاذ رویکرد مبتنی بر پرتفوی ریسک (Risk-Based Portfolio Approach)

  • شناسایی نیازهای حفاظتی برنامه‌ها از منظر کسب‌وکار، با توجه به قوانین حفظ حریم خصوصی و مقررات داده‌ها.
  • ایجاد مدل ارزیابی ریسک مشترک با مجموعه‌ای ثابت از عوامل احتمال و تأثیر که بازتاب‌دهنده میزان تحمل ریسک سازمان باشد.
  • اندازه‌گیری و اولویت‌بندی تمام برنامه‌ها و APIها و افزودن نتایج به Configuration Management Database (CMDB).
  • تعیین دستورالعمل‌های اطمینان (Assurance Guidelines) برای تعریف پوشش و سطح سخت‌گیری لازم.

2. ایجاد پایه قوی (Enable with a Strong Foundation)

  • تدوین سیاست‌ها و استانداردهای متمرکز برای ایجاد خط پایهٔ امنیت برنامه برای تیم‌های توسعه.
  • تعریف کنترل‌های امنیتی قابل استفاده مجدد که این سیاست‌ها را تکمیل کرده و راهنمای طراحی و توسعه ارائه دهند.
  • ایجاد برنامه‌های آموزشی امنیت برنامه برای نقش‌های مختلف توسعه و موضوعات مرتبط.

3. ادغام امنیت در فرایندهای موجود (Integrate Security into Existing Processes)

  • تعریف و ادغام فعالیت‌های امنیتی در فرایندهای توسعه و عملیاتی موجود.
  • فعالیت‌ها شامل: مدل‌سازی تهدید، طراحی امن، بازبینی طراحی، برنامه‌نویسی امن، بازبینی کد، تست نفوذ و رفع آسیب‌پذیری.
  • ارائه کارشناسان موضوعی و خدمات پشتیبانی برای موفقیت تیم‌های توسعه و پروژه.
  • مرور چرخه حیات توسعه سیستم فعلی و تمام فعالیت‌ها، ابزارها، سیاست‌ها و مستندسازی آن‌ها.
  • برای نرم‌افزار جدید، یک یا چند فعالیت امنیتی به هر فاز SDLC اضافه کنید.
  • برای نرم‌افزار موجود (Legacy)، برنامه نگهداری رسمی داشته باشید.

4. آموزش امنیت برنامه (Application Security Education)


5. فراهم کردن دید مدیریتی (Provide Management Visibility)

  • ارائه Metrics برای تصمیم‌گیری‌های بهبود و تخصیص بودجه بر اساس داده‌ها و تحلیل‌ها.
  • معیارها شامل رعایت فرآیندهای امنیتی، آسیب‌پذیری‌های ایجاد و رفع شده، پوشش برنامه‌ها، چگالی خطاها و تعداد نمونه‌ها هستند.
  • تحلیل داده‌ها برای شناسایی ریشه‌های آسیب‌پذیری و بهبود راهبردی در سازمان.
  • یادگیری از اشتباهات و ارائه مشوق‌های مثبت برای بهبود مستمر.

ایجاد و استفاده از فرآیندهای امنیتی تکرارشونده و کنترل‌های استاندارد

مرحله مدیریت نیازمندی‌ها و منابع (Requirements and Resource Management Phase)

  • جمع‌آوری و مذاکره نیازمندی‌های کسب‌وکار، شامل حفاظت از حریم خصوصی، اصالت، یکپارچگی و دسترسی دارایی‌ها.
  • تدوین نیازمندی‌های فنی شامل امنیت عملکردی و غیرعملکردی، با استفاده از OWASP ASVS به‌عنوان راهنما.
  • برنامه‌ریزی و مذاکره بودجه که تمام مراحل طراحی، ساخت، تست و عملیات امنیتی را پوشش دهد.
  • افزودن فعالیت‌های امنیتی به برنامه زمانی پروژه.
  • معرفی خود به عنوان نماینده امنیت در آغاز پروژه.

درخواست پیشنهادات (RFP) و قراردادها

  • مذاکره نیازمندی‌ها با توسعه‌دهندگان داخلی یا خارجی، شامل SDLC و بهترین شیوه‌های امنیتی.
  • ارزیابی تحقق نیازمندی‌های فنی در فاز برنامه‌ریزی و طراحی.
  • استفاده از قالب‌ها و چک‌لیست‌ها، مانند OWASP Secure Software Contract Annex.
  • توجه: این پیوست براساس قوانین قرارداد آمریکا است؛ پیش از استفاده، مشاوره حقوقی دریافت کنید.

مرحله برنامه‌ریزی و طراحی (Planning and Design Phase)

  • مذاکره برنامه‌ریزی و طراحی با توسعه‌دهندگان و سهامداران، مانند متخصصین امنیت.
  • تعریف معماری امنیت، کنترل‌ها، اقدامات متقابل و بازبینی طراحی با پشتیبانی متخصصین.
  • طراحی امنیت از ابتدا بسیار به‌صرفه‌تر است؛ از OWASP Cheat Sheets و OWASP Proactive Controls به‌عنوان نقطه شروع استفاده کنید.
  • انجام مدل‌سازی تهدید (Threat Modeling).
  • آموزش مفاهیم و الگوهای طراحی امن به معماران نرم‌افزار.
  • بررسی جریان‌های داده با توسعه‌دهندگان.
  • افزودن Security User Stories همراه با دیگر User Stories.

چرخه توسعه امن (Secure Development Lifecycle)

  • استفاده از OWASP SAMM برای بهبود فرآیند سازمان در ساخت برنامه‌ها و APIها.
  • آموزش کدنویسی امن و ارائه ابزارهای امنیتی به توسعه‌دهندگان:
  • Static Analysis
  • Software Composition Analysis
  • Secret Management
  • IaC Scanners
  • ایجاد Guardrails برای تصمیم‌گیری امن، تنظیمات پیش‌فرض امن و ایجاد Paved Roads.
  • بهره‌گیری از OWASP Cheat Sheets و کنترل‌های امنیتی استاندارد در فریم‌ورک‌های مدرن.
  • ارائه پلاگین‌های امنیتی IDE و ابزارهای مدیریت Secret و مستندات.
  • ارائه AI خصوصی با سرور RAG برای فراخوانی ابزارهای امنیتی سازمان و آموزش استفاده ایمن از آن.

ایجاد تست امنیتی مداوم (Continuous Application Security Testing)

  • تست عملکردهای فنی و یکپارچگی با معماری IT.
  • ایجاد test cases از دیدگاه فنی و کسب‌وکار.
  • مدیریت تست‌ها طبق فرآیندهای داخلی، نیازمندی‌های حفاظتی و سطح تهدید.
  • ارائه ابزارهای تست امنیتی (Fuzzers، DAST و غیره) و آموزش نحوه استفاده از آن‌ها.
  • در صورت نیاز، انجام penetration test رسمی و تست‌های استرس و عملکرد.
  • همکاری با توسعه‌دهندگان برای رفع مشکلات گزارش‌شده.

راه‌اندازی برنامه (Rollout)

  • قرار دادن برنامه در عملیات و مهاجرت از برنامه‌های قبلی در صورت نیاز.
  • نهایی‌سازی مستندات شامل CMDB و معماری امنیت.

عملیات و مدیریت تغییر (Operations and Change Management)

  • ارائه دستورالعمل‌های مدیریت امنیت مانند Patch Management.
  • افزایش آگاهی امنیتی کاربران و مدیریت تضاد بین امنیت و قابلیت استفاده.
  • برنامه‌ریزی و مدیریت تغییرات، ثبت همه برنامه‌ها در Inventory و به‌روزرسانی مستندات.
  • اجرای Logging، Monitoring و Alerting برای همه برنامه‌ها.
  • تعریف SLA برای رفع باگ‌های امنیتی.
  • ایجاد تیم پاسخ به حادثه آموزش‌دیده.
  • اجرای ابزارهای Blocking یا Shielding، سخت‌سازی پیکربندی‌ها و تست نفوذ سالانه.
  • به‌روزرسانی برنامه‌های Continuity و Disaster Recovery.

بازنشستگی سیستم‌ها (Retiring Systems)

  • آرشیو داده‌های ضروری و پاکسازی امن داده‌های غیرضروری.
  • بازنشستگی امن برنامه، شامل حذف حساب‌ها، نقش‌ها و دسترسی‌های بلااستفاده.
  • به‌روزرسانی وضعیت برنامه در CMDB به "بازنشسته".

استفاده از OWASP Top 10 به‌عنوان استاندارد

  • OWASP Top 10 عمدتاً سند آگاهی‌بخشی است، اما بسیاری از سازمان‌ها از آن به‌عنوان استاندارد عملیاتی AppSec استفاده کرده‌اند.
  • این سند نقطه شروع و حداقل استاندارد است. برخی ریسک‌ها (مثل A06:2025-Insecure Design) ممکن است فراتر از قابلیت تست ابزارهای استاندارد باشند.
معیار سطح توصیه شده توضیحات
Awareness Yes –
Training Entry level Comprehensive
Design & architecture Occasionally Yes
Coding standard Bare minimum Yes
Secure Code review Bare minimum Yes
Peer review checklist Bare minimum Yes
Unit testing Occasionally Yes
Integration testing Occasionally Yes
Penetration testing Bare minimum Yes
Tool support Bare minimum Yes
Secure Supply Chain Occasionally Yes
Awareness Yes –
  • توصیه می‌شود برای استانداردسازی امنیت برنامه از OWASP ASVS استفاده کنید.
  • ASVS تنها استاندارد قابل قبول برای تولیدکنندگان ابزار است؛ ابزارها نمی‌توانند تمام OWASP Top 10 را شناسایی یا محافظت کنند. OWASP هرگونه ادعای پوشش کامل را نادرست می‌داند.