تست نفوذ (Pen-Test Techniques) یک پروسه مجاز، برنامه ریزی شده و سیستماتیک برای به کارگیری آسیب پذیری ها جهت نفوذ به سرور، شبکه و یا منابع برنامه های کاربردی است و فرآیند ارزیابی معیارهای امنیتی شرکت است . تست نفوذ پذیری رویه ای است که درآن میزان امنیت اطلاعات سازمان مورد ارزیابی قرار می گیرد. معیارهای امنیتی از لحاظ ضعف طراحی، مشکلات فنی، و آسیبپذیریها مورد آنالیز قرار میگیرند. و نتایج آن طبق گزارش کاملی به مدیران و نیروهای فنی ارائه میشود. یکی از انواع تجربیات اختصاصی تیم نفوذ سنجی شرکت پیشگامان کی پاد با داشتن ابزارهای محرمانه (CANVAS ,HP-WebInspect ,Burp Suite Pro ,Metasploit Pro, …) کدهای مخرب محرمانه در سطح نرمافزارهای مدیریت محتوای وب ( Joomla ,WP, …) است و البته متدولوژیهای ابداعی توسط تیم، در لبه این تکنولوژی قرار دارد.
اهداف انجام آزمون نفوذپذیری عبارتند از:
دامنه آزمون نفوذپذیری در شرکت کیپاد موارد زیر را شامل میشود:
آزمون نفوذ Core Banking
آزمون نفوذ اینترنت اشیاء (IoT)
آزمون نفوذ سامانههای تحت وب (Web Application)
آزمون امنیت فیزیکی (Physical)
آزمون نفوذ تجهیزات شبکه و سرویسهای سیستمعامل (Network, Firewall, OS Services)
آزمون نفوذ سیستمهای ویپ (VOIP)
آزمون نفوذ برنامههای دسکتاپ (Desktop Application)
آزمون نفوذ وبسرویس (Web Service)
آزمون نفوذ برنامههای کاربردی موبایل (Mobile Application)
آزمون نفوذ شبکههای بیسیم (Wireless)
آزمون نفوذ شبکههای کنترل صنعتی (SCADA , DCS)
مراحل تستنفوذ پذیری نرمافزارهای کاربردی تحت وب:
تشخیص و سپس تست و بررسی وب سرویسهای نرمافزار مانند:
در بررسی یک نرمافزار تحت وب (web application) مهمترین نکته بررسی تعاملات و شروط داد و ستدی است که نرمافزار با کاربر خود داراست:
بررسی تمامی ارتباطات با Data-Store ها
تست امنیتی نرمافزار
بررسی پوشههای نرمافزار و مکانیزمهای امنیتی که باید اعمال شود
بررسی امن بودن بستر پروتکلها
بررسی اعتبارسنجیها و session های نرمافزار در برقراری ارتباطات برون سازمانی
بررسی ارتباطات بین نرمافزارهای اتوماسیون و تحت وب
بررسی کلیه پروتکلهایی که نرمافزار با آنها یا در بستر آن کار میکند
تست اتوماتیک: استفاده از نرمافزارهای اتوماتیک در جهت تست و پویش آسیبپذیریها، این مرحله از تست نفوذ نقطه عطف این فرآیند نخواهد بود و صرفا یک مرحله خواهد بود
استفاده از ابزارهای تجاری: استفاده کردن از ابزارهای تجاری و یا رایگان 2 قطب متفاوت میباشد، ابزارهای تجاری اغلب با هوش مصنوعی توام هستند اما نرمافزارهای رایگان تلاشی بیشتر از خواندن پایگاه داده و اعمال روشهای دیکته شده برای شناسایی نخواهند داشت. یکی از افتخارات شرکت کیپاد داشتن نرمافزارهایی بی همتا، با سابقه و حرفهای در زمینه تست است مانند نرمافزار Burp Suite Pro از شرکت PortSwigger و نرمافزار بسیار قدرتمند CANVAS از شرکت Immunity نمونههایی گرانقیمت هستند. همچنین نرمافزار HP WebInspect از مرکز امنیت وب کمپانی HP که مورد استفاده در بسیاری از مراکز دولتی و بانکها میباشد و با تحلیلی که انجام شده است این نرمافزار هیچ رفتار جاسوسانهای نداشته است و یادآور میشود علاوه بر تست و اسکن آسیبپذیری، قابلیت Fuzzing یا بررسی عمیق نرمافزار با استفاده از پارامترهای پیچیده نیز در نرمافزار نهفته است. از ویژگیهای دیگر HP Webinpect عبارتند از:
استفاده از ابزارهای رایگان: از دسته گستره ای از نرم افزار های کرک شده و رایگان برای هر قسمت و تکنولوژی های نرم افزار استفاده خواهد شد. این نرم افزار ها طبق 2 استاندارد : OWASP و BackTrack تبعیت خواهد کرد.
تست دستی: تست دستی عبارت است از اعمال سناریوهای حمله به اکتفای مهارت انسانی و همچنین اکتفا نکردن به خروجیهایی است که در مرحله قبل به دست آمده است. تجربه ثابت کرده است در اغلب موارد مخاطراتی کشف میشود که حتی هوش نرمافزار نیز قادر به شناسایی آنها نیست. در این مرحله موارد زیر :
در کل در تمام روندهای بالا که شرح داده شده علاوه بر استفاده از استانداردها و Compliance های موجود حملاتی کاملا تخصصی همچون:
DDOS
Triming Attacks
XML, JSON and General API Security
Encrypting Cookies
SQLi Family
Preventing Tampering Attacks
Server Http Header
Click Jacking
File Upload Vulnerabilities
Injecting Scripts
Cross-Site Scripting
Untrusted Input
Session Fixation / Stealing
Cross-Site Request Forgery (CSRF)
...
مراحل تست و نفوذپذیری شبکه:
شناسایی شبکه (درون / برون سازمانی): در این مرحله لازم است کل شبکه مورد شناسایی قرار بگیرد. این امر از این حیث انجام میگیرد که یادآور این نکته باشد که ممکن است جایگاه یک شخص با دسترسی بالا به منابع متزلزل گردد و این دید باید لحاظ شود.
شناسایی ارتباطات بیرون شبکه: ممکن است کاربری با یک نرم افزار از راه دور ارتباط داشته باشد، این از این نظر است که نرم افزار تحت وب نباشد، طرق ارتباطی شخص با نرم افزار سرویس دهنده و پروتکل های مورد استفاده از لحاظ امنیتی بسیار حیاتی خواهند بود. در این قسمت لازم است، ابتدا نحوه و مکانیزمی که سازمان برای دور کاری اتخاذ کرده مورد بررسی قرار گیرد و سپس شناسایی شود. برای مثال ارتباط یکی از پرسنل برای دسترسی به یک نرمافزار که بدون نسخه کلاینت یا مشتری است استفاده از تکنولوژی Citrix یا 2x است، این ارتباط خارجی در صورت پذیرفتهشدن به عنوان یکی از سیستمهای شبکه داخلی سازمان مورد تایید خواهد بود که چنانچه امنیت آن مورد نظر قرار نگرفته باشد ریسک بالایی را خواهد داشت.
تست بستر شبکه: بعد از شناسایی کامل شبکه تست شبکه از نظر امنیت و کشف نقاط ضعف آغاز میشود، ( تست نفوذ) در این مرحله از 2 دید بستر ارتباطی مورد بررسی قرار میگیرد:
- تست اتوماتیک شبکه با استفاده از نرمافزار: استفاده از نرم افزارهایی همچون : CANVAS Enterprise ،Metasploit Pro و ...
- تست اتوماتیک شبکه با اجرای سناریوهای حمله: اجرای سناریوهای حمله با استفاده از کدهای مخرب (0-day exploits) و تکنیکهای فردی نسبت به بستر شبکه و همچنین بررسی و تست تجهیزات شبکه در این قسمت قرار خواهد گرفت.
- مهندسی اجتماعی
ارائه طراحی امن نسبت به مخاطرات کشف شده: نهایتا بعد از آنالیز کامل شبکه و یافتن تمامی حفرههای نفوذ و ضعفهای بالقوه و ارائه آنها به کارفرما نوبت به راهنمایی و طراحی یک شبکه امن و ارائه هرگونه تمهیدات است. بستر شبکه را نمیتوان با نصب وصلههای امنیتی یا تنظیم درست یک ماژول امن کرد، باید از سیستمهای امنیتی به روز و هوشمند استفاده کرد. نکته اینکه استفاده از جا و مکان مناسب در بکارگیری این سختافزار تاثیر آنها را چندین برابر خواهد کرد.