تست نفوذ (penetration testing) به معنای بررسی و ارزیابی امنیت سیستم ها، شبکه ها یا برنامه های کامپیوتری می باشد. در این فرایند، یک تیم امنیتی یا فرد متخصص تلاش می کند تا با استفاده از تکنیک ها و ابزارهای مشابه یا حتی همان روشهای هک کردن، به صورت قانونی و با اجازه مالک سیستم، به سیستم وارد شده و نقاط ضعف امنیتی آن را شناسایی و رفع کند و از وقوع حملات سایبری جلوگیری کند.
با توجه به افزایش تهدیدات سایبری، شرکتها به دنبال روشهای جدیدی برای محافظت از برنامههای وب خود هستند. یکی از بهترین روشها، تست نفوذ است که برای هر استراتژی محافظتی بسیار ضروری شده است و به طور پیوسته محبوبیت آن افزایش پیدا می کند
چرا باید به دنبال تست نفوذ باشیم؟
تست نفوذ یک نمای کلی از وضعیت امنیت اطلاعات هدف مورد تست، در یک زمان خاص ارائه می دهد. ابتدا باید بررسی شود که آیا تدابیری که برای اطمینان از کیفیت و امنیت اتخاذ شدهاند کافی هستند یا خیر. در عین حال، آسیب پذیریهای احتمالی باید کشف شوند که ممکن است فقط از دیدگاه یک مهاجم وجود داشته باشند و از دیدگاه دیگری نادیده گرفته شود.
ساخت و نگهداری زیرساختهای IT همیشه یک فرآیند چرخه ی تکراری است که از طریق فناوریها، مفاهیم و روشهای جدید به طور مداوم تغییر میکند. بنابراین، تستهای نفوذ باید به صورت مکرر در فواصل زمانی منظم انجام شود.
چه مواردی تست می شود
هر چیزی که به طور مستقیم یا غیرمستقیم با سیستمهای IT مرتبط است، میتواند تست شود. اما به طور کلی، چنین تستهایی بر روی برنامههایی تمرکز دارند که به دلیل وظیفه و هدف خود برای جمعیت گسترده از کاربران قابل دسترسی هستند و به همین دلیل در معرض حملات احتمالی مکرر هستند.
مواردی که معمولاً تست میشوند عبارتند از:
- سرورها و شبکههای داخلی یا خارجی قابل دسترسی
- برنامههای وب
- برنامههای تلفن همراه
- REST/SOAP API
- دسترسی و اتصالات بیسیم
- WLAN)،Bluetooth،RFID، LoWPAN 6)
اما مهندسی اجتماعی، مانند انجام شبیهسازیهای فیشینگ(phishing simulations)، بسته به تعریف، میتواند در محدوده ی تست نفوذ قرار گیرد.
اگر مایلید با ابزارهای تست نفوذ آشنا شوید، پیشنهاد می کنم مطلب زیر را مطالعه فرمائید:
مراحل تست نفوذ
از آنجایی که در این حوزه استانداردهای کلی وجود ندارد، ممکن است با توجه به ارائهدهنده ی تست ، این مراحل تفاوتهای کوچکی با هم داشته باشند. با این حال، اغلب تفاوتهای جزئی از نظر محتوا وجود دارد.
تست نفوذ به عنوان یک فرآیند مستقل، میتواند به راحتی با جریان کاری یا فرآیندهای موجود یکپارچه شود و در نتیجه سطح کلی امنیت یک محصول را در چرخه عمر آن ، به صورت پایدار افزایش دهد.
آمادهسازی
در مرحله آمادهسازی، شرایط، چهارچوب و موضوع تست نفوذ با مشتری مطرح میشود. باید به طور دقیق ثبت شود که چه چیزی باید تست شود و از چه روشهایی استفاده میشود. از آنجایی که اغلب سیستمهای تولیدی تست میشوند، باید در نظر گرفت که تست نفوذ، کارکرد منظم سیستم را محدود نکند. همچنین باید دوره زمانی تست از قبل مشخص شود.
جمعآوری اطلاعات
در این مرحله کار عملی آغاز میشود. در صورتی که تست نفوذ، تست جعبه سفید باشد، مشتری اطلاعات مورد نیاز در مورد موضوع تست را به تست کننده ارائه خواهد داد. در صورتی که تست نفوذ، تست جعبه سیاه است، تست کننده باید به طور مستقل با ابزار مناسب یا به صورت دستی، اطلاعات را به دست آورد. به طور کلی، هر دو روش خودکار و دستی به جای یکدیگر استفاده میشوند.
ارزیابی اطلاعات
اطلاعات جمعآوری شده برای بردارهای حمله احتمالی بررسی و ارزیابی میشود. این مرحله پایهای برای دوره عملی تر تست نفوذ ایجاد می کند.(بردار های حمله “Attack vector ” به معنای روش یا ترکیبی از روش هایی است که هکرهای سایبری برای نفوذ به یک شبکه یا سیستم قربانی استفاده می کنند.)
تستهای عملی
این مرحله اصلی ترین بخش است. نقاط ضعف شناسایی شده بررسی می شوند و تستهای بیشتری انجام میشود. به طور کلی، تست های عملی از بردارهای حمله شناسایی شده در مراحل قبلی، بسیار فراتر میروند و دیگر مشکلات امنیتی متداول شیء مورد آزمایش را پوشش می دهند.
گزارشدهی
در مرحله نهایی، یک گزارش برای مشتری ایجاد میشود. این گزارش شامل اطلاعات دقیق در مورد نقاط تست جداگانه، روشهای استفاده شده و مشکلات امنیتی یافت شده است. مشکلات امنیتی بر اساس درجه بحرانی بودن آنها (کم، متوسط، بالا و بحرانی) دستهبندی شده و پیشنهاداتی برای رفع آنها ارائه میشود.
تست شبانه (اختیاری)
تست شبانه فقط بر روی مشکلات امنیتی یافت شده تمرکز دارد و برای ارزیابی مشکلات مستند شده در گزارش در نظر گرفته شده اند که آیا این مشکلات به درستی رفع شده اند یا خیر. با این حال، باید توجه داشت که رفع نواقص امنیتی ممکن است منجر به شکافهای جدید شود. بنابراین، همیشه تست نفوذ جدید و کامل برای تغییرات گسترده تر توصیه میشود.