در تعریفی ساده تست نفوذ، penetration testing یا pen testing یک حمله سایبری شبیه سازی شده علیه سیستم کامپیوتری است. این حمله شبیه سازی شده برای بررسی آسیب پذیریهای قابل بهره برداری میباشد. تست نفوذ در واقع تلاشی برای ارزیابی سطح امنیت زیرساختهای فناوری اطلاعات، توسط آزمایش و اجرا آسیب پذیریهای موجود به صورت امن است.
تست نفوذ معمولا با استفاده از فناوریهای خودکار و انجام مراحل دستی صورت میگیرد. تا به طور سیستماتیک منابع شما را مورد بررسی قرار دهد. این منابع میتواند شامل موارد زیر باشد.
هنگامی که پن تستر (آزمایش کننده نفوذ) موفق به اجرا و اکسپلویت یک آسیب پذیری در سیستمی خاص شود، ممکن است تلاش نماید تا با استفاده از آسیب پذیری کشف شده به منابع داخلی نفوذ نماید و یا دادههایی را از آن استخراج کند. این کار معمولا با گرفتن مجوزهای امنیتی و بدست آوردن دسترسی عمیقتر به داراییها و دادههای دیجیتال توسط privilege escalation صورت میگیرد.
در مرحله بعد اطلاعات مربوط به آسیب پذیریهای امنیتی که با موفیقت اکسپلویت شدهاند، جمع آوری شده و به مدیران IT و NSMها (Network system mangers) ارائه میشود تا به متخصصان خود کمک نمایند که نتیجههایی استراتژیک داشته باشند و در انجام تلاشهای اصلاحی خود اولویت بندی را رعایت نمایند.
هدف اصلی تست نفوذ، اندازهگیری امکان قرار گرفتن کاربر نهایی یا سیستم، در معرض خطرها است. همچنین شما با انجام این عملیات قادر میباشید تا هرگونه پیامد مرتبط (به سیستم مورد بررسی) که میتواند برای منابع یا روند عملیاتهای سازمان شما خطر ساز باشد را مورد ارزیابی قرار دهید
انواع مختلف تست نفوذ
برای اطمینان از بدست آوردن اهداف اصلی تست نفوذ، آن را به انواع مختلفی تقسیم بندی میکنند که در ادامه با آنها آشنا خواهید شد.
تست نفوذ وب (Web Application penetration testing)
تست نفوذ برنامههای کاربردی وب، امنیت کلی و خطرات احتمالی برنامههای کاربردی وب، از جمله خطاهای کدنویسی (coding errors)، خطاهای ایجاد شده در احراز هویت یا کسب مجوز (broken authentication orauthorization) و آسیبپذیریهای تزریق را بررسی میکنند.
تست نفوذ شبکه (Network penetration testing)
هدف از تست نفوذ شبکه جلوگیری از اعمال مخرب با استفاده از یافتن نقاط ضعف شبکه، پیش از حمله مهاجمان است. تست نفوذ در این نوع تست، بر اکسپلویت آسیب پذیریها بر اساس انواع شبکات و دستگاههای مرتبط مانند روترها (routers)، سویچها (switches) و هاستهای شبکه (network hosts) تمرکز دارد.
تست نفوذ کلاد (Cloud penetration testing)
در توضیحی ساده، همکاری تیمهای تست نفوذ با ارائه دهندگان کلاد و فروشندگان شخص ثالث را که به منظور طراحی و امن سازی سیستمهای ابری یا برنامههای مبتنی بر ابر انجام میگیرد، تست نفوذ کلاد گویند. تست نفوذ کلاد تاییدکننده امنیت سیستمهای مبتنی بر ابر میباشد و خطرات احتمالی را شناسایی میکند تا رفع آنها محیط ابری امنتر را داشته باشیم.
تست نفوذ اینترنت اشیا (IoT Security Tests)
پن تستر با توجه به شیوه لایهای، که در آن هر لایه به صورت مجزا مورد بررسی قرار میگیرد اقدام به تجزیه و تحلیل هر جزء و نحوه تعامل بین اجزا مینماید. با استفاده از این روش، نقاط ضعیفی که ممکن است مورد توجه قرار نگیرد، شناسایی میشود.
در کنار این موارد به منظور تعیین مقدار اطلاعاتی که به پن تستر داده میشود تست نفوذ را به صورتهای زیر تقسیم بندی مینمایند:
تست نفوذ جعبه سفید (White box penetration testing)
تست نفوذ جعبه سفید که با نامهای white box، crystal، oblique هم یاد میشود، نوعی از تست نفوذ است که در آن اطلاعات کامل شبکه و سیستم با آزمون گیرنده به اشتراک گذاشته میشود. این اطلاعات شامل نقشههای شبکه و اعتبارنامهها میباشد. داشتن این اطلاعات به صرفه جویی در زمان و داشتن نگاهی عمیق به سیستم کمک میکند. تست نفوذ جعبه سیاه برای شبیه سازی یک حمله هدفمند و برنامه ریزی شده روی یک سیستم خاص مورد استفاده قرار میگیرد و تمامی حملات احتمالی را تا حد امکان پوشش میدهد.
تست نفوذ جعبه سیاه (Black box penetration testing)
در تست نفوذ جعبه سیاه یا black box هیچ نوع اطلاعاتی به آزمون گیرنده داده نمیشود. پن تستر در این نوع تست نفوذ رویکرد یک مهاجم غیرمجاز را دنبال مینماید، از گرفتن دسترسی اولیه تا بهرهبرداری از آسیب پذیریها. این سناریو را میتوان معتبرترین سناریو تست نفوذ دانست، چرا که نشان میدهد که چگونه یک نفوذگر بدون داشتن هیچ دانش درون سازمانی، آن را هدف قرار میدهد.
تست نفوذ جعبه خاکستری (Grey box penetration testing)
در تست نفوذ جعبه خاکستری که به صورتهای Gray box یا translucent box هم یاد میشود، اطلاعات محدودی به آزمون گیرنده داده میشود. معمولا این اطلاعات به صورت دادن یک اعتبارنامه برای ورود به سیستم است. تست نفوذ جعبه خاکستری برای کمک به ارزیابی سطح دسترسی واقعی کاربران معتبر مورد استفاده قرار میگیرد. این نوع تست تعادلی بین عمق و کارایی ایجاد میکند و میتواند برای شبیه سازی یک تهدید داخلی یا حملهای در سطح شبکه، مورد استفاده قرار گیرد.
مراحل تست نفوذ
شما از طریق تست نفوذ قادر خواهید بود پیش از اینکه شخص دیگری حملهای را انجام دهد، نقاط ضعف امنیتی قابل بهرهبرداری را پیش بینی کنید. با این حال یک تست نفوذ، پروژهای کامل و سنجیده است که شامل مراحل بیشتری نسبت به حمله واقعی است.
برنامه ریزی و آماده سازی (Planning and Preparation)
پیش از شروع آزمون تست نفوذ، آزمایشکنندگان و مشتریان باید در مورد اهداف آزمون همسو شوند. بنابراین باید به خوبی محدوده بندی شود و به درستی اجرا شود. همچنین آنها باید بدانند که به چه آزمونهایی نیازمند هستند، چه کسانی از آزمون مطلع هستند، چه مقدار اطلاعات و دسترسی به آزمایشکنندگان داده میشود و جزئیات دیگر که تضمین کننده صحت در انجام عملیات تست نفوذ میباشد.
کشف (Discovery)
در این مرحله تیمها انواع مختلف روشهای شناسایی را اجرا میکنند. از جنبه فنی اطلاعاتی مانند آدرس IP میتوانند به کشف اطلاعات مربوط به فایروالها و سایر اتصالات کمک کند و همچنین از جنبه شخصی دادههای همچون نام، عنوان شغلی و آدرس ایمیل میتواند ارزش بالایی داشته باشد.
تلاش برای نفوذ و بهرهبرداری (Penetration Attempt and Exploitation)
حال که آزمون گیرنده به صورت دقیق از هدف خود مطلع شده و اطلاعات مورد نیاز خود را جمع آوری کرده، میتواند روند نفوذ به سامانه، سواستفاده از ضعفهای امنیتی و نشان دادن میزان عمق شبکه را آغاز نمایید.
تحلیل و ارائه گزارش (Analysis and Reporting)
در این مرحله پن تسترها باید گزارشی ایجاد نمایند که شامل جزئیات هر مرحله از فرایند نفوذ باشد. همچنین باید آنچه را که برای نفوذ موفیقت آمیز به سیستم مورد استفاده قرار گرفت، همچنین ضعفهای امنیتی کشف شده، سایر اطلاعات مرتبط بدست آمده و راهکارها را برجسته نماید.
پاکسازی و اصلاح (Clean Up and Remediation)
پن تستر نباید هیچ رد پایی از خود باقی گذارد و با بازگشت از طریق سیستم باید تمامی تغییرات اعمال شده در طول آزمایش را حذف نماید. زیرا ممکن است این تغییرات در آینده توسط یک مهاجم واقعی مورد سو استفاده قرار گیرد. پس از انجام این کار سازمانها میتوانند شروع به انجام اصلاحات لازم برای بستن حفرههای کشف شده در زیرساختهای امنیتی خود نمایند.
تست دوباره (Retest)
بهترین روش برای اطمینان از موثر بودن اصلاحات، آزمایش مجدد سیستم میباشد. همچنین از آنجا که محیطهای فناوری اطلاعاتی و روشهای مورد استفاده برای حمله به آن، دائما در حال تغییر است، میتوان انتظار داشت در آزمایش مجدد سیستم نقاط ضعف جدیدی کشف شود.
ابزارهای تست نفوذ
ابزارهای تست نفود معمولا عملکردهای متفاوتی را ارائه مینمایند. برخی از آنها به صورت منبعباز در دسترس قرار گرفتهاند و برخی دیگر اهدافی تجاری دارند. برخی از این ابزارها توسط نفوذگران واقعی مورد استفاده قرار میگیرند، این باعث میشود که امکان تکرار دقیق حملات برای ما فراهم باشد. همچنین برخی دیگر از ابزارها، نیازهای یک هکر قانونمند را برطرف مینمایند و اجازه میدهند تاکید بیشتری روی اهداف یک آزمون امنیتی وجود داشته باشد و با برجسته نمودن آسیب پذیریهای حیاتیتر اصلاحات را در اولویت قرار میدهند.برخی از این ابزارها در زیر مشاهده مینمایید: