استانداردهای امنیت وب سایت و اپلیکیشن و چک‌ لیست امنیت

استانداردهای امنیت وب سایت و اپلیکیشن و چک‌ لیست امنیت

 امنیت وب‌سایت و اپلیکیشن یکی از مهم‌ترین بخش‌های توسعه و نگهداری هر سامانه دیجیتال است. تست امنیت باعث می‌شود آسیب‌پذیری‌ها و نقاط ضعف قبل از اینکه هکرها سوءاستفاده کنند شناسایی و برطرف شوند. این کار از نشت اطلاعات کاربران و خسارت‌های مالی جلوگیری کرده و اعتماد مشتریان را افزایش می‌دهد. علاوه بر آن، بسیاری از استانداردها و قوانین بین‌المللی مثل GDPR و PCI DSS الزام به تست امنیت دارند. در نهایت، تست امنیت به کاهش هزینه‌های احتمالی، حفظ اعتبار برند و استمرار خدمات کمک می‌کند.

 

 

استانداردها و فریمورکهای اصلی برای تست امنیت وبسایت

1. OWASP WSTG - Web Security Testing Guide

OWASP WSTG  - Web Security Testing Guide یک راهنمای جامع برای تست امنیت وب‌سایت‌ها و وب‌اپلیکیشن‌ها است.  این راهنما به توسعه‌دهندگان و تسترها کمک می‌کند آسیب‌پذیری‌ها را شناسایی و رفع کنند قبل از سوءاستفاده مهاجمان.  WSTG شامل بخش‌هایی مانند جمع‌آوری اطلاعات، احراز هویت، مدیریت نشست، کنترل دسترسی و اعتبارسنجی ورودی است.  این استاندارد برای چک‌لیست تست نفوذ و بررسی امنیتی قابل استفاده است.  هدف اصلی آن افزایش امنیت، کاهش ریسک هک و محافظت از داده‌های کاربران است.

 

  • معتبرترین راهنما برای تست امنیت وب‌اپلیکیشن‌ها
  • شامل فصل‌بندی کامل تست‌ها: جمع‌آوری اطلاعات، پیکربندی، احراز هویت، مدیریت نشست، دسترسی، اعتبارسنجی ورودی/خروجی، منطق کسب‌وکار، API و …
  • یک مرجع عملیاتی و چک‌لیست کامل برای تسترهای امنیت

 

2. OWASP ASVS - Application Security Verification Standard

استاندارد OWASP ASVS (Application Security Verification Standard) یک چارچوب باز و جامع برای ارزیابی و تایید کنترل‌های امنیتی فنی در برنامه‌های وب و سرویس‌هاست. این استاندارد مجموعه‌ای ساختاریافته از الزامات امنیتی را در سطوح مختلف اطمینان (L1، L2، L3) ارائه می‌دهد تا متناسب با حساسیت و ریسک هر سامانه استفاده شود. هدف آن یکسان‌سازی کیفیت و عمق آزمون‌های امنیتی و ارائه راهنمای عملی برای توسعه‌دهندگان، تست‌کنندگان و خریداران نرم‌افزار است. ASVS می‌تواند در تمام چرخه عمر توسعه، از طراحی تا استقرار و نگهداری، به‌عنوان چک‌لیست امنیتی به کار رود. استفاده از آن باعث افزایش شفافیت، کاهش آسیب‌پذیری‌ها و ایجاد اعتماد بیشتر به امنیت نرم‌افزار می‌شود.

 

  • استاندارد سطح‌بندی برای معیار پذیرش امنیتی
  • شامل سطوح مختلف (L1، L2، L3) بسته به حساسیت اپلیکیشن (مثلاً بانکی یا فروشگاهی)
  • بیشتر برای کدنویسی امن و پذیرش محصول توسط تیم توسعه و امنیت استفاده می‌شود

 

3. OWASP Top 10

