تست نفوذ یا Penetration Testing فرایند پیاده سازی حملات شناخته شده بر روی black box و ارایه گزاش فنی و مدیریتی می باشد.
همچنین می توانیم تست نفوذ یک تابع در نظر بگیریم که ورودی black box می باشد و همچنین فرایندها تست اکسپلویت ها و حملات می باشد و نتیجه یا خروجی این تابع گزارش تست نفوذ می باشد.
black box در واقع می تواند شبکه های کامپیوتری , سخت افزار , نرم افزار و سیستم عامل ها باشند.
گزارش تست نفوذ در واقع شامل نتیجه اکسپلویت آسیب پذیری های شناخته شده بر روی ورودی (بلک باکس) می باشد.
قالب های مختلف تست نفوذ
blackbox
تست نفوذ بلک باکس یا همان جعبه سیاه یکی از متداول ترین قالب های تست نفوذ می باشد که کارفرما ها درخواست می کنند چرا که پیاده سازی تمامی مراحل مثل یک هکر می باشد و شرایط یکسان می باشد و شما تنها اطلاعاتی که در اینترنت در مورد شبکه خاص وجود دارد را دسترس دارید نه بیشتر نه کمتر زمانی که شما بتوانید نفوذ کنید یا نقاط آسیب پذیر را بدست آورید بسته به وسعت شبکه یا پیچیدگی یک برنامه دارد. بالطبع هر چه اطلاعات اولیه کمتر باشد نتایج دارای خطا بیشتری می باشند.
graybox
تست نفوذ جعبه خاکستری اطلاعات اولیه بیشتری نسبت به جعبه سیاه در اختیار تیم تست نفوذ قرار داده می شود.به عنوان مثال برای تست نفوذ وب سایت های یک سازمان به تیم تست نفوذ یک اکانت داده می شود یا حتی فایروال را برای تست نفوذ بایپس می کنند. نتایج در این نوع از تست دقیق تر از جعبه سیاه هست . ولی این نکته هم وجود دارد که دیگر شخص برای یافتن راه های ورود مثل یک هکر فکر نمی کند !
whitebox
تست نفوذ جعبه سفید اطلاعات ورودی به شبکه یا سیستم به صورت کامل به تیم تست نفوذ تحویل داده می شود و همچنین تیم تست نفوذ دسترسی کامل به سورس برنامه های وب نیز دارد و می تواند مشکلات امنیتی را از سورس نیز ارزیابی کند و به مراتب دقت در این تست بسیار بالاتر می باشد.
مهم ترین نکته قبل از شروع تست نفوذ داشتن قراردادی کامل و قانونی و مشخص کردن دامنه کاری می باشد که حتما باید دامنه و ساب دامنه ها با کارفرما چک شود . همچنین باید قبل از هر گونه استفاده از ابزارهای اسکن یا استفاده از اکسپلویت ها با کارفرما هماهنگ شود . چرا که سیستم های که در حال تست نفوذ هستند امکان دارد در حال سرویس دادن و در شرایط حساس قراردارند. در بسیاری از مواقع در صورت حساس بودن یک clone یا کپی از سیستمی که قرار است مورد ارزیابی قرار بگیرد تهیه می شود تا تست ها بر روی آن انجام شود.
همچنین فرایند تست نفوذ به ترتیب زیر می باشد.
- Information Gathering
- Enumeration & scanning
- Exploiting
- Maintain Access
- Post Exploiting
- Reporting
جمع آوری اطلاعات اولین و مهم ترین قدم در تست نفوذ می باشد تا زمانی که blackbox به خوبی شناخته نشود . این امکان وجود دارد مراحل بعدی را مشکل مواجه کند . بدین معنی هست که اگر قرار است سازمانی تست نفوذ شود باید تمامی دامنه ها و ساب دامنه ها شناسایی و همچنین کلیه رنج آی پی های آن سازمان به طور مثال شناسایی شود. همچنین برای اینکه فرآیند نظاممند شود از ابزارهای مختلف استفاده می شود یکی از این ابزارها XMIND می باشد.
پویش و اسکن آسیب پذیری ها: در دومین گام از ابزارهای اسکن وب شبکه یا سورس کد برای شناسایی آسیب پذیری های شناخته شده استفاده می شود . البته باید توجه داشت با توجه به هدف ممکن است محدودیت از ابزار وجود داشته باشد لذا خیلی اوقات فرایند تست به صورت دستی و توسط پراکسی مثل burpsuite انجام می شود.آسیب پذیری های شناخته شده در سمت وب شبکه و … همگی به صورت blackbox یا whitebox قابل شناسایی هستند ولی زمان کشف متفاوت است.
اکسپولیت یا سواستفاده از آسیب پذیری ها در واقع روش یا کدی برای نفوذ از طریق آسیب پذیری های شناخته شده است . که در فرایند تست نفوذ برای نمایش proof of concept در گزارش ها آسیب پذیری را exploit میکنند و عدله بر آسیب پذیر بودن سیستم ارایه می کنند که البته باید در قرارداد ذکر شده باشد که در فرایند کلی سیستم اختلال ایجاد نشود چرا که اکسپلویت بعضی از آسیب پذیری ها منجر به خواندن غیر قانونی اطلاعات و بعضی دیگر مختلف کردن سیستم می شود.
ثبت دسترسی یا حفظ سطح دسترسی یکی از مراحل می باشد که هم توسط هکرها و هم اشخاصی که تست نفوذ می کنند انجام می شود .این مرحله شامل قرار دادن درب پشتی backdoor که می تواند به طور خیلی ساده ایجاد نام کاربری جدید یا پیچیده تر استفاده از وب شل در وب یا بکدورهای مثل rootkit که در سطح سیستم عامل قرار داده می شود انجام شود . البته باید به این نکته توجه کرد . استفاده از ابزارهای غیر قانونی در تست نفوذ قانونمند ممنوع است !
فرایندهای که بعد از نفوذ انجام می شود شامل گامهایی می باشد که به دیتابیس یک سازمان دست پیدا می کنند یا به حساس ترین اطلاعات مثل دسترسی به دوربین ها لیست کارمندان یا جابجایی پول در بانک این مرحله نیز در خیلی از گزارش های تست نفوذ capture می شود که به آن poc در جلسات ارایه شود.
مهم ترین مرحله نگارش گزارش تست نفوذ می باشد شرکت Ec-council در یکی از دوره های امنیت LPT دوره گزارش نویسی را ارایه می کند که قالب های مختلف گزارش را به دانشجویان خود ارایه می کند که در هنگام تست نفوذ صرفا طبق قالب کلی مراحل را انجام و گزارش را تکمیل می کنند.
شرکت های امنیتی هر یک این مراحل را برای تست نفوذ تکنولوژی های مختلف شرح داده اند که این شرح در ابتدا به صورت check list می باشد و این لیست شامل مراحل کلی هست که افراد برای تست کردن استفاده می کنند که شامل آسیب پذیری های شناخته شده می باشد . در ادامه این لیست تبدیل به متدلوژی تست نفوذ می باشد یعنی در طی زمان شرکت ها تست های مختلف می کنند و بعد از رسیدن به نتایج در تست های مختلف methodology برای تست نفوذ ارایه می کنند به طور مثال متدلوژی تست نفوذ اینترنت اشیا که OWASP بر روی سایت خود قرار داده است. اگر methodology به یک ساختار نظامند تبدیل شود کلیه شرکت های امنیتی آن را تایید کنند به استاندارد تبدیل می شود و شرکت های کوچک تر یا Penetration tester ها از استاندارد های تست نفوذ برای عملیات خود استفاده می کنند . باید توجه داشت کلیه استانداردهای تست نفوذ در واقع یکی هستند ولی قالب گزارش تست نفوذ کمی با دیگری متفاوت هست . که در پست های آینده انواع این استاندارد ها را با یکدیگر مقایسه خواهیم کرد.