تست نفوذ یا پن تست + آموزش جامع آن | انفورماتیک ماهان
تست نفوذ یا penetration testing که به آن پن تست نیز می گویند، یک حمله سایبری شبیه سازی شده علیه سیستم کامپیوتری شما برای بررسی آسیب پذیری های قابل بهره برداری است. در زمینه امنیت برنامه های کاربردی وب، تست نفوذ معمولا برای تقویت فایروال برنامه وب (WAF) استفاده می شود.
این تست میتواند شامل تلاش برای نقض هر تعداد از سیستمهای کاربردی، به عنوان مثال، رابطهای پروتکل برنامه (API)، سرورهای frontend/backend جهت کشف آسیبپذیریها باشد.
بینش های ارائه شده توسط تست نفوذ را می توان برای تنظیم دقیق خط مشی های امنیتی WAF و اصلاح آسیب پذیری های شناسایی شده، استفاده کرد.
مفهوم تست نفوذ
تست نفوذ، روشی برای ارزیابی امنیت کامپیوتر و شبکه با شبیه سازی حمله به یک سیستم یا شبکه کامپیوتری از تهدیدات خارجی و داخلی است.
این فرآیند شامل تجزیه و تحلیل فعال سیستم برای هر گونه آسیب پذیری احتمالی است که می تواند ناشی از پیکربندی ضعیف یا نامناسب سیستم، نقص های سخت افزاری یا نرم افزاری شناخته شده و ناشناخته، ضعف های عملیاتی در فرآیند یا اقدامات متقابل فنی باشد.
این تجزیه و تحلیل از موقعیت یک هکر بالقوه انجام می شود و می تواند شامل بهره برداری فعال از آسیب پذیری های امنیتی باشد.
مسائل امنیتی کشف شده از طریق تست نفوذ به مالک سیستم ارائه می شود. پن تست این اطلاعات را با ارزیابی دقیق تأثیرات احتمالی برای سازمان ارائه میکند.
مراحل تست نفوذ
فرآیند این تست را می توان به 7 مرحله تقسیم کرد:
- جمع آوری اطلاعات
- شناسایی
- کشف و اسکن
- ارزیابی آسیب پذیری
- بهره برداری
- تحلیل و بررسی نهایی
- استفاده از نتایج تست
1) جمع آوری اطلاعات (Information Gathering)
اولین مرحله از هفت مرحله تست نفوذ، جمع آوری اطلاعات است. سازمانی که مورد تست قرار می گیرد اطلاعات کلی در مورد اهداف درون محدوده را در اختیار تستر نفوذ قرار می دهد.
2) شناسایی (Reconnaissance)
مرحله شناسایی برای تست امنیتی کامل بسیار مهم است زیرا تستر های نفوذ می توانند اطلاعات اضافی که ممکن است نادیده گرفته شده، ناشناخته یا ارائه نشده باشد را شناسایی کنند. این مرحله بهویژه در تست نفوذ شبکه داخلی یا خارجی مفید است. با این حال، معمولاً این شناسایی را در پن تست برنامههای وب، برنامههای تلفن همراه یا API انجام نمیشود.
3) کشف و اسکن (Discovery and Scanning)
اطلاعات جمعآوریشده برای انجام فعالیتهای اکتشافی، جهت تعیین مواردی مانند پورتها و سرویسهایی که برای میزبانهای هدفمند یا زیر دامنههای موجود برای برنامههای کاربردی وب در دسترس بودند، استفاده میشود.
4) ارزیابی آسیب پذیری (Vulnerability Assessment)
ارزیابی آسیبپذیری به منظور کسب دانش اولیه و شناسایی هرگونه ضعف امنیتی بالقوه که به مهاجم خارجی اجازه میدهد به محیط یا فناوری در حال تست دسترسی پیدا کند، انجام میشود. با این حال، ارزیابی آسیبپذیری هرگز جایگزینی برای تست نفوذ نخواهد بود.
5) بهره برداری (اExploitation)
پس از تفسیر نتایج مرحله قبل، تسترهای نفوذ از تکنیکهای دستی، شهود انسانی و پیشینههای آنها برای اعتبارسنجی، حمله و بهرهبرداری از این آسیبپذیریها استفاده میکنند.
6) تحلیل و بررسی نهایی (Final Analysis and Review)
این گزارش جامع شامل مواردی است که تست را از کجا شروع کردهایم، چگونه آسیبپذیریها را پیدا کردهایم و چگونه از آنها بهرهبرداری کردیم. همچنین شامل محدوده تست امنیتی، روشهای آن، یافتهها و توصیههایی برای اصلاحات میشود.
7) استفاده از نتایج تست
آخرین مرحله از هفت مرحله تست نفوذ بسیار مهم است. سازمانی که مورد تست قرار میگیرد باید در واقع از یافتههای تست امنیتی برای رتبهبندی آسیبپذیریها، تجزیه و تحلیل، تعیین استراتژیهای اصلاح و اطلاعرسانی درباره تصمیمگیریهای رو به جلو استفاده کند.
روش های تست نفوذ
تست خارجی (External testing)
تستهای نفوذ خارجی داراییهای یک شرکت را هدف قرار میدهند که در اینترنت قابل مشاهده هستند، به عنوان مثال، خود برنامه وب، وبسایت شرکت و سرورهای ایمیل و نام دامنه (DNS). هدف تست External، دستیابی به داده های ارزشمند و استخراج آنها است.
تست داخلی (Internal testing)
در تست داخلی، یک تستر با دسترسی به برنامهای در پشت فایروال خود، حمله داخلی مخرب را شبیهسازی میکند. یک سناریو برای شروع می تواند کارمندی باشد که داده ها او به دلیل حمله فیشینگ به سرقت رفته است.
تست بلایند (Blind testing)
در این تست، به تستر فقط نام شرکتی را که هدف قرار گرفته است، داده می شود. این به پرسنل امنیتی امکان چگونگی مقابله با یک حمله واقعی را در لحظه می دهد.
تست دوسوکور یا دابل بلایند (Double-blind testing)
در یک تست دوسوکور، پرسنل امنیتی هیچ اطلاع قبلی از حمله شبیه سازی شده ندارند. همانطور که در دنیای واقعی، آنها هیچ زمانی برای تقویت دیوار دفاعی خود ندارند.
تست هدفمند (Targeted testing)
در این سناریو، هم تستر و هم پرسنل امنیتی با هم کار کرده و یکدیگر را از حرکات خود مطلع می کنند. این یک تمرین آموزشی ارزشمند است که به تیم امنیتی، بازخوردی لحظه ای از دید هکرها ارائه می دهد.
انواع تست نفوذ یا پن تست چیست؟
یک رویکرد جامع برای پن تست جهت مدیریت ریسک بهینه، ضروری است. در ادامه به بررسی انواع این تست می پردازیم:
- برنامه های وب: تسترها، اثربخشی کنترلهای امنیتی را بررسی میکنند و به دنبال آسیبپذیریهای پنهان، الگوهای حمله و هر شکاف امنیتی احتمالی دیگری میگردند که میتواند یک برنامه وب را به خطر بیاندازد.
- برنامه های موبایل: تسترها با استفاده از تست دستی خودکار و توسعهیافته، به دنبال آسیبپذیری در باینریهای برنامهای که روی دستگاه تلفن همراه اجرا میشوند و عملکرد سمت سرور مربوطه میگردند. آسیبپذیریهای سمت سرور شامل مدیریت جلسه، مسائل رمزنگاری، مسائل مربوط به احراز هویت و مجوز و سایر آسیبپذیریهای رایج وب سرویس است.
- شبکه: این تست آسیبپذیریهای امنیتی مهم و مشترک را در یک شبکه و سیستمهای خارجی شناسایی میکند. کارشناسان از چک لیستی استفاده می کنند که شامل موارد تستس برای پروتکل های حمل و نقل رمزگذاری شده، مسائل مربوط به محدوده گواهی SSL، استفاده از خدمات اداری و موارد دیگر است.
- فضای ابری: یک محیط ابری به طور قابل توجهی با محیط های سنتی داخلی متفاوت است. به طور معمول مسئولیت های امنیتی، بین سازمانی که از محیط استفاده می کند و ارائه دهنده خدمات ابری به اشتراک گذاشته می شود. به همین دلیل، پن تست ابری به مجموعهای از مهارتها و تجربههای تخصصی برای بررسی دقیق جنبههای مختلف ابر، مانند پیکربندیها، APIها، دیتاسنترهای مختلف، رمزگذاری، ذخیرهسازی و کنترلهای امنیتی نیاز دارد.
- کانتینر (container): کانتینرهای بهدستآمده از داکر (Docker) اغلب دارای آسیبپذیریهایی هستند که میتوان از آنها در مقیاس بزرگ استفاده کرد. پیکربندی نادرست نیز یک خطر رایج مرتبط با کانتینر و محیط آنها است. هر دوی این خطرات را می توان با تست نفوذ کشف کرد.
- دستگاههای تعبیهشده/اینترنت اشیا (IoT): دستگاههای تعبیهشده/اینترنت اشیا (IoT) مانند دستگاههای پزشکی، خودروها، لوازم خانگی، تجهیزات دکل نفتی، محدودیتهای برق، الزامات نظارتی و موارد دیگر برای یک تست نرم افزاری منحصربهفرد استفاده می شوند. کارشناسان یک تجزیه و تحلیل ارتباط کامل را همراه با تجزیه و تحلیل سرویس گیرنده/سرور انجام می دهند تا عیوبی که بیشترین اهمیت را برای مورد استفاده مربوطه دارند، شناسایی کنند.
- دستگاه های موبایل: تسترهای نفوذ از آنالیز خودکار و دستی برای یافتن آسیبپذیریها در باینریهای برنامهای که روی دستگاه تلفن همراه اجرا میشوند و عملکرد سمت سرور مربوطه، استفاده میکنند. آسیبپذیریها در باینریهای برنامه میتواند شامل مسائل مربوط به احراز هویت و مجوز، مسائل مربوط به اعتماد سمت سرویس گیرنده، کنترلهای امنیتی نادرست پیکربندی شده و مسائل چارچوب توسعه بین پلتفرمی باشد. آسیبپذیریهای سمت سرور میتواند شامل مدیریت جلسه، مسائل رمزنگاری، مسائل مربوط به احراز هویت و مجوز و سایر آسیبپذیریهای رایج وب سرویس باشد.
- API ها: از هر دو روش تست خودکار و دستی برای پوشش دهی برتر لیست OWASP API Security استفاده می شود. برخی از خطرات امنیتی و آسیبپذیریهایی که تسترها به دنبال آن هستند عبارتند از: مجوز سطح شیء شکسته، تأیید اعتبار کاربر، قرار گرفتن در معرض بیش از حد دادهها، کمبود منابع/محدودیت نرخ و موارد دیگر.
- خط لوله CI/CD: شیوههای مدرن DevSecOps ابزارهای خودکار و هوشمند اسکن کد را در خط لوله CI/CD یکپارچه میکنند. علاوه بر ابزارهای ثابتی که آسیبپذیریهای شناخته شده را پیدا میکنند، ابزارهای خودکار تست نفوذ را میتوان در خط لوله CI/CD ادغام کرد تا کارهایی را که یک هکر میتواند برای به خطر انداختن امنیت یک برنامه انجام دهد، کپی کند. آزمایش خودکار پن تست CI/CD میتواند آسیبپذیریهای پنهان و الگوهای حملهای که با اسکن کد استاتیک شناسایی نمیشوند راکشف کند.
انواع ابزارهای پن تست
هیچ ابزار یکسانی برای تست نفوذ وجود ندارد. در عوض، اهداف مختلف به مجموعههایی از ابزارها برای اسکن پورت، اسکن برنامهها، خرابیهای Wi-Fi یا نفوذ مستقیم به شبکه نیاز دارند. به طور کلی، انواع ابزارهای پن تست در 5دسته قرار می گیرند:
- ابزارهای شناسایی برای کشف میزبان شبکه و پورت های باز
- اسکنرهای آسیبپذیری برای کشف مشکلات در سرویسهای شبکه، برنامههای کاربردی وب و APIها
- ابزارهای پروکسی مانند پروکسی های وب تخصصی یا پروکسی های عمومی man-in-the-middle
- ابزارهای بهره برداری
- ابزارهای Post Exploitation برای تعامل با سیستم ها، حفظ و گسترش دسترسی و دستیابی به اهداف حمله
فواید تست نفوذ چیست؟
در حالت ایدهآل، نرمافزار و سیستمها از همان ابتدا با هدف از بین بردن نقصهای امنیتی خطرناک طراحی شدند. یک تست نفوذ بینشی در مورد اینکه تا چه حد به آن هدف رسیده است را ارائه می دهد. پن تست می تواند به یک سازمان کمک کند که:
- نقاط ضعف سیستم ها را پیدا کنید.
- استحکام کنترل ها را تعیین کنید.
- پشتیبانی از انطباق با حریم خصوصی داده ها و مقررات امنیتی (مانند PCI DSS HIPAA ،GDPR)
- ارائه نمونه های کیفی و کمی از وضعیت امنیتی فعلی و اولویت های بودجه برای مدیریت
پن تست چه تفاوتی با تست خودکار دارد؟
اگرچه پن تست عمدتاً یک تلاش دستی است، تسترهای نفوذ از ابزارهای اسکن و تست خودکار استفاده می کنند. اما آنها از ابزارها فراتر می روند و از دانش خود در مورد آخرین تکنیک های حمله برای ارائه تست های عمیق تر از ارزیابی آسیب پذیری (یعنی تست خودکار) استفاده می کنند.
پن تست دستی
تسف نفوذ آسیبپذیریها و نقاط ضعفی را که در فهرستهای محبوب گنجانده نشدهاند (به عنوان مثال، OWASP Top 10) آشکار میکند و منطق تجاری که تست خودکار میتواند نادیده بگیرد (مانند اعتبارسنجی دادهها، بررسی یکپارچگی) را مورد آزمایش قرار می دهد. از آنجایی که تسترهای نفوذ متخصصانی هستند که مانند هکرها فکر میکنند، میتوانند دادهها را برای هدف قرار دادن حملات خود تجزیه و تحلیل کنند و سیستمها و وبسایتها را به روشهایی تست کنند که راهحلهای تست خودکار طبق یک روال اسکریپتشده نمیتوانند.
تست خودکار
تست خودکار نتایج را سریعتر تولید می کند و به متخصصان کمتری نسبت به فرآیند تست نفوذ نیاز دارد. ابزارهای تست خودکار نتایج را به طور خودکار ردیابی می کنند و گاهی اوقات می توانند آنها را به یک پلتفرم گزارش متمرکز صادر کنند. همچنین، نتایج پن تست دستی میتواند از آزمونی به آزمون دیگر متفاوت باشد، در حالی که اجرای مکرر تست خودکار روی یک سیستم نتایج یکسانی را ایجاد میکند.
تست نفوذ و فایروال برنامه های وب
برای بسیاری از انواع تست نفوذ (به استثنای تستهای کور و دوسوکور)، تستر احتمالاً از دادههای WAF، مانند گزارشها، برای مکانیابی و بهرهبرداری از نقاط ضعف برنامه استفاده میکند.
به نوبه خود، مدیران WAF می توانند از داده های پن تست بهره مند شوند. پس از اتمام تست، پیکربندیهای WAF را میتوان بهروزرسانی کرد تا در برابر نقاط ضعف کشفشده در تست ایمن شود. در نهایت، تست نفوذ برخی از الزامات انطباق برای رویههای ممیزی امنیتی، از جمله PCI DSS و SOC 2 را برآورده میکند.
مزایا و معایب پن تست چیست؟
با افزایش فراوانی و شدت نقضهای امنیتی سال به سال، سازمانها هرگز نیاز بیشتری به مشاهده چگونگی مقاومت در برابر حملات نداشتهاند. مقرراتی مانند PCI DSS و HIPAA تست دورهای نفوذ را موظف میکند تا مطابق با الزامات خود باقی بماند. با در نظر گرفتن این فشارها، در اینجا برخی از مزایا و معایب این تست آورده شده است:
مزایا تست نفوذ
- حفرههای موجود در شیوههای تضمین امنیت، مانند ابزارهای خودکار، استانداردهای پیکربندی و کدگذاری، تجزیه و تحلیل معماری و سایر فعالیتهای ارزیابی آسیبپذیری را پیدا میکند.
- عیوب نرم افزاری شناخته شده و ناشناخته و آسیب پذیری های امنیتی، از جمله موارد کوچکی را که به خودی خود نگرانی چندانی ایجاد نمی کنند اما می توانند به عنوان بخشی از یک الگوی حمله پیچیده باعث آسیب مادی شوند را پیدا می کند.
- پن تست می تواند به هر سیستمی حمله کند، با تقلید از نحوه رفتار اکثر هکرهای مخرب و شبیه سازی تا حد ممکن یک دشمن واقعی.
معایب تست نفوذ
- کار فشرده و پرهزینه است.
- پن تست به طور جامع مانع از ورود اشکالات و عیوب به تولید تا حد امکان به یک دشمن واقعی نمی شود.