OWASP Top 10 فهرستی از ۱۰ آسیب‌پذیری رایج و پرخطر وب‌اپلیکیشن‌ها است.  هدف آن آگاه‌سازی توسعه‌دهندگان و تسترها درباره شایع‌ترین تهدیدها و کاهش ریسک امنیتی است.  این فهرست شامل مشکلاتی مانند Injection، XSS، Broken Authentication، Sensitive Data Exposure و Security Misconfiguration است.  OWASP Top 10 به عنوان چک‌لیست اولیه امنیت وب برای توسعه و تست کاربرد دارد.  با رعایت آن، می‌توان امنیت وب‌سایت‌ها و اپلیکیشن‌ها را به شکل قابل توجهی افزایش داد.

 

 آخرین نسخه شامل این موارد است:

  • Broken Access Control – ضعف در کنترل دسترسی کاربران به منابع.
  • Cryptographic Failures – مشکلات در رمزنگاری یا محافظت از داده‌ها.
  • Injection – تزریق کد مخرب مثل SQLi یا LDAP Injection.
  • Insecure Design – طراحی اولیه ناامن در معماری یا منطق برنامه.
  • Security Misconfiguration – پیکربندی اشتباه یا پیش‌فرض ناامن.
  • Vulnerable & Outdated Components – استفاده از کتابخانه یا نرم‌افزار قدیمی و آسیب‌پذیر.
  • Identification & Authentication Failures – ضعف در احراز هویت و مدیریت نشست‌ها.
  • Software & Data Integrity Failures – نبود اطمینان از صحت کد و داده‌ها (مثل نبود امضای دیجیتال).
  • Security Logging & Monitoring Failures – ثبت و مانیتورینگ ناکافی رخدادهای امنیتی.
  • Server-Side Request Forgery / SSRF – امکان ارسال درخواست غیرمجاز از سمت سرور.

 

4. NIST SP 800-115 (Technical Guide to Information Security Testing and Assessment)

NIST SP 800-115 توسط National Institute of Standards and Technology )NIST) منتشر شده و هدف آن ارائه چارچوب و روش استاندارد برای تست امنیتی سیستم‌ها و شبکه‌ها است. این سند به سازمان‌ها کمک می‌کند تا ضعف‌ها و آسیب‌پذیری‌های امنیتی را قبل از اینکه مهاجمان سوءاستفاده کنند، شناسایی و رفع کنند.

 

NIST SP 800-115 سه نوع تست اصلی را معرفی می‌کند:

  • Black-box testing
    • تستر هیچ دسترسی به اطلاعات داخلی سیستم ندارد.
    • مشابه حمله یک مهاجم واقعی از خارج شبکه است.

       
  • White-box testing
    • تستر به تمام اطلاعات داخلی سیستم، کدها و پیکربندی دسترسی دارد.
    • برای بررسی دقیق امنیت و شناسایی آسیب‌پذیری‌های پنهان استفاده می‌شود.
       
  • Grey-box testing
    • ترکیبی از Black-box و White-box است.
    • تستر بخشی از اطلاعات داخلی را دارد تا حمله واقعی را شبیه‌سازی کند و ضعف‌ها را شناسایی کند.

 

 

5. ISO/IEC 27001 + ISO/IEC 27002

ISO/IEC 27001: 

استاندارد ISO/IEC 27001 چارچوبی بین‌المللی برای ایجاد، پیاده‌سازی، نگهداری و بهبود مستمر سیستم مدیریت امنیت اطلاعات (ISMS) است. این استاندارد بر پایه رویکرد مدیریت ریسک بنا شده و به سازمان‌ها کمک می‌کند تا محرمانگی، یکپارچگی و دسترس‌پذیری اطلاعات را در برابر تهدیدات داخلی و خارجی حفاظت کنند. الزامات آن شامل تدوین سیاست‌ها، ارزیابی ریسک، اجرای کنترل‌های امنیتی و پایش مستمر اثربخشی آنهاست. هدف اصلی، ایجاد سیستمی ساختاریافته برای پیشگیری و واکنش به رخدادهای امنیتی است. انطباق با ISO/IEC 27001 اعتماد ذی‌نفعان را افزایش داده و ریسک‌های امنیتی را به حداقل می‌رساند.

 

ISO/IEC 27002: 

 استاندارد ISO/IEC 27002 مجموعه‌ای از راهنمایی‌ها و بهترین‌روش‌ها برای انتخاب و پیاده‌سازی کنترل‌های امنیت اطلاعات است که مکمل ISO/IEC 27001 محسوب می‌شود. این استاندارد ساختاریافته، ۱۴ حوزه کنترلی مانند سیاست‌های امنیتی، امنیت فیزیکی، امنیت منابع انسانی، مدیریت دسترسی، رمزنگاری و پاسخ‌گویی به رخدادها را پوشش می‌دهد. هدف آن کمک به سازمان‌ها برای انتخاب کنترل‌هایی متناسب با ارزیابی ریسک و الزامات قانونی است. هر کنترل شامل هدف، توضیح و روش پیاده‌سازی پیشنهادی است. استفاده از ISO/IEC 27002 باعث می‌شود چارچوب امنیتی سازمان دقیق‌تر، یکپارچه‌تر و مطابق با استانداردهای بین‌المللی عمل کند.

 

6. PCI DSS (برای وب‌سایت‌های مالی/پرداخت)

 PCI DSS یا Payment Card Industry Data Security Standard یک استاندارد جهانی امنیت اطلاعات است که توسط برندهای بزرگ کارت اعتباری برای حفاظت از داده‌های کارت و تراکنش‌ها ایجاد شده است. این چارچوب شامل ۱۲ الزام در ۶ حوزه اصلی مانند شبکه امن، رمزنگاری داده، کنترل دسترسی، پایش، تست و سیاست‌های امنیتی است. هدف آن کاهش تقلب، جلوگیری از نشت اطلاعات و تضمین امنیت پرداخت‌های الکترونیک است. سازمان‌ها بسته به حجم تراکنش، ملزم به ممیزی یا خودارزیابی منظم و اسکن امنیتی هستند. رعایت PCI DSS نه‌تنها الزامی قانونی در بسیاری از کشورهاست، بلکه به افزایش اعتماد مشتری و کاهش ریسک هم کمک می‌کند.

 این استاندارد توسط صنعت کارت‌های اعتباری (Visa, Mastercard, American Express و غیره) ایجاد شده است.

 

 استانداردها و فریم‌ورک‌های اصلی برای تست امنیت اپلیکیشن

 

 1. OWASP MASVS (Mobile Application Security Verification Standard)

استاندارد OWASP MASVS (Mobile Application Security Verification Standard) مرجع جهانی برای تعریف الزامات امنیتی و حریم خصوصی در اپلیکیشن‌های موبایل است. این چارچوب حوزه‌هایی مانند ذخیره‌سازی امن داده، رمزنگاری، احراز هویت، ارتباطات شبکه‌ای امن، تعامل ایمن با پلتفرم، به‌روزرسانی و پردازش داده، مقاومت در برابر مهندسی معکوس و کنترل‌های حریم خصوصی را پوشش می‌دهد. MASVS به توسعه‌دهندگان، معماران نرم‌افزار و تست‌کنندگان کمک می‌کند تا امنیت را از مرحله طراحی تا انتشار به‌صورت ساختاریافته و قابل‌سنجش پیاده‌سازی کنند. استفاده از آن باعث افزایش تاب‌آوری اپلیکیشن در برابر تهدیدات و ایجاد اعتماد بیشتر کاربران می‌شود.

 

  •  استاندارد مخصوص اپلیکیشن‌های موبایل (Android/iOS)
  •  سطح‌بندی امنیتی (MASVS-L1، MASVS-L2 و R)
  •  شامل کنترل‌های امنیتی برای ذخیره داده، احراز هویت، رمزنگاری، ارتباط امن، کدنویسی امن، Reverse Engineering مقاومت و …

 

 

 2.  OWASP MASTG (Mobile Application Security Testing Guide)

 OWASP MASTG (Mobile Application Security Testing Guide) یک راهنمای جامع و متن‌باز برای آزمون امنیتی و مهندسی معکوس اپلیکیشن‌های موبایل است که به‌عنوان مرجع عملی برای پیاده‌سازی و ارزیابی کنترل‌های تعریف‌شده در OWASP MASVS عمل می‌کند. این سند روش‌های فنی برای تست امنیتی در پلتفرم‌های Android و iOS، شامل تحلیل ایستا، تحلیل پویا، بررسی کد، و تکنیک‌های مهندسی معکوس را پوشش می‌دهد. هدف آن ارائه رویکردی ساختاریافته و قابل‌تکرار برای شناسایی آسیب‌پذیری‌ها و ارزیابی مقاومت اپلیکیشن در برابر تهدیدات است. استفاده از MASTG باعث می‌شود تیم‌های توسعه و امنیت بتوانند آزمون‌های دقیق‌تر، استانداردتر و موثرترین انجام دهند.

 

  •  مکمل MASVS
  •  راهنمای عملی برای تست امنیت موبایل
  •  شامل روش‌ها، ابزارها و سناریوهای تست (Black-box و White-box)

  

 3. OWASP ASVS (Application Security Verification Standard)

  •  استاندارد عمومی برای تمام اپلیکیشن‌ها (وب، API، موبایل، دسکتاپ)
  •  تمرکز روی کنترل‌های امنیتی مثل: احراز هویت، نشست، مدیریت ورودی/خروجی، رمزنگاری، لاگ‌گیری و …
  •  در پروژه‌هایی که اپلیکیشن سمت کلاینت (Mobile/Desktop) با API بک‌اند کار می‌کند، خیلی کاربردی است

 

 4. OWASP Top 10 (Web & Mobile) 

  •  برای وب و موبایل (OWASP Mobile Top 10) لیست رایج‌ترین آسیب‌پذیری‌ها
  •  بیشتر برای اولویت‌بندی ریسک‌ها و تمرکز روی نقاط حساس استفاده می‌شود

 

5.  NIST SP 800-163 (Vetting Mobile Applications)

 استاندارد NIST SP 800-163 با عنوان Vetting the Security of Mobile Applications راهنمایی برای ارزیابی و اطمینان از امنیت اپلیکیشن‌های موبایل ارائه می‌دهد. این سند فرآیند «بررسی و تأیید» را از مرحله توسعه تا قبل و بعد از استقرار پوشش می‌دهد و شامل معیارهایی مانند منبع اپلیکیشن، حساسیت داده‌ها، بستر سخت‌افزاری و محیط اجرا است. همچنین به استفاده از چارچوب‌ها و منابعی مانند OWASP Mobile, NIAP و NIST SP 800-53 برای تعریف الزامات امنیتی و انتخاب ابزارهای تست مناسب اشاره می‌کند. هدف اصلی آن کاهش آسیب‌پذیری‌ها و اطمینان از انطباق اپلیکیشن با سیاست‌ها و نیازهای امنیتی سازمان است.

 

  •  استاندارد NIST برای بررسی امنیت اپلیکیشن‌های موبایل
  •  بیشتر روی چرخه‌ی توسعه امن (Secure SDLC) و معیارهای انتخاب اپلیکیشن‌های امن تمرکز دارد

  

 6. ISO/IEC 27034 (Application Security)

 استاندارد ISO/IEC 27034 چارچوبی بین‌المللی برای مدیریت امنیت در چرخه عمر اپلیکیشن‌ها است که به سازمان‌ها کمک می‌کند الزامات امنیتی را از مرحله طراحی تا استقرار و نگهداری، به‌صورت یکپارچه پیاده‌سازی کنند. این استاندارد مفاهیم، اصول و فرآیندهایی را ارائه می‌دهد که هم برای نرم‌افزارهای توسعه‌یافته داخلی و هم برای محصولات خریداری‌شده یا برون‌سپاری‌شده کاربرد دارد. رویکرد آن بر شناسایی نیازهای امنیتی، انتخاب و اجرای کنترل‌های مناسب، و استفاده از کتابخانه‌های کنترل امنیتی قابل‌استفاده مجدد متمرکز است. هدف اصلی، کاهش ریسک‌های امنیتی، افزایش کیفیت و اطمینان‌پذیری اپلیکیشن‌ها و همسویی با سایر استانداردهای مدیریت امنیت اطلاعات است.

  •  استاندارد بین‌المللی برای مدیریت امنیت اپلیکیشن‌ها
  •  رویکرد مدیریتی و فرآیندی دارد (نه صرفاً تست فنی)

 

 7. PCI DSS (اگر اپلیکیشن مالی/پرداختی باشد)

  •  برای اپلیکیشن‌هایی که پرداخت آنلاین و کارت بانکی دارند، باید الزامات PCI DSS رعایت شود
  •  شامل رمزنگاری تراکنش، مدیریت کلیدها، لاگ‌گیری، تست نفوذ دوره‌ای

 

 

 چک‌لیست تست امنیتی وب‌سایت و اپلیکیشن

 

۱. احراز هویت (Authentication)

  • رمز عبور قوی (حداقل طول و پیچیدگی).
  • محافظت در برابر Brute Force (Rate Limiting / Lockout).
  • فعال‌سازی 2FA در صورت امکان.
  • مدیریت امن بازیابی رمز عبور (یک‌بارمصرف با زمان انقضا  Token ).
  • بررسی امنیت JWT یا  Session ID (تصادفی، غیرقابل پیش‌بینی، Expire)

 

۲. مدیریت نشست (Session Management)

  • کوکی‌ها با HttpOnly، Secure، SameSite.
  • انقضای نشست پس از مدت زمان عدم فعالیت.
  • پایان دادن به نشست پس از Logout.
  • جلوگیری از  Session Fixation (ایجاد ID جدید پس از Login)

 

۳. کنترل دسترسی (Access Control)

  • تست عمودی (کاربر عادی نتواند به بخش Admin دسترسی داشته باشد)
  • تست افقی  (IDOR: کاربر A نتواند داده‌های کاربر B را ببیند)
  • بررسی APIها برای دسترسی غیرمجاز   (BOLA  در API)
  • بررسی Least Privilege برای کاربران.

 

۴. اعتبارسنجی ورودی و خروجی (Input/Output Validation)

  • تست SQL Injection و NoSQL Injection.
  • تست XSS و CSRF.
  • تست Command Injection / File Inclusion.
  • ولیدیشن سمت کلاینت و سمت سرور.
  • Escaping/Encoding مناسب برای خروجی‌ها.

 

۵. ارتباط امن (Communication)

  • استفاده از  (TLS 1.2 یا بالاتر)
  • HSTS فعال باشد.
  • گواهی SSL معتبر و بدون خطاهای Trust.
  • بررسی امنیت CORS Policy (عدم دسترسی همه-Originها)

 

۶. پیکربندی و استقرار (Configuration & Deployment)

  • غیرفعال بودن خطاها و Exception ها در محیط Production.
  • حذف حساب‌های پیش‌فرض و Credential های تستی.
  • بررسی Header های امنیتی   (CSP، X-Frame-Options، X-Content-Type-Options، Referrer-Policy)
  • حداقل سطح دسترسی برای سرویس‌ها و فایل‌ها.
  • جلوگیری از Directory Listing

 

۷. مدیریت داده و فایل

  • رمزنگاری داده‌های حساس در Database   (bcrypt/argon2 برای رمز عبور)
  • تست امنیت Upload فایل (نوع، اندازه، مسیر ذخیره خارج از webroot، اسکن).
  • جلوگیری از اجرای فایل‌های آپلودی در سرور.

 

۸. خطا و لاگ (Error & Logging)

  • پیام خطا اطلاعات حساس لو ندهد (SQL Error، Stack Trace و).
  • رویدادهای مهم لاگ شوند (Login، خطاهای امنیتی، تغییر دسترسی).
  • محافظت از لاگ‌ها (عدم دسترسی عمومی، عدم تغییر توسط کاربر عادی).

 

۹. منطق کسب‌وکار (Business Logic)

  • تست Bypass قوانین تجاری (مثلاً دور زدن مرحله پرداخت).
  • بررسی حملات Race Condition (تراکنش همزمان).
  • بررسی محدودیت‌ها (مثلاً اعمال تخفیف چندباره غیرمجاز).

 

۱۰. API و میکروسرویس‌ها

  • احراز هویت و کنترل دسترسی برای همه Endpointها.
  • Rate Limiting فعال باشد.
  • ولیدیشن JSON/XML ورودی.
  • جلوگیری از افشای اطلاعات زیاد در Response (Verbose Errors, Stack Trace).

 

۱۱. سایر موارد اپلیکیشن

  • تست CSRF در فرم‌ها (وجود CSRF Token معتبر).
  • بررسی امنیت LocalStorage/SessionStorage (عدم ذخیره رمز یا Token خام).
  • تست Clickjacking (X-Frame-Options یا CSP فعال باشد).
  • تست DoS پایه‌ای (Rate Limit, Resource Exhaustion).

 

۱۲. امنیت شبکه و سرور

  • بررسی باز بودن پورت‌ها و سرویس‌ها (فقط پورت‌های ضروری).
  • فایروال فعال و تنظیم شده باشد.
  • جلوگیری از دسترسی مستقیم به سرورها از اینترنت.
  • تست حملات شبکه‌ای پایه‌ای (Port Scanning, Ping Flood).
  • استفاده از VPN/SSH امن برای مدیریت سرورها.

 

۱۳. امنیت دیتابیس

  • رمزگذاری دسترسی به دیتابیس و استفاده از رمز قوی برای کاربران (خصوصاً root/admin).
  • محدود کردن دسترسی‌ها (Least Privilege) برای کاربران دیتابیس.
  • جلوگیری از اتصال مستقیم دیتابیس از خارج شبکه.
  • بررسی پشتیبان‌گیری امن (Backup Encryption).
  • تست SQL Injection در تمام ورودی‌های دیتابیس.

 

۱۴. امنیت DNS و زیرساخت شبکه

  • بررسی امنیت DNS Server (عدم پاسخ به درخواست‌های غیرمجاز).
  • بررسی DNS Zone Transfer (غیرفعال مگر ضروری).
  • بررسی DNS Cache Poisoning و Hijacking.
  • استفاده از DNSSEC برای صحت داده‌های DNS.
  • مانیتورینگ تغییرات DNS.

 

۱۵. حملات شبکه و وب

  • تست حملات DoS / DDoS پایه‌ای.
  • بررسی حملات Man-in-the-Middle (MitM).
  • بررسی حملات ARP Spoofing / Poisoning.
  • تست Brute Force و Dictionary روی سرویس‌ها و دیتابیس.
  • بررسی آسیب‌پذیری‌های SSL/TLS (POODLE, Heartbleed).
  • شناسایی و جلوگیری از Open Ports غیرضروری و سرویس‌های ناامن.

 

۱۶. حملات لایه انتقال (Transport Layer Attacks)

  • TCP SYN Flood و UDP Flood.
  • TCP Reset / Session Hijacking.
  • Port Scanning و Fingerprinting.
  • SSL/TLS Exploits (Heartbleed, BEAST, POODLE).
  • Connection Rate Limiting (محدود کردن اتصالات همزمان یا در واحد زمان).

 

نویسنده :
مجید پورداود
  • مجید پورداود
  • مهندس نرم افزار و تحلیلگر ارشد سیستم های کامپیوتری تحت وب می باشم. از سال 1395 برنامه نویسی را شروع کردم و به زبان های php (فریم ورک laravel -codeigniter)  و زبان جاوا اسکریپت (فریم ورک express.js-nest.js)  تسلط دارم.  

ثبت دیدگاه جدید

0 دیدگاه

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *