تست نفوذ وب‌اپلیکیشن چیست؟

این مقاله برای شناخت کامل نسبت به تست نفوذ و همچنین مفهوم تست نفوذ وب‌اپلیکیشن توضیحات کاملی را ارائه می‌دهد. در این مقاله به اهمیت تست نفوذ وب‌اپلیکیشن می‌پردازیم، انواع مختلف آن را مدنظر قرار می‌دهیم و در نهایت 4 فاز اجرایی آن را بررسی خواهیم کرد.
تصویر شاخص مقاله تست نفوذ وب‌اپلیکیشن چیست

در این مقاله می‌خوانیم

تست نفوذ (Penetration Testing) چیست؟

برای آشنایی با مفهوم تست نفوذ وب‌اپلیکیشن، لازم است ابتدا تست نفوذ (Penetration Test) را بشناسید. همانطور که ما در مقاله تست نفوذ چیست؟ گفتیم، تست نفوذ (pentest)، فرآیندی است که در آن یک هکر قانونمند، برای ارزیابی‌ اهداف خود، با ارسال کدهای مخرب به یافتن آسیب‌پذیری‌ها می‌پردازد و هدف اصلی تست نفوذ، دسترسی غیرمجاز به سیستم به تقلید از یک هکر غیرقانونی است.

منظور از تست نفوذ وب‌اپلیکیشن (Web Application Pentest)، شبیه‌سازی یک حمله هکری به منظور تشخیص نقاط ضعف و آسیب‌پذیر وب‌اپلیکیشن و رفع به‌موقع آن‌هاست. تمام فرایند تست نفوذ وب‌اپلیکیشن بر روی دریافت درک بهتری از وضعیت امنیت، قدرت و مقاومت وب‌اپلیکیشن در مقابل حملات خارجی، تمرکز دارد.

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

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

what is a penetration test
تست نفوذ (Pentest) چیست؟

تست نفوذ وب‌اپلیکیشن

فرایند معمول برای انجام تست نفوذ وب‌اپلیکیشن، شامل اسکن نقاط ضعف و تشخیص حفره‌های امنیتی مانند پیکربندی اشتباه در وب‌اپلیکیشن، نرم‌افزار بدون وصله (Patch)، SQLi، اسکریپ‌های بین‌سایتی و غیره است. در طول فرایند تست نفوذ (پن تست)، هکرهای قانونی وارد سیستم شما می‌شوند تا مراحل زیر را به‌ انجام برسانند:

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

پس از انجام این فعالیت‌های امنیتی در حمله شبیه‌سازی شده، عامل نفوذی گزارشی شامل جزئیات مراحل انجام تست نفوذ، اجزای آسیب‌پذیر وب‌اپلیکیشن، شدت آسیب‌ها، نقص‌ها و راه‌حل‌های ممکن را تهیه و ارائه می‌کند. شما می‌توانید از تیم امنیتی خود برای انجام تست نفوذ وب‌اپلیکیشن (Web Application Pentest) استفاده کنید، یا اینکه از یک سرویس‌دهنده متخصص خارجی برای انجام این تست بهره ببرید.

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

تست نفوذ وب‌اپلیکیشن یا تست نفوذ سرویس‌های وب مهم هستند، چرا که به شما در تشخیص سطح امنیتی کل وب‌اپلیکیشن شامل پایگاه داده، شبکه Back-end و غیره، کمک خواهند کرد. علاوه بر این، چنین تستی با راه‌حل‌هایی کاربردی در جهت رفع نواقص موجود و قدرت‌ بخشیدن به وب‌اپلیکشن همراه خواهد بود. در ادامه، لیستی از اهداف رایج برای انجام تست نفوذ وب‌اپلیکیشن را ارائه می‌دهیم:

  1. تشخیص حفره‌های امنیتی در وب‌اپلیکیشن‌ها
  2. بررسی میزان کارایی رویکردهای امنیتی به‌کار گرفته‌شده در وب‌اپلیکیشن
  3. اطمینان از انطباق‌هایی چون HIPAA،  PCI DSS و غیره
  4. بررسی پیکربندی و اجزایی از وب‌اپلیکیشن که در معرض دید عموم و فایروال‌ها قرار دارند

انواع مختلف تست‌ نفوذ وب‌اپلیکیشن

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

1. تست نفوذ خارجی

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

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

a dark face hacker in cyber security

2. تست نفوذ داخلی

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

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

چگونه یک تست نفوذ وب‌اپلیکیشن را اجرا کنیم؟

در حالت کلی، برای اجرای تست نفوذ وب‌اپلیکیشن، 4 فاز اجرایی وجود دارند:

1. فاز برنامه‌ریزی

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

همچنین، قبل از ورود به فازهای دیگرِ آزمون نفوذ وب‌اپلیکیشن (Web Application Pentest)، موارد دیگری از وسعت عملیات و رویکرد ارزیابی امنیت وب‌اپلیکیشن وجود دارند که باید بررسی شوند. این موارد عبارت‌اند از:

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

علاوه بر این، باید بازه ‌اجرایی کل فرایند را تعریف کرد. این تعریفِ زمانی باعث می‌شود که عملیات نفوذ طولانی نشوند و سیستم‌های امنیتی وب‌اپلیکیشن بتوانند در زمان موردنظر وارد عمل شوند.

web application penetration testing steps
مراحل و متد تست نفوذ وب‌اپلیکیشن (Web Application Pentest Methods)

2. فاز پیش از حمله

در این مرحله، شناسایی‌های مورد نیاز برای فازهای بعدی اجرا می‌شود تا مسیر برای انجام آن‌ها هموار گردد. به‌طور ویژه، این فاز شامل جستجوی اطلاعات منبع باز (OSINT)، یا هر اطلاعات عمومی دیگر خواهد بود که می‌تواند بر علیه سازمان به‌ کار گرفته شود.

در این فاز از تست، می‌توان عملیاتی چون اسکن پورت، شناسایی سرویس، ارزیابی میزان آسیب‌پذری و دیگر عملیات را انجام داد. برای انجام این فاز از ابزارهایی چون Namp، Shodan، Google Dorks ، dnsdumpster استفاده می‌شود.

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

3. فاز حمله

در فاز حمله، عامل نفوذ سعی خواهد کرد به تمام نقاط آسیب‌پذیری که در مرحله قبل کشف شده‌ بودند، حمله کند. به‌ طور ویژه، عامل تست نفوذ وب‌اپلیکیشن (Web Application Pentest) یک قدم جلوتر می‌رود و سعی خواهد کرد که بردارهای حمله (Attack Vectors) را تشخیص و نقشه‌برداری کند.

در این مرحله، عامل نفوذ وارد ساختار داخلی وب‌اپلیکیشن می‌شود و سعی می‌کند جایگاه میزبان را تهدید کند. چنین فعالیتی ممکن است شامل حملات مهندسی اجتماعی، نقض امنیت فیزیکی، سوءاستفاده از وب‌اپلیکیشن، فیشینگ کارکنان سازمان با CXOها  و غیره باشد.

4. فاز پسا حمله

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

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

بهترین ابزارهای تست نفوذ وب‌اپلیکیشن

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

با کمک روش دستی، می‌توانید نقص‌هایی را که در روش اتوماتیک تشخیص داده نشده بودند یافته و گزارش دهید. بهتر است همیشه ترکیبی از اعمال دستی و اتوماتیک را در تست نفوذ اجرا کنید. ابزارهای زیر در فرایند اجرا به شما کمک شایانی می‌کنند:

  1. Acunetix
  2. HackerOne
  3. Burp Suite
  4. ابزارهای توسعه‌دهند مرورگر
  5. NMap
  6. Zenmap
  7. ReconDog
  8. Nikto
OWASP top 10 in cyber security for pentest
تست نفوذ وب‌اپلیکیشن (Web Application Pentest)

چرا تست نفوذ وب‌اپلیکیشن مورد نیاز است؟

بهتر است که همیشه یک ارزیابی جامع از آسیب‌پذیری و تست نفوذ (VAPT)، برای وب‌اپلیکیشن خود انجام دهید تا تهدیدات مستقیم برای برنامه مورد استفاده شما در کسب و کارتان، مشخص گردند. علاوه بر این، اسکن‌های VAPT بهترین تمرین برای تشخیص تهدیدات سایبری جدید و سوء استفاده‌های احتمالی هستند.

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

جدول زمانی در تست نفوذ وب‌اپلیکیشن چیست؟

تست نفوذ وب‌اپلیکیشن (Web Application Pentest) بین 7 تا 10 روز طول می‌کشد. سطح و تعداد نقاط آسیب‌پذیر معمولا از روز سوم ظاهر می‌شوند، از روز چهارم می‌توانید شروع به اصلاح آن‌ها کنید. متناظر با وسعت تست نفوذ، جدول زمانی آن متغیر خواهد بود.

هزینه انجام تست نفوذ وب‌اپلیکیشن چقدر است؟

به‌ ازای هر تست نفوذ بر روی یک وب‌‍اپلیکیشن، باید بسته به هدف و روش مورد نظر شما، 700 تا 4999 دلار بپردازید.

آیا بعد از برطرف کردن نقاط آسیب‌پذیر، امکان اسکن دوباره وجود دارد؟

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

پیمایش به بالا