امنیت وبسایت و اپلیکیشن یکی از مهمترین بخشهای توسعه و نگهداری هر سامانه دیجیتال است. تست امنیت باعث میشود آسیبپذیریها و نقاط ضعف قبل از اینکه هکرها سوءاستفاده کنند شناسایی و برطرف شوند. این کار از نشت اطلاعات کاربران و خسارتهای مالی جلوگیری کرده و اعتماد مشتریان را افزایش میدهد. علاوه بر آن، بسیاری از استانداردها و قوانین بینالمللی مثل 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 (محدود کردن اتصالات همزمان یا در واحد زمان).
ثبت دیدگاه جدید
0 دیدگاه
نشانی ایمیل شما منتشر نخواهد شد. بخشهای موردنیاز علامتگذاری شدهاند *