تست نفوذ که با نام Pen Testing نیز شناخته میشود یک فرایند امنیتی است که در آن متخصصین حوزه امنیت و فضای سایبری سعی میکنند تا آسیبپذیریهای یک سیستم (وبسایت، اپلیکیشن و…) را پیدا یا اصطلاحا کشف کنند.
هدف از انجام چنین کاری تشخیص هرگونه نقطه ضعفیست که ممکن است توسط هکرها پیدا شده و مورد سوء استفاده قرار بگیرد.
تست نفوذ درست مانند این است که یک بانک، سارقی را استخدام کرده تا به صندوقهای بانکی دستبرد بزند. اگر سارق موفق شود، وظیفه دارد که چگونگی این مسئله را به بانک گفته و بانک تلاش کند تا این آسیبپذیریها را رفع کند.
در این مطلب از وبلاگ همروش قصد داریم شما را به صورت کامل با چیستی تست نفوذ، انواع و مراحل انجام آن آشنا کنیم.
چه کسی عملیات تست نفوذ را انجام میدهد؟
افرادی که عملیات تست نفوذ را انجام میدهند معمولا هکرهای اخلاقی (هکر کلاه سفید) هستند که بجای نفوذ به سیستمها به قصد انجام عملیاتهای خرابکارانه، روی پیدا کردن نقصهای امنیتی یک محصول کار کرده و توسط شرکتهای مختلف نیز استخدام میشوند.
بهتر است این فرد کسی باشد که در جریان ساختار اپلیکیشن شما نبوده و در فرایند توسعه آن مشارکتی نداشته است. این مسئله باعث میشود تا تمام جنبههای آن را بررسی کرده و تنها به نقاط ضعف از پیش شناخته شده نفوذ نکند.
جالب است بدانید که بسیاری از هکرهای اخلاقی امروز، زمانی هکرهای کلاه سیاه بودهاند و به دلایلی حال وارد جریان دیگری از دنیای Hacking شدهاند. یکی از اصلیترین این دلایل نیز حقوقهای بالاییست که این افراد از شرکتهای مختلف دریافت میکنند.
انواع تست نفوذ
سناریوهای مختلفی را میتوان برای تست نفوذ در نظر گرفت که هرکدام براساس نیازمندیهای شرکت و درخواستهای آنها قابل پیادهسازی هستند، اما در این بین برخی از مرسومترین روشها و سناریوهای تست نفوذ عبارت از موارد زیر است:
تست نفوذ جعبه باز یا Open Box
در این روش، استخدامکننده، فرد هکر را در جریان برخی از اطلاعات شرکت هدف و اپلیکیشن قرار داده و هکر میتواند با کمک این موارد فرایند تست نفوذ را انجام دهد. این سناریو برای زمانی کاربرد دارد که ما بدانیم افرادی که در داخل شرکت به این حجم از اطلاعات دسترسی دارند به چه مقدار میتوانند به آن آسیب وارد کنند.
تست نفوذ جعبه بسته یا Closed Box
تست نفوذ جعبه بسته که به نام Single Blind نیز شناخته میشود حالتی است که ما هیچ اطلاعاتی از شرکت و اپلیکیشن را در اختیار هکر قرار نمیدهیم و خود وی باید مستقلا همه کارها را انجام دهد.
تست نفوذ پنهان یا Covert
در تست نفوذ پنهان، تنها مدیران کسب و کار از استخدام یک هکر کلاه سفید خبردار بوده و افرادی که متخصص امنیت و IT خود شرکت هستند از این فرایند خبردار نمیشوند. از این حالت برای مشاهده و ارزیابی سطح آمادگی افراد داخل شرکت استفاده میشود.
این روش با نام Double Bind نیز شناخته میشود. معمولا برای پیش نیامدن هرگونه مشکلی در این حالت، یکسری قراردادهای حقوقی بین صاحب محصول و فرد هکر تنظیم میشود.
تست نفوذ خارجی یا External
در تست نفوذ خارجی، تکنولوژیهای مورد هدف، زیرساختها و سرورهای خارج از شبکه شرکت هستند. برای مثال وبسایت، پروتکلهای انتقال اطلاعات، ایمیل شرکتی و… . در برخی از حالتها حتی به نفوذگرها اجازه ورود به خود ساختمان شرکت نیز داده نمیشود تا همه چیز به صورت یک سناریو از راهدور پیش برود. حتی موقعیت جغرافیایی فردی که به عنوان هکر کلاه سفید نیز شناخته میشود نیز ممکن است نیاز باشد که در جایی غیر از آن کشور باشد.
تست نفوذ داخلی یا Internal
در تست نفوذ داخلی، هکر تستهای نفوذ خود را درون شبکه داخلی شرکت انجام میدهد. از این روش برای ارزیابی پتانسیلهای آسیبرسانی توسط هر کدام از کارمندان شرکت استفاده میشود. کارمندانی که ممکن است پشت خود فایروال شرکت قرار گرفته باشند!
تست نفوذ چگونه انجام میشود؟
در فاز اولیه، هکر روی جمعآوری اطلاعات مورد نیاز برای انجام عملیات تست نفوذ تمرکز خواهد داشت. بعد از انجام این کار تلاش برای نفوذ به سیستم هدف شروع شده و برای انجام چنین کاری از ابزارهای مختلفی استفاده خواهد شد.
ابزارهایی که هکرها برای تست نفوذ استفاده میکنند شامل دو حالت نرمافزاری و سختافزاری است. برای مثال نرمافزارهایی برای حملات Brute-Force و SQL Injection ایجاد شدهاند که هکر میتواند از آنها برای تست نفوذ استفاده کند.
همچنین به لحاظ سختافزاری، فلشهای آلوده و کامپیوترهای کوچکی وجود دارند که میتوانند به سرور یا شبکه اصلی شرکت متصل شده و دسترسیهای مختلفی را به هکر بدهند.
جدای از این موارد، هکرها ممکن است از تکنیکهای Social Engineering یا مهندسی اجتماعی نیز استفاده کنند. برای مثال ارسال ایمیل فیشینگ به کارمندان شرکت و یا حتی پوشیدن لباس پستچی برای دسترسی فیزیکی به ساختمان و بخشهای مختلف.
به صورت خلاصه، هکرها در فاز عملیاتی، از تمام پتانسیلهای موجود برای انجام هرچه بهتر تست نفوذ استفاده میکنند، تا بیشترین آسیبپذیری را کشف کنند.
این موضوع را نیز در نظر بگیرید: با وجود آنکه این عملیاتها شبیهسازی شده هستند و با آگاهی مسئولان خود شرکت انجام میشوند، اما هکرها باید تمام ردپاهای خود را پاک کنند و نگذارند کسی متوجه آنها شود.
مراحل انجام تست نفوذ به صورت قدم به قدم
به صورت کلی و در حالت استاندارد پنج مرحله در فرایند تست نفوذ انجام میشود که به صورت قدم به قدم در ادامه ذکر شده است:
۱- برنامهریزی و جمعآوری اطلاعات
در این مرحله دو موضوع بررسی میشود:
- تعیین میزان گستردگی عملیات و هدف اصلی از انجام آن
- جمعآوری اطلاعات مربوط به شرکت (شبکه، میل سرور، زیرساختها و…)
۲- تجزیه و تحلیل
در مرحله دوم اپلیکیشن مورد نظر بررسی شده و در دو مرحله آنالیز میشود:
- بررسی کدهای داخل اپلیکیشن (بدون اجرا آن) برای پی بردن به هرگونه مشکل و رفتار غیرطبیعی
- بررسی اپلیکیشن در حالت اجرا و یافتن نقاط ضعف به لحاظ اجرایی
۳- تلاش برای دسترسی پیدا کردن
در این مرحله با استفاده از روشهای مختلف برای حمله به یک اپلیکیشن به منظور دسترسی پیدا کردن، عملیاتهای مختلفی انجام میشود. همانطور که در بالا اشاره شد Brute-Force و SQL Injection دو نمونه از این حالتها هستند.
۴- استفاده از سطح دسترسی
بعد از کسب دسترسی حال باید متوجه شویم که با این سطح از دسترسی چقدر میتوانیم به اپلیکیشن آسیب وارد کنیم. همچنین این مسئله که سعی کنیم تا دسترسیمان را نگهداری کنیم و توسط بخش امنیتی کشف نشویم نیز در این مرحله اهمیت دارد.
۵- آنالیز
در مرحله نهایی نیاز است که گزارشی کامل از وضعیت امنیت اپلیکیشن، مشکلات و آسیبپذیریهای یافت شده، اطلاعات محرمانهای که به آنها دسترسی پیدا کردهاید و… را تحویل دهید.
بعد از انجام تست نفوذ چه اتفاقی میافتد؟
بعد از اتمام عملیات تست نفوذ، هکر اخلاقی، تمام کشفیات خود را با تیم امنیت شرکت مورد نظر به اشتراک میگذارد. این اطلاعات به شرکت کمک میکند تا ضعفهای امنیتی خود را حل کرده و با بهروزرسانی زیرساخت و لایههای امنیتی، میزان خسارتهای احتمالی در آینده را کاهش دهند.
در پایان
برای بسیاری از شرکتها و سازمانها، امنیت مهمترین موضوعیست که نیاز است به خوبی پیادهسازی شود. در این زمینه هزینههای بسیار زیادی نیز صرف شده و همین موضوع از اهمیت بالای آن سخن میگوید. جالب است بدانید که یک متخصص تست نفوذ (هکر کلاه سفید) در آمریکا به صورت میانگین سالیانه ۱۳۵ هزار دلار درآمد دارد.
در این مطلب از وبسایت همروش با چیستی و ضرورت تست نفوذ یا Penetration Testing آشنا شدیم. همچنین انواع آن را بررسی کرده و با مراحل استاندارد انجام آن همراه بودیم.