با توجه به افزایش تهدیدات سایبری، شرکتها به دنبال روشهای جدیدی برای محافظت از برنامههای وب خود هستند. یکی از بهترین روشها، تست نفوذ است که برای هر استراتژی محافظتی بسیار ضروری شده است. تست نفوذ(penetration testing)، همچنین pen test و یا pen testing نامیده می شود و به طور پیوسته محبوبیت آن افزایش پیدا می کند.
بازار تست نفوذ از ۱.۷ میلیارد دلار در سال ۲۰۲۰ به ۴.۵ میلیارد دلار در سال ۲۰۲۵ رشد خواهد کرد.
تست نفوذ چیست؟
همانطور که اشاره شد، در سراسر جهان شرکتها با تهدیدات روزافزونی روبرو هستند که به زیرساختهای حیاتی آنها آسیب میزند. در سال ۲۰۲۲، با بیش از ۲۵،۰۰۰ CVE منتشر شده در طول سال، یک افزایش بیسابقه در دادههای CVE رخ داد. به طور میانگین، این بدان معناست که در هر روز حدود ۶۸.۷۵ CVE منتشر شده است.
( Common Vulnerabilities and Exposures یا CVE به معنای لیستی از نقایص امنیتی رایانهای است که به طور عمومی افشا می شود)
تست نفوذ به تأیید قانونی امنیت سیستم IT از دیدگاه یک مهاجم (هکر) اشاره دارد. در تست نفوذ، از روشها و ابزارهای مشابه یا حتی همان روشهای هک کردن استفاده میشود. یک تست نفوذ، یا همان تست پنهان، یک حمله سایبری شبیهسازی شده به سیستم کامپیوتری شما است که برای بررسی نقص های امنیتی قابل نفوذ انجام میشود. تست نفوذ شامل تلاش برای نفوذ به هر تعداد سیستمهای برنامهای (مانند رابطهای پروتکل برنامه، سرورهای frontend/backend ) است تا نقص های امنیتی کشف شوند.
فرآیندهای دیجیتال و سیستمهای مرتبط با آنها به طور مداوم در حال تغییر هستند. از یک سو، شکافهای امنیتی جدید به طور مداوم پیدا میشوند؛ از سوی دیگر، مشکلات امنیتی جدید ممکن است به صورت ناخواسته به دلیل بهروزرسانیها یا توسعههای بیشتر پدید آیند. بنابراین، یک تست نفوذ میتواند در زمانهای مختلف نتایج متفاوتی را ارائه دهد (هم مثبت و هم منفی) .
بنابراین، مهم است که بدانید تست نفوذ تنها یکی از تدابیر لازم برای افزایش امنیت یک مؤلفه IT است و هرگز نباید به آن اکتفا کرد. با این حال، تست نفوذ در ارزیابی امنیت بسیار مهم است. تحقیقات اخیر Core Security نشان داد که ۹۷٪ مخاطبان ، تست نفوذ را برای ایمنی خود ضروری میدانند.
چرا باید به دنبال تست نفوذ باشیم؟
تست نفوذ یک نمای کلی از وضعیت امنیت اطلاعات هدف مورد تست، در یک زمان خاص ارائه می دهد. ابتدا باید بررسی شود که آیا تدابیری که برای اطمینان از کیفیت و امنیت اتخاذ شدهاند کافی هستند؛ در عین حال، آسیبپذیریهای احتمالی باید کشف شوند که ممکن است فقط از دیدگاه یک مهاجم وجود داشته باشند و از دیدگاه دیگری نادیده گرفته شود. ساخت و نگهداری زیرساختهای IT همیشه یک فرآیند چرخه ی تکراری است که از طریق فناوریها، مفاهیم و روشهای جدید به طور مداوم تغییر میکند. بنابراین، تستهای نفوذ باید به صورت مکرر در فواصل زمانی منظم انجام شود.
چه چیزی میتواند تست شود؟
هر چیزی که به طور مستقیم یا غیرمستقیم با سیستمهای IT مرتبط است، میتواند تست شود. اما به طور کلی، چنین تستهایی بر روی برنامههایی تمرکز دارند که به دلیل وظیفه و هدف خود برای جمعیت گسترده از کاربران قابل دسترسی هستند و به همین دلیل در معرض حملات احتمالی مکرر هستند.
مواردی که معمولاً تست میشوند عبارتند از:
- سرورها و شبکههای داخلی یا خارجی قابل دسترسی
- برنامههای وب
- برنامههای تلفن همراه
- REST/SOAP API
- دسترسی و اتصالات بیسیم
- WLAN)،Bluetooth،RFID، LoWPAN 6)
اما مهندسی اجتماعی، مانند انجام شبیهسازیهای فیشینگ(phishing simulations)، بسته به تعریف، میتواند در محدوده ی تست نفوذ قرار گیرد.
روند تست نفوذ
فرایند تست نفوذ شامل چندین مرحله است. از آنجایی که در این حوزه استانداردهای کلی وجود ندارد، ممکن است با توجه به ارائهدهنده ی تست ، این مراحل تفاوتهای کوچکی با هم داشته باشند. با این حال، اغلب تفاوتهای جزئی از نظر محتوا وجود دارد.
یک تست نفوذ به عنوان یک فرآیند مستقل، میتواند به راحتی با جریان کاری یا فرآیندهای موجود یکپارچه شود و در نتیجه سطح کلی امنیت یک محصول را در چرخه عمر آن ، به صورت پایدار افزایش دهد.
مراحل تست نفوذ
آمادهسازی
در مرحله آمادهسازی، شرایط، چهارچوب و موضوع تست نفوذ با مشتری مطرح میشود. باید به طور دقیق ثبت شود که چه چیزی باید تست شود و از چه روشهایی استفاده میشود. از آنجایی که اغلب سیستمهای تولیدی تست میشوند، باید در نظر گرفت که تست نفوذ، کارکرد منظم سیستم را محدود نکند. همچنین باید دوره زمانی تست از قبل مشخص شود.
جمعآوری اطلاعات
در این مرحله کار عملی تست نفوذ آغاز میشود. در صورتی که تست نفوذ، تست جعبه سفید باشد، مشتری اطلاعات مورد نیاز در مورد موضوع تست را به تست کننده ارائه خواهد داد. در صورتی که تست نفوذ، تست جعبه سیاه است، تست کننده باید به طور مستقل با ابزار مناسب یا به صورت دستی، اطلاعات را به دست آورد. به طور کلی، هر دو روش خودکار و دستی به جای یکدیگر استفاده میشوند.
ارزیابی اطلاعات
اطلاعات جمعآوری شده برای بردارهای حمله احتمالی بررسی و ارزیابی میشود. این مرحله پایهای برای دوره عملی تر تست نفوذ ایجاد می کند.(بردار های حمله “Attack vector ” به معنای روش یا ترکیبی از روش هایی است که هکرهای سایبری برای نفوذ به یک شبکه یا سیستم قربانی استفاده می کنند.)
تستهای عملی
این مرحله اصلیترین بخش یک تست نفوذ است. نقاط ضعف شناسایی شده بررسی می شوند و تستهای بیشتری انجام میشود. به طور کلی، تستهای عملی از بردارهای حمله شناسایی شده در مراحل قبلی، بسیار فراتر میروند و دیگر مشکلات امنیتی متداول شیء مورد آزمایش را پوشش میدهند.
گزارشدهی
در مرحله نهایی، یک گزارش برای مشتری ایجاد میشود. این گزارش شامل اطلاعات دقیق در مورد نقاط تست جداگانه، روشهای استفاده شده و مشکلات امنیتی یافت شده است. مشکلات امنیتی بر اساس درجه بحرانی بودن آنها (کم، متوسط، بالا و بحرانی) دستهبندی شده و پیشنهاداتی برای رفع آنها ارائه میشود.
تست شبانه (اختیاری)
تست شبانه فقط بر روی مشکلات امنیتی یافت شده در تست نفوذ تمرکز دارد و برای ارزیابی مشکلات مستند شده در گزارش در نظر گرفته شده اند که آیا این مشکلات به درستی رفع شده اند یا خیر. با این حال، باید توجه داشت که رفع نواقص امنیتی ممکن است منجر به شکافهای جدید شود. بنابراین، همیشه تست نفوذ جدید و کامل برای تغییرات گسترده تر توصیه میشود.
انواع ابزارهای تست نفوذ
بیایید به بررسی رایجترین ابزارهای تست نفوذ بپردازیم. با توجه به اهداف خود، میتوانید ابزارهای مناسب را انتخاب کنید.
تست نفوذ به عنوان یک سرویس ( Penetration-testing-as-a-service(PTaaS))
“تست نفوذ به عنوان یک سرویس” (PTaaS) یک پلتفرم است که دسترسی منظم و مقرون به صرفه به تستهای نفوذ را فراهم میکند. مهم است که آن را با تست نفوذ ابری اشتباه نگیرید. PTaaS ، ارائه دهندگان خدمات تست نفوذ و سازمانهای مشتری را قادر می سازد تا به راحتی در این پلتفرم با هم همکاری کنند. سازمانها به صورت منظم از PTaaS برای شناسایی و رفع نقاط آسیبپذیر استفاده میکنند.
قبلاً، تست نفوذ یک فرآیند پیچیده بود و از طریق انعقاد قرارداد انجام میشد و سازمانها تنها میتوانستند یک یا دو بار در سال آن را انجام دهند. با PTaaS، سازمانها میتوانند تست نفوذ را روزانه یا حتی بعد از هر تغییر کد انجام دهند. تست نفوذ ابری بر روی یافتن ضعفهای امنیتی در محیطهای ابری خاص تمرکز دارد، در حالی که PTaaS اجازه می دهد تا تستهای مکرر بیشتری در تمام محیطها انجام شود.
ابزارهای تست نفوذ منبع باز(Open-source)
ابزارهای تست نفوذ مختلفی در دسترس هستند که میتوانند برای تجزیه و تحلیل، شبیهسازی حمله و گزارش امنیتی محیط IT استفاده شوند. بسیاری از این ابزارها منبع باز هستند، به این معنی که هر تیم امنیتی میتواند از آنها استفاده کند.
مهم است به یاد داشته باشید که برخی از ابزارهای اسکن منبع باز، مانند Metasploit و Burp Suite، به محصولات تجاری تبدیل شدهاند. این ابزارها همچنان به صورت نسخههای رایگان ارائه می شوند، اما با کاهش عملکرد. صرف نظر از ابزاری که انتخاب میکنید، حتماً باید اطمینان حاصل کنید که آن ابزار به طور فعال پشتیبانی شده و به صورت منظم بهروزرسانی می شود.
تست نفوذ برنامه وب
تست نفوذ برنامه وب به دنبال یافتن ضعفهای امنیتی یا نقاط آسیبپذیر در برنامههای وب، از جمله کد منبع، پایگاه داده و شبکه پشتیبان مرتبط است. این فرآیند معمولاً شامل سه مرحله است:
مرحله ۱. تشخیص: جمعآوری اطلاعات در مورد برنامه، مانند سیستم عامل و منابعی که استفاده میکند.
مرحله ۲. شناسایی: تلاش برای شناسایی موارد آسیبپذیر در برنامه.
مرحله ۳. بهرهبرداری: استفاده از نقاط آسیبپذیر شناسایی شده برای دسترسی غیرمجاز به برنامه و دادههای آن.
نتایج تست نفوذ برنامه وب، اطلاعاتی در مورد موارد آسیبپذیر شناسایی شده و هر گونه بهرهبرداری از این آسیب پذیری ها توسط هکرها را فراهم میکند. این دادهها به سازمانها کمک میکنند تا موارد آسیبپذیر را اولویتبندی کرده و تصمیم بگیرند که چگونه باید اصلاحات لازم را اعمال کنند.
تست نفوذ برنامههای تلفن همراه
تست نفوذ برنامههای تلفن همراه به دنبال شناسایی ضعفهای امنیتی به طور خاص در برنامههای تلفن همراه است، به استثنای سرورها و APIهای تلفن همراه.
دو نوع ارزیابی اصلی در این تست شامل موارد زیر است:
- تجزیه و تحلیل استاتیک شامل استخراج عناصری مانند کد منبع و ابرداده برای مهندسی معکوس است. هدف، تجزیه و تحلیل ساختار برنامه و شناسایی آسیبپذیریهای بالقوه است.
- تجزیه و تحلیل پویا: شامل ارزیابی رفتار برنامه در زمان اجرا است. تست کنندگان ممکن است سعی کنند برای کشف موارد آسیبپذیر، دادهها را از RAM دستگاه استخراج کنند یا کنترلهای امنیتی را برای کشف نقاط آسیبپذیر دور بزنند.
این دو روش تست معمولاً در طول تست نفوذ برنامههای تلفن همراه انجام میشوند.
تست نفوذ ابری
تست نفوذ ابری شامل شناسایی و بهرهبرداری از ضعفهای امنیتی در زیرساخت ابری شما با انجام حملات سایبری کنترل شده است. این فرآیند با رعایت دستورالعملهای سختگیرانه ایجاد شده توسط ارائه دهندگان خدمات ابری مانند AWS و GCP انجام میشود. هدف آن شناسایی و رفع آسیبپذیریها است، قبل از آنکه افراد مخرب بتوانند از آنها سوء استفاده کنند.
به بیان ساده، تست نفوذ به تستهای امنیتی تهاجمی اطلاق میشود که بر روی یک سیستم، سرویس یا شبکه انجام میشود تا ضعفهای امنیتی را شناسایی کند. تست نفوذ ابری به طور خاص بر شبیهسازی حملات به سرویس های ابری برای ارزیابی اقدامات امنیتی آنها ، تمرکز دارد .
تست نفوذ شبکه
تست نفوذ شبکه یک سرویس امنیتی است که به شناسایی معایب و نقص ها در شبکهها، سیستمها، هاست ها و دستگاهها با استفاده عمدی از تکنیکهای مخرب برای آزمایش پاسخهای امنیتی شبکه میپردازد. به عبارت ساده، شرکتها هکرهای اخلاقمند را استخدام میکنند تا با استفاده از هر وسیلهای سعی کنند به شبکهها نفوذ کنند و نقاط ضعف را پیدا کنند. تست نفوذ شبکه مزایای متعددی را برای شرکتها فراهم میکند.
مزایای برتر تست نفوذ شبکه عبارتند از:
- درک معیارهای شبکه: تست نفوذ، درک درستی از نقاط قوت و ضعف امنیت شبکه شما ارائه می دهد.
- تست کنترلهای امنیتی: با شبیهسازی سناریوهای حمله واقعی، اثربخشی کنترلهای امنیتی شبکه را ارزیابی میکند.
- ارزیابی وضعیت امنیتی: تست نفوذ، وضعیت کلی امنیتی زیرساخت شبکه را ارزیابی میکند.
- شناسایی نقاط ضعف امنیتی: این تست، آسیبپذیریها و نقاط ضعف خاصی را که هکرها میتوانند از آن ها سوء استفاده کنند، کشف میکند.
- ارزیابی خطر: تست نفوذ به شما کمک میکند تا خطرات احتمالی شبکه خود را درک کنید و تلاشها برای کاهش خطر را اولویتبندی کنید.
- رفع نقص های امنیتی: پس از شناسایی نقاط ضعف امنیتی شبکه، میتوان این نواقص را مدیریت و رفع کرد تا امنیت کلی ارتقاء یابد.
- جلوگیری از نفوذ: تست نفوذ با شناسایی پیشگیرانه نقاط آسیبپذیر، از نفوذ به شبکه و دادهها جلوگیری میکند.
- تضمین امنیت شبکه و سیستم: انجام منظم تست نفوذ به حفظ امنیت و استحکام محیط شبکه و سیستم کمک میکند.
تست نفوذ به شرکتها امکان ارزیابی کنترلهای امنیتی، کاهش آسیبپذیریها و پیشگیری فعالانه از نقض اطلاعات را میدهد.
تست نفوذ دستی و خودکار
تست نفوذ دستی و خودکار هر دو اهدف مشترک اما رویکردهای متفاوتی دارند. تست دستی شامل کارشناسان انسانی است که ضعفها و ریسکهای سیستم را ارزیابی میکنند. کارشناسان دادهها را جمعآوری میکنند، آسیبپذیریها ارزیابی کرده، جلو سوءاستفادهها را می گیرند و گزارشهای دقیقی با اقدامات اصلاحی تهیه میکنند.
از سوی دیگر، تست خودکار سریعتر، کارآمدتر و قابل اطمینانتر است. نیازی به مهندسان متخصص ندارد و میتواند توسط افراد با دانش کم انجام شود.
تست خودکار برای انجام کار از فناوری استفاده میکند. به طور خلاصه، تست دستی متکی بر تخصص انسانی است، در حالی که تست خودکار متکی بر قابلیتهای ماشین برای دستیابی به همان هدف است.
بهترین ابزارهای تست نفوذ
بالاخره به معرفی بهترین ابزارهای تست نفوذ رسیدیم که به شما در انجام تست نفوذ کمک میکنند.
Kali Linux
Kali Linux به دقت برای اهداف تهاجمی ، به خصوص به عنوان ابزار تست نفوذ، بهینهسازی شده است. این ابزار تست نفوذ میتواند روی سختافزار اختصاصی اجرا شود، اما معمولاً از طریق ماشینهای مجازی در سیستم عامل هایی مانند OS X یا Windows استفاده میشود. این پیکربندی انعطاف پذیری و امکانات بیشتری را فراهم میکند. Kali Linux با مجموعه جامعی از ابزارهایی که قبلاً ذکر شد، مجهز شده است و به عنوان سیستم عامل پیشفرض برای بیشتر سناریوهای تست نفوذ عمل میکند. با این حال، مهم است به یاد داشته باشید که Kali Linux با تمرکز بر حمله به جای دفاع طراحی شده است، که در صورت عدم امنیت مناسب، ممکن است آسیبپذیر باشد.
به این دلیل ذخیره فایلهای بسیار حساس یا اطلاعات محرمانه در یک ماشین مجازی Kali Linux توصیه نمیشود.
Metasploit
Metasploit یک فریم ورک تست نفوذ قدرتمند و همه کاره است که به کاربران امکان شبیهسازی حملات سایبری را میدهد. با استفاده از این فریمورک، تست کنندگان میتوانند به صورت دقیق اهداف خود را هدف گیری کنند، سوءاستفاده های مناسب را انتخاب کنند ، از بین ماژولهای مختلف ماژول مناسب را انتخاب کنند، پیامدهای مختلف را بسنجند و به صورت موثر حملات خود را انجام دهد.
Metasploit با ارائه گسترده قابلیتهای خودکار، زمان و تلاش مورد نیاز برای وظایف خسته کننده پیشین را به شدت کاهش میدهد. این فریمورک به عنوان “پرکاربردترین فریمورک تست نفوذ جهان” شناخته شده است و به عنوان یک پروژه متن باز با پشتیبانی تجاری از Rapid7 عمل میکند. Metasploit یک ابزار ضروری برای افراد و سازمان هایی است که به دنبال تقویت سیستمهای خود در برابر حملات احتمالی هستند تا امنیت جامع و کاملی را تضمین کنند.
Nmap(Network mapper)
Nmap یک نرمافزار تست نفوذ ضروری برای تست کنندگان است که به عنوان پدربزرگ اسکنرهای پورت شناخته میشود. این نرمافزار برای شناسایی پورتهای باز و سرویسهای در حال اجرا بر روی آنها بسیار حیاتی است. این اطلاعات در فاز تشخیص بسیار ارزشمند است و Nmap قابل اعتماد ترین ابزار برای این کار است. مهم است توجه داشته باشید که با وجود نگرانیهای گاه به گاه مطرح شده توسط مدیران غیرفنی در مقام رهبری شرکت، درباره انجام اسکن پورت در شبکه سازمانی توسط نهادها یا افراد ناشناخته ، استفاده از Nmap کاملاً قانونی است. از نظر مفهومی، میتوان آن را با زدن به دربهای خانههای مسکونی در یک محله برای تعیین اینکه آیا کسی در خانه است یا خیر، مقایسه کرد. سازمانهای معتبر، از جمله نمایندگی های بیمه، نقشهبرداران اینترنتی مانند Shodan و Censys ، و ارائهدهندگان ارزیابی ریسک مانند BitSight، به طور منظم از نرمافزارهای تخصصی اسکن پورت ( معمولاً رقبای Nmap مانند Masscan یا Zmap ) برای اسکن کل دامنهی آدرسهای IPv4 استفاده میکنند . این روش به نقشهبرداری از وضعیت امنیتی عمومی شرکتهای بزرگ و کوچک کمک میکند. با این حال، مهم است که توجه داشته باشید که هکرها نیز از تکنیکهای اسکن پورت استفاده میکنند، بنابراین لازم است چنین فعالیتهایی را برای ارجاع و آنالیز در آینده، ثبت کرده و بر آن ها نظارت کنید .
John the Ripper
John the Ripper یک نرمافزار کرک پسورد متنباز است که برخلاف نام آن که یادآور یک قاتل سریالی در لندن است، هدف متفاوتی را دنبال میکند. این نرمافزار به جای آسیب رساندن، در کرک پسورد آفلاین بسیار موفق است. با استفاده از یک لیست کلمات که به صورت متداول در پسوردها استفاده می شود، John the Ripper با جایگزینی حروفی مانند “a” با نمادهایی مانند “@” یا جایگزینی “s” با “۵”، جهشهایی را ایجاد میکند. با بهرهگیری از قدرت محاسباتی یک GPU قوی، بی وقفه ترکیبهای مختلفی را تست میکند تا موفق به رمزگشایی یک رمز عبور شود. با توجه به اینکه بیشتر افراد از رمزهای عبور کوتاه و ساده استفاده میکنند، John the Ripper اغلب در شکستن اطلاعات دسترسی رمزگذاری شده موفق است.
Wireshark
Wireshark، یک تحلیلگر پروتکل شبکه است که در همه جا مورد استفاده قرار میگیرد و برای شناسایی ترافیکی که از زیرساخت شبکه شما عبور میکند، بسیار حیاتی است. اگرچه معمولاً برای عیب یابی روزانه مسائل مربوط به اتصال TCP/IP استفاده میشود، اما Wireshark دارای قابلیت هایی برای آنالیز صدها پروتکل مختلف است. علاوه بر این، Wireshark از آنالیز و رمزگشایی بی وقفه برای بسیاری از پروتکلها، پشتیبانی میکند. یادگیری استفاده از نرمافزار تست نفوذ Wireshark برای افرادی که به تست نفوذ میپردازند، ضروری است.