ارزیابی امنیتی و آزمون نفوذ برنامه کاربردی وب

ما با استفاده از متدولوژی‌های OWASP WSTG و ASVS، آسیب‌پذیری‌های امنیتی وب اپلیکیشن‌ها شامل تزریق SQL، XSS، نقص احراز هویت و پیکربندی‌های نادرست امنیتی را شناسایی و ارزیابی می‌کنیم.

OWASP WSTGOWASP ASVSCVSS ScoringPCI-DSS
۴
متدولوژی مرجع
۹۱
دسته‌ی آزمون OWASP WSTG
۲۸۶
کنترل OWASP ASVS
۱۰ از ۱۰
ریسک OWASP Top 10

خدمات ارزیابی امنیتی و آزمون نفوذ برنامه کاربردی وب

انتخاب سرویس متناسب با نیاز سازمان شما

پوشش کامل OWASP Top 10 (2021)

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

A01

کنترل دسترسی شکسته

A02

نقص‌های رمزنگاری

A03

تزریق

A04

طراحی ناامن

A05

پیکربندی نادرست

A06

کامپوننت‌های آسیب‌پذیر

A07

نقص احراز هویت

A08

نقص یکپارچگی

A09

نقص ثبت وقایع

A10

SSRF

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

وب اپلیکیشن‌ها اولین خط مقابله با مهاجمان هستند و نیاز به تست‌های امنیتی جامع دارند

بردار اصلی حمله

وب اپلیکیشن از بیرون در دسترس است و همیشه روشن. برای مهاجمی که هدف مشخصی دارد، نخستین جایی است که امتحان می‌کند، چون نه به دسترسی داخلی نیاز دارد و نه به فریب یک کارمند.

خطرات نقض داده

تزریق SQL، XSS و احراز هویت شکسته می‌توانند داده‌های حساس مشتریان، اطلاعات مالی و اسرار تجاری را افشا کنند.

الزامات انطباقی

PCI-DSS، ISO 27001 و سایر مقررات نیاز به ارزیابی امنیتی منظم وب اپلیکیشن‌هایی دارند که داده‌های حساس را مدیریت می‌کنند.

تداوم کسب‌وکار

آسیب‌پذیری‌های امنیتی می‌توانند منجر به اختلال سرویس، خسارات مالی و آسیب به اعتبار شوند که کسب‌وکار شما را تحت تأثیر قرار می‌دهد.

چه چیزهایی را تست می‌کنیم؟

پوشش جامع تمام جنبه‌های امنیتی وب اپلیکیشن بر اساس OWASP

شناسایی و جمع‌آوری اطلاعات
پیش از هر تستی باید بدانیم با چه چیزی روبه‌رو هستیم: دامنه‌ها و زیردامنه‌ها، فناوری پشت اپلیکیشن، مسیرهای پنهان، و نسخه‌های قدیمی که هنوز در دسترس‌اند.
  • نگاشت دامنه‌ها و زیردامنه‌ها
  • شناسایی فناوری و نسخه‌ها
  • کشف مسیرها و فایل‌های رهاشده
  • بررسی موتورهای جست‌وجو و مخازن عمومی
پیکربندی و استقرار
سرور، فریم‌ورک و سرویس‌های جانبی اغلب با تنظیمات پیش‌فرض بالا می‌آیند. این بخش سراغ همان تنظیمات می‌رود: هدرهای امنیتی، مدیریت خطا، فایل‌های جامانده، و رابط‌های مدیریتی که نباید از بیرون دیده شوند.
  • هدرهای امنیتی و سیاست محتوا
  • رابط‌های مدیریتی در دسترس
  • فایل‌های پیکربندی و پشتیبان
  • مدیریت خطا و صفحات پیش‌فرض
  • پیکربندی TLS
مدیریت هویت
نقش‌ها و چرخه‌ی ساخت حساب را بررسی می‌کنیم: آیا می‌توان حسابی با دسترسی بالاتر ساخت، نام کاربری دیگران را حدس زد، یا از فرایند ثبت‌نام برای شمارش کاربران استفاده کرد.
  • تعریف نقش‌ها و سطوح دسترسی
  • فرایند ثبت‌نام و تأیید
  • شمارش کاربران
  • سیاست نام کاربری و رمز
احراز هویت
هر مسیری که کاربر را وارد می‌کند یک نقطه‌ی ورود است: فرم ورود، بازیابی رمز، ورود با سرویس‌های دیگر، و تأیید دومرحله‌ای. هرکدام را جداگانه و در کنار هم می‌سنجیم.
  • فرم ورود و محدودیت تلاش
  • بازیابی و تغییر رمز
  • ورود یکپارچه و OAuth
  • تأیید دومرحله‌ای
  • ذخیره‌سازی رمز
کنترل دسترسی
در OWASP Top 10 سال ۲۰۲۱، کنترل دسترسی شکسته در جایگاه نخست است. با چند حساب هم‌زمان تست می‌کنیم تا ببینیم آیا کاربری می‌تواند داده یا عملیات کاربر دیگر را ببیند یا انجام دهد.
  • دسترسی افقی میان کاربران هم‌سطح
  • دسترسی عمودی به نقش بالاتر
  • ارجاع مستقیم به شناسه‌ی اشیا
  • کنترل دسترسی در لایه‌ی API
مدیریت نشست
نشست از لحظه‌ی ساخت تا خروج دنبال می‌شود: چگونگی تولید و ذخیره‌ی توکن، رفتار کوکی‌ها، انقضا، و اینکه خروج واقعاً نشست را باطل می‌کند یا فقط مرورگر را پاک می‌کند.
  • تولید و پیش‌بینی‌پذیری توکن
  • صفات کوکی و دامنه‌ی آن
  • انقضا و تمدید نشست
  • ابطال نشست هنگام خروج و تغییر رمز
اعتبارسنجی ورودی و تزریق
هر جایی که ورودی کاربر به یک مفسر می‌رسد بررسی می‌شود: پایگاه داده، فرمان سیستم‌عامل، موتور قالب، مسیر فایل، و درخواست‌هایی که سرور به جای کاربر می‌فرستد.
  • SQL Injection و NoSQL Injection
  • Command Injection
  • Server-Side Template Injection
  • Path Traversal
  • Server-Side Request Forgery
مدیریت خطا و رمزنگاری
پیام‌های خطا و داده‌های در حال انتقال و ذخیره را می‌سنجیم: چه چیزی در خطاها درز می‌کند، از چه الگوریتمی برای محافظت از رمزها استفاده شده، و پیکربندی TLS چه وضعی دارد.
  • افشای اطلاعات در پیام خطا
  • الگوریتم و نمک‌گذاری رمزها
  • رمزنگاری داده‌های حساس
  • پیکربندی TLS و گواهی
منطق کسب‌وکار
این بخش را ابزار خودکار پیدا نمی‌کند. جریان‌های واقعی اپلیکیشن را دنبال می‌کنیم: سبد خرید، پرداخت، تخفیف، گردش تأیید، و هر جایی که ترتیب یا تکرار مراحل نتیجه را عوض کند.
  • دور زدن مراحل یک فرایند
  • تکرار درخواست و شرایط مسابقه
  • دستکاری قیمت و تخفیف
  • سوءاستفاده از محدودیت‌های کسب‌وکار
سمت کلاینت و APIها
کد داخل مرورگر و APIهایی که پشت آن کار می‌کنند: XSS و دستکاری DOM، CSRF، محتوایی که از دامنه‌های دیگر بارگذاری می‌شود، و رفتار APIها وقتی مستقیم و بدون رابط کاربری صدا زده شوند.
  • Cross-Site Scripting و DOM
  • Cross-Site Request Forgery
  • Clickjacking و سیاست فریم
  • CORS و منابع دامنه‌های دیگر
  • APIهای REST و GraphQL

تست با چه سطحی از دسترسی انجام شود؟

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

جعبه‌سیاه
بدون اطلاعات و بدون حساب کاربری

از همان جایی شروع می‌کنیم که یک مهاجم بیرونی شروع می‌کند. این نزدیک‌ترین تصویر به حمله‌ی واقعی است، اما ممکن است بخش‌هایی از اپلیکیشن در زمان تست اصلاً دیده نشود.

جعبه‌خاکستری
حساب کاربری و شناخت کلی از معماری

در همان زمان پوشش بیشتری به دست می‌آید، چون تلاش تیم صرف تست می‌شود نه کشف. بیشتر ارزیابی‌ها را با همین سطح انجام می‌دهیم.

جعبه‌سفید
دسترسی به کد و مستندات

برای یافتن نقص‌های منطقی و مسیرهایی که از بیرون پیدا نمی‌شوند مناسب است و معمولاً کنار بازبینی کد می‌نشیند.

دامنه‌ی ارزیابی و آنچه از شما لازم است

کیفیت نتیجه بیش از هر چیز به آماده‌بودن این چند مورد بستگی دارد.

دامنه را پیش از شروع مکتوب می‌کنیم

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

برای هر نقش، یک حساب آزمایشی

برای هر نقش کاربری دست‌کم یک حساب لازم داریم، و برای سنجش کنترل دسترسی دو حساب هم‌سطح. بدون این حساب‌ها بخش بزرگی از اپلیکیشن آزمون‌نشده می‌ماند.

محیط آزمایشی یا عملیاتی

محیطی که شبیه محیط عملیاتی باشد دقیق‌ترین نتیجه را می‌دهد. اگر تست ناگزیر روی محیط عملیاتی انجام شود، ساعت کار و محدودیت‌ها را از پیش توافق می‌کنیم.

عبور از لایه‌های محافظ

اگر WAF یا محدودکننده‌ی نرخ در مسیر باشد، برای بخشی از تست نشانی ما را در فهرست مجاز قرار می‌دهید تا آنچه می‌سنجیم خودِ اپلیکیشن باشد، نه فیلتر جلوی آن.

یک مسیر ارتباطی، و گزارش فوری

در هر دو طرف یک نفر مسئول ارتباط است. اگر در میانه‌ی کار یافته‌ای بحرانی پیدا شود، همان روز اطلاع می‌دهیم و منتظر گزارش نهایی نمی‌مانیم.

شدت هر یافته چطور تعیین می‌شود

عددی که پشتش روشی نباشد، به تصمیم‌گیری درباره‌ی ترتیب رفع کمکی نمی‌کند.

امتیاز CVSS نقطه‌ی شروع است

هر یافته با CVSS v3.1 امتیاز می‌گیرد تا زبان مشترکی با تیم فنی شما و ابزارهایی که از پیش دارید وجود داشته باشد.

سپس زمینه‌ی کسب‌وکار

یک آسیب‌پذیری روی صفحه‌ی ورود و روی یک صفحه‌ی داخلی اهمیت یکسانی ندارد. امتیاز پایه را با ارزش داده و دسترس‌پذیری آن مسیر تنظیم می‌کنیم.

اثبات‌شده، نه حدس

هر یافته با مراحلی همراه است که آن را بازتولید می‌کند. چیزی که نتوانیم نشان دهیم، به‌عنوان یافته‌ی قطعی گزارش نمی‌شود.

ترتیب رفع

گزارش ترتیب کار را پیشنهاد می‌دهد: چه چیزی باید همین هفته رفع شود و چه چیزی می‌تواند در چرخه‌ی بعدی توسعه بنشیند.

فرآیند کار ما

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

1
شناسایی

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

2
ارزیابی آسیب‌پذیری

دسته‌های OWASP WSTG را روی سطحی که ترسیم شده دنبال می‌کنیم. ابزارها الگوهای شناخته‌شده را سریع پوشش می‌دهند، و دسته‌هایی که ابزار درباره‌شان نمی‌تواند داوری کند، پیش از همه کنترل دسترسی و منطق کسب‌وکار، دستی و با چند حساب کاربری تست می‌شود.

3
بهره‌برداری و اعتبارسنجی

هر یافته‌ی محتمل را آن‌قدر بازتولید می‌کنیم تا قطعی شود، و بررسی می‌کنیم که آیا دو ضعف کوچک با هم به یک مشکل بزرگ‌تر می‌رسند یا نه. چیزی که نتوان نشان داد کنار گذاشته می‌شود، نه اینکه با احتیاط گزارش شود.

4
گزارش‌دهی و رفع

گزارش همراه با جلسه‌ای برای مرور آن ارائه می‌شود تا مهندسانی که قرار است کار را انجام دهند هر یافته را دقیق بفهمند. پس از اصلاحات، یافته‌ها دوباره تست و گزارش به‌روز می‌شود.

تحویل‌دادنی‌های پروژه

گزارش‌های جامع و عملیاتی برای تیم‌های فنی و مدیریتی

خلاصه مدیریتی

اینکه چه چیزی تست شد، چه یافته شد، و این یافته‌ها برای کسب‌وکار چه معنایی دارد، به زبانی که خواننده‌ی غیرفنی بتواند بر اساس آن تصمیم بگیرد. دو تا سه صفحه.

گزارش فنی

هر یافته با امتیاز CVSS v3.1، مراحلی که آن را بازتولید می‌کند، درخواست و پاسخ مربوط به آن، و بخشی از سامانه که تحت تأثیر است.

راهنمای رفع

برای هر یافته یک راه‌حل مشخص، نه ارجاع به یک استاندارد. هر جا که رفع مشکل در کد است نمونه‌ی کد می‌آید، همراه با ترتیب پیشنهادی انجام کارها.

تست مجدد رایگان

پس از رفع، هر یافته دوباره تست می‌شود و یا بسته‌شدن آن تأیید می‌شود یا با توضیح اینکه چه چیزی هنوز کار می‌کند دوباره باز می‌شود، و گزارش به‌روز می‌شود.

سوالات متداول

چه نوع وب اپلیکیشن‌هایی را تست می‌کنید؟
تفاوت ارزیابی آسیب‌پذیری و تست نفوذ چیست؟
ارزیابی امنیتی وب اپلیکیشن معمولاً چقدر طول می‌کشد؟
از چه متدولوژی‌هایی برای تست امنیت وب استفاده می‌کنید؟
آیا تست نفوذ باعث اختلال در سرویس‌های ما می‌شود؟
پس از ارزیابی چه تحویل‌دادنی‌هایی دریافت می‌کنیم؟
تفاوت تست Black-Box و White-Box چیست؟
هزینه تست نفوذ وب اپلیکیشن چقدر است؟
آیا به کد منبع ما نیاز دارید؟
ما WAF داریم. باز هم تست لازم است؟
تفاوت این سرویس با اسکن خودکار آسیب‌پذیری چیست؟
هر چند وقت یک‌بار باید تست تکرار شود؟
بعد از رفع یافته‌ها چه اتفاقی می‌افتد؟
آیا وب اپلیکیشن شما امن است؟
با تیم متخصص ما تماس بگیرید تا ارزیابی امنیتی جامع وب اپلیکیشن شما را انجام دهیم