مقدمه
در سالهای اخیر با توجه به پیشرفت فناوری، که افراد، گروهها و سازمانها در راستای رشد خود نیاز به ارتباط آنلاین با دنیا دارند، اهمیت محافظت در برابر حملات سایبری دو چندان شده است. حملات مکرر و سوءاستفاده از دادههای دزدیده شده، نسبتا به یک امر عادی تبدیل شده، در نتیجه شرکتهای توسعهدهنده فناوری اطلاعات و ایمنی شبکه، همواره مجبور به انجام تلاشهای جدی در حوزه مدیریت دادهها و امنیت شبکه هستند. یکی از مراحل مهم ایمنسازی، انجام تست نفوذ شبکه است.
همواره و همه روزه شاهد تعداد زیادی نقض دادهها (data breaches) و قطع شبکه هستیم که بیشتر به دلیل آسیبپذیری در محصولات نرمافزاری یا حملات سایبری است که شبکههای فناوری اطلاعات را هدف قرار میدهند. نمیتوان انکار کرد که در چند سال گذشته شاهد روند فزاینده این حملات و سرقت دادهها بودهایم. طبق گزارش سازمان ملل، در طول دوره همهگیری کرونا (COVID-19)، جرایم سایبری 600٪ افزایش یافته و همچنین، گزارش اخیر IBM بیان میکند که میانگین جهانی هزینه نقض داده به 3.86 میلیون دلار در هر نقض رسیده است.
برای درک بیشتر در مورد نحوه ایمنسازی شبکه، جلوگیری از نقض دادهها، و اهمیت تست نفوذ شبکه تا انتهای مقاله با ما همراه باشید.
تست نفوذ شبکه چیست؟
با افزایش شدت گرفتن حضور آنلاین جهانی، تعداد تهدیدات سایبری مرتبط نیز همواره در حال افزایش است. در نتیجه نظارت مداوم بر امنیت شبکه، وب اپلیکیشن، سرورها و تمام تجهیزات شبکه و همچنین آشنایی با مشکلات امنیتی و تهدیدات سایبری، بسیار اهمیت داشته و از الزامات است. اینجاست که تست نفوذ شبکه به شما کمک میکند تا از طریق فرآیند هک قانونمند (ethical hacking) و تهدیدات شبیهسازیشده، چنین مسائل امنیت سایبری را، قبل از تأثیر منفی بر شبکه، پیدا کرده و رفع کنید.
در این زمینه، تست نفوذ شبکه (pen-test) ابزاری بسیار مهم در تشخیص پیکربندیهای نادرست امنیتی و قرار گرفتن در معرض آسیبپذیریها و تهدیدات احتمالی است که در صورت سوءاستفاده توسط هکرها، میتواند به شبکه، سرورهای وب و سایر برنامهها آسیب برساند. تست نفوذپذیری، یک حمله سایبری شبیهسازی شده علیه شبکه، برای بررسی آسیبپذیریهای قابل بهرهبرداری، است. در زمینه امنیت برنامههای کاربردی تحت وب، تست نفوذ معمولا برای تقویت فایروال برنامههای وب (Web application firewall یا WAF) استفاده میشود.
تست نفوذپذیری میتواند شامل تلاش برای نقض هر تعداد از سیستمهای کاربردی، (به عنوان مثال، واسط برنامهنویسی کاربردی (API)، سرورهای frontend/backend) برای کشف آسیبپذیریها باشد، مانند ورودیهایی که مستعد حمله تزریق داده هستند. اطلاعات ارائه شده توسط تست نفوذ، برای تنظیم دقیق خط مشیهای امنیتی فایروال برنامههای وب (WAF) و اصلاح آسیبپذیریهای شناسایی شده استفاده میشود.
اهمیت تست نفوذ شبکه
دلیل اصلی اهمیت تست نفوذ مدیریت شبکه در زمان بروز هرگونه نفوذ توسط هکرهای مخرب است. تست نفوذپذیری روشی برای اطمینان از موثر بودن عملکرد سیاستهای امنیتی سازمان است. در ادامه توجه به این نکته بسیار اهمیت دارد که این کار حتما باید توسط یک فرد حرفهای و در عین حال معتمد انجام شود، زیرا در طی تست نفوذپذیری، این فرد فعالیتهای یک هکر واقعی را تقلید کرده و به منابع تجاری نفوذ میکند. اگر تست نفوذ نقض امنیتی را نشان دهد، کارشناس امنیت، ارزیابیهای دقیق آسیبپذیری و گزارش تست نفوذ را فراهم میکند. بدین ترتیب یک سازمان، آسیبپذیریهایی که منجر به نقض ایمنی و نفوذ به شبکه میشوند را، برطرف میکند.
محافظت از دادههای حیاتی
تست نفوذپذیری معمولا توسط هکرهای اخلاقی با شبیهسازی یک حمله سایبری انجام میشود. یک ضعف کوچک پتانسیل انتشار اطلاعات حساس را دارد که بر اعتماد مشتریان شما و نقض جدیتر قوانین و مقررات مختلف تأثیر میگذارد. یک ضعف کوچک در ساختار امنیتی، میتواند منجر به انتشار اطلاعات حساس شود که بر اعتماد مشتریان شما و نقض جدیتر قوانین و مقررات مختلف تأثیر میگذارد.
تضمین امنیت در سرتاسر شبکه
تست نفوذپذیری کمک میکند تا مطمئن شوید هیچ عاملی نمیتواند یکپارچگی شبکه را به خطر بیاندازد. ارزیابی و اسکنهای امنتیتی وب، بخشی از اقدامات اولیه، مخصوصا در مدیریت دادههای حیاتی، است. برخی از نمونههای این نقضها، (SQL injections)، است که بر اثر پیکربندی ضعیف فایروالها، نرمافزارهای قدیمی، ویروس یا بدافزار سنتی پدید می آید.
الزامات انطباق
صرف نظر از نوع کسبوکار، مقررات خاصی بر انجام تست نفوذپذیری تاکید دارند. برای مثال کسبوکارهایی که به نوعی با کارت بانکی در ارتباط هستند، انجام آزمایشهایی نظیر تست نفوذپذیری برای حفاظت از اطلاعات مشتریان ضروری است (PCI DSS).
پشتیبانی موثر در درازمدت
برای تضمین امنیت شبکه، تستهای نفوذپذیری شبکه باید در یک دوره زمانی به صورت مداوم اجرا شود. متخصصان انجام این کار کنترلهای حفاظتی مورد استفاده برای امنیت شبکه، نظیر فایروال، دفاع عمیق، فرآیندهای رمزگذاری و غیره را بررسی میکنند.
مراحل تست نفوذ شبکه
مرحله 1: شناسایی عوامل بالقوه
امروزه کارشناسان امنیت شبکه با تحلیل دستاورد هکرهای قانونمند، سیستم را برای شناسایی هر گونه ضعف یا حفره احتمالی بررسی میکنند (استراژدی شناسایی).
از لحاظ فنی– در اینجا، کارشناسان به دنبال نقاط ضعف در پورتهای شبکه، تجهیزات جانبی و هر نرمافزار مرتبط دیگری هستند که میتواند به هکرها اجازه نفوذ به سیستم را بدهد. اینجاست که ارزیابی آسیبپذیری اهمیت داشته و مفید است.
به کمک خطای انسانی – مهندسی اجتماعی (social engineering) یک روش حمله است که به شدت بر تعامل انسانی متکی است و اغلب شامل دستکاری افراد در شکستن رویههای امنیتی است. انجام این تستها برای افزایش آگاهی به کارمندان برای جلوگیری از این نوع کلاهبرداریها و به دست آوردن اطلاعات ایمن در مورد وضعیت عمومی امنیت کل سیستم، استفاده میشوند.
مرحله 2: کشف
اسکریپتهای از پیش کدگذاریشده یا سفارشیشده، برای شناسایی مشکلات احتمالی استفاده میکنند.
معمولاً یک اسکریپت در یک زمان یک مشکل را کشف میکند، بنابراین ممکن است برای تکمیل کل فرآیند به چندین اسکریپت نیاز باشد. جنبههای فنی و انسانی خطاها به یک اندازه اهمیت دارند، به عنوان مثال، نگاههای فنی به تزریق SQL یا امنیت ضعیف محیطی، و نگاههای اجتماعی به افشای اطلاعات حساس.
مرحله 3: بهرهبرداری
در مرحله بهرهبرداری، نفوذگرها از اطلاعات به دست آمده در مرحله کشف مانند، آسیبپذیریهای احتمالی و نقاط ورودی و غیره، استفاده کرده و سپس شروع به آزمایش اکسپلویتهای کشف شده در تجهیزات شبکه یا سیستمهای فناوری اطلاعات میکنند.
انواع تست نفوذپذیری شبکه
هر سیستم نیازمندیهای منحصر بفردی دارد، از این رو، هر یک از انواع تستهای نفوذپذیری را میتوان به صورت جداگانه یا ترکیبی مورد استفاده قرار داد. در تست نفوذ تلاش میشود تا رفتار هکرهای واقعی شبیهسازی شود، در نتیجه، با توجه به میزان اطلاعات در دسترس مهاجم در یک حمله سایبری واقعی، سه نوع روش تست نفوذ را میتوان تصور کرد که در ادامه مطلب به معرفی آنها میپردازیم:
تست جعبه سیاه (black-box testing)
تست “جعبه سیاه” بدون اطلاع قبلی از نحوه عملکرد یا هر یک از ویژگیهای فنی شبکه انجام میشود. در تست جعبه سیاه آزمونگر تقریبا هیچ اطلاعاتی از زیرساخت شبکه نداشته و یا اطلاعات اندکی از قبیل آدرس آیپی و … در اختیارش گذاشته شده است. بنابراین، آزمایش به وسیله کاوش کامل شبکه داده شده، به شیوهای جامع عمل میکند.
این واقعبینانهترین نسخه از یک حمله سایبری عمومی است و کسبوکارهایی که این حمله را ترجیح میدهند، کسانی هستند که حساسترین دادهها را مدیریت میکنند و یا میخواهند از تمام نقاط ضعف احتمالی مطلع شوند. نمونههایی از ابزارهای تست جعبه سیاه عبارتند از Selenium، Applitools، Microsoft Coded UI و موارد دیگر. این نوع تست میتواند زمانی طولانی را برای نتیجهگیری نیاز داشته باشد.
تست جعبه خاکستری (gray-box testing)
تست “جعبه خاکستری” که شامل حملات شبیهسازی شده، برای یافتن مشکلاتی است که یک شبکه، ممکن است در موقعیتهایی، مانند زمانی که اطلاعات ورود به سیستم با اهدافی مثل به دست آوردن اطلاعات داخلی یک سازمان (اطلاعات مشریان، اسناد فنی و …)، به سرقت میرود، با آن روبهرو شود. در این روش تستکنندگان ممکن است از اطلاعات اعتباری و ساختار دادهها آگاه باشند و همانند یک عضو داخلی حمله خود را براساس اطلاعاتی که دارند شروع کنند. برخی از ابزارهای رایج تست جعبه خاکستری عبارتند از Postman، Burp Suite، JUnit، NUnit و غیره.
تست جعبه سفید (white-box testing)
در اینجا، یعنی تست “جعبه سفید” متخصصان شبکه تمام دادههای ممکن را در مورد سیستم جمعآوری کرده، نسبت به نقصهای احتمالی آگاهی داشته و زیرساخت مشخصشده را برای دریافت پاسخ، هدف قرار میدهند. اگر رنگ مشکی واقع بینانه و خاکستری نسبتاً مداخلهگر باشد، تست جعبه سفید مانند بازرسی شبکه بوده و نتایج افزایش امنیت را بررسی میکند. در تست جعبه سفید، اطلاعات و دسترسی کامل نسبت به کد منبع و معماری نرمافزار برنامه تحت وب در اختیار آزمونگر قرار دارد.
این نسخه اجرای نهایی است و کسبوکارها معمولاً از آن استفاده میکنند تا اطمینان حاصل کنند که شبکه در مقابل حرفهایترین هکرها نیز غیرقابل نفوذ است. زمان انجام این تست از موارد دیگر طولانیتر بوده و از اهمیت بیشتری برخوردار است. بهترین ابزارهای تست جعبه سفید شامل Veracode، GoogleTest، CPPUnit، RCUNIT و غیره است.
یک تست نفوذپذیری تلاش میکند تا به روشی ایمن، وجود هر گونه نقطه ضعف یا آسیبپذیری در زیرساخت فناوری اطلاعات یک سازمان را بررسی کرده و از آن بهرهبرداری کند. مهمترین جنبه یک تست نفوذ شبکه، که به خوبی برنامهریزی شده و موفق است، شناسایی نیازهای مشتری و برنامهریزی بر اساس آن و در عین حال شناسایی تمام تهدیدات بالقوه است.
ابزارهای مورد استفاده در تست نفوذ شبکه
در اینجا چند ابزار امنیتی، برای اجرای تست نفوذپذیری شبکه را به صورت خلاصه بررسی میکنیم.
- Nessus- نسوس یک ابزار اسکن شبکه است که به شما این امکان را میدهد تا از طریق مرورگر و به صورت ریموت و از راه دور یک شبکه را بازرسی کرده و آسیبهای آن را شناسایی کنید.
- Nmap- ابزار Nmap یا Network Mapper، بهترین و پرکاربردترین نرم افزار متنباز (Open Source) و رایگان برای بازرسی امنیتی و اسکن شبکه است.
- NetCat- نت کت یک ابزار ارتباطی از طریق پورتهای Tcp و Udp هست که با استفاده از این ابزار میتوان بین دو سیستم عامل ارتباط برقرار کرد.
- Hydra- هیدرا یک کرکر (cracker) ورود به شبکه است. Hydra به تحلیلگران امنیتی، محققان و کارشناسان کمک میکند تا دسترسی و امنیت از راه دور را آزمایش کنند.
- Wireshark- وایر شارک یک آنالیزور یا تحلیلگر پکتهای شبکه است. یک تحلیلگر شبکه که پکتهای ذخیره شده را با جزئیات زیادی نمایش میدهد.
- Nikto- ابزار نیکتو یک اسکنر وب سرور متنباز است که نزدیک 7000 آسیبپذیری را بر روی وب سرور بررسی میکند.
- Metasploit- متااسپلوییت فریم ورکی متن باز است که به صورت اختصاصی برای آزمونگرهای نفوذ شبکه، هکرها، محققین امنیتی و دیگر فعالان موجود در زمینه امنیت شبکه نوشته شده است.
- PRET- ابزاری جدید برای تست امنیت چاپگر است که به تازگی توسعه یافته است.
- Burpsuite- ابزار برپ سوییت یک ابزار بسیار قدرتمند در زمینه تست نفوذ ، هک و امنیت وب اپلیکیشنها است. این ابزار با زبان برنامهنویسی جاوا نوشته شده و از دسته ابزارهای پروکسی سرور بهشمار میرود.
تست نفوذپذیری (Penetration Testing) چه تفاوتی با ارزیابی آسیبپذیری (Vulnerability Assessments) دارد؟
ارزیابی آسیب پذیری که به عنوان اسکن آسیبپذیری نیز شناخته میشود، رایانهها، سیستمها و شبکهها را از نظر ضعفهای امنیتی ارزیابی میکند. این اسکنها معمولاً خودکار هستند و آسیبپذیری های بالقوه را شناسایی میکنند.
در واقع ارزیابیهای آسیبپذیری فقط شامل یک اسکن ساده از شبکه به منظور یافتن مشکلات امنیتی احتمالی و سایر آسیبپذیریهایی است که میتوانند توسط مجرمان سایبری مورد سوءاستفاده قرار گیرند، که آن را به بخشی ضروری از کل فرآیند تست نفوذپذیری تبدیل میکند. این به این دلیل است که از آنجایی که ارزیابیهای آسیبپذیری فقط گزارشی در مورد نقاط آسیبپذیر ارائه میدهند، در صورتی که آزمایش نفوذ با قرار دادن شبکه در محیطی با حملات آنی و سپس ردیابی پاسخ، یک گام فراتر میرود.
ارزیابیهای آسیبپذیری نیز معمولاً فقط به مسائل فنی میپردازند، و نه خطاهای انسانی و مدیریت امنیت. علاوه بر این، پس از قرار دادن سیستم خود از طریق تست نفوذ، میتوانید از پرسنل با تجربه و متخصصان آموزش دیده در مورد مراحل بعدی حفاظت و سایر نکات راهنمایی بگیرید. این به شما تفسیر عمیقتری از نتایج آزمایش را ارائه میدهد و به شما کمک میکند تا در برابر همه موقعیتهای مخاطرهآمیز آمادگی داشته باشید.
جمعبندی
ارزیابی آسیبپذیری و تست نفوذپذیری هر دو باید برای بهبود امنیت کلی سیستم اطلاعات توسط یک متخصص ماهر در زمینه امنیت اطلاعات انجام شود. در نهایت باید اضافه کرد که آزمونهای نفوذپذیری باید به صورت دورهای انجام شود تا آسیبپذیریهای جدید شناسایی شوند. این که در چه زمان و دورهای باید، تستهای نفوذ مجدد صورت بگیرد، بستگی به نوع تست انجامشده و هدف از انجام آزمونهای نفوذپذیری دارد، که باعث میشود سازمان سریع و هوشیار در این حوزه عمل نماید. روشهای بسیاری برای افزایش ایمنی شبکه وجود دارد که یک سازمان میتواند از آن استفاده کند، اما تنها یک آزمون نفوذپذیری گسترده است که میتواند تمامی خلاءهای پیشبینینشده و حفرههای زیرساختهای فناوری اطلاعات را آشکار نماید. پس بهتر است این کار را به یک تیم متخصص و مطمئن بسپارید. ما در دژپاد با برخورداری از یک تیم متخصص و با تجربه میتوانیم به شما در این رابطه کمک کنیم.