هر سازمان، ارگان و یا شرکتهای بسیار بزرگ و مطرح، اطلاعات مختلفی از منابع و یا متخصصین خود دارد که باید از آنها محافظت کند. در واقع باید در مقابل افرادی که با کسب این شناسهها ممکن است ضررهای مالی و اطلاعاتی زیادی را به شرکت وارد کنند و یا حتی با دستکاری منابع اطلاعاتی و پروتکلها در فرایندهای تولیدی شرکت اختلالی به وجود آورند، نگهداری و حفظ کند.
بنابراین سامانه شرکتها، باید از امنیت بسیار بالایی برخوردار باشد تا هیچ شخصی نتواند به این اطلاعات حیاتی و ارزشمند سازمانی، دسترسی پیدا کند. در چنین حالتی از یک تکنیک امنیت سایبری به نام تست نفوذ یا به اصطلاح تست نفوذ (penetration test)، برای آزمایش و شناسایی وضعیت امنیتی سامانههای خود استفاده میکنند.
تست نفوذ یا pen test چگونه امنیت سامانهها را برقرار میکند؟
تست نفوذ یا pen test به متخصص امنیت سایبری این امکان را میدهد تا نقاط آسیبپذیر در سامانهها را شناسایی کند و آنها را رفع کند. هدف از انجام این تست این است که تمامی نقاط ضعف سیستم که میتواند راه ورودی برای مهاجمان باشد را پیدا کند و در جهت افزایش کارایی و امنیت سامانه، از آنها بهرهبرداری کند.
به زبان سادهتر، فرض کنید که مالک یک مجتمع تجاری، از شخصی بخواهد که لباس سارقی را بپوشد و از او بخواهد که به مجتمع نفوذ کرده و وارد دفتر اصلی و مدیریت ساختمان شده و هر آنچه را که در گاوصندوق وجود دارد را بردارد. در چنین حالتی اگر فرد سارق موفق به انجام این کار شود، مالک راههای ورودی که سد امنیتی شکسته میشود را شناسایی کرده و در صدد رفع آن برمیآید؛ این دقیقا همان کاری است که با کمک تکنیک pen test برای شناسایی نقاط آسیبپذیر سایتها برای ورود مهاجمان سایبری انجام میشود.
پن تست میتواند شامل تلاش برای نقض هر تعداد از سیستمهای کاربردی، (بهعنوان مثال، رابطهای پروتکل برنامه [API]، سرورهای frontend/backend) برای کشف آسیبپذیریها، مانند unsanitized inputs که مستعد حملات تزریق کد هستند، باشد.
بهترین کاندید برای انجام آزمون pen test یا تست نفوذ چه کسی است؟
یک متخصص امنیت سایبری که بهعنوان «هکر اخلاقی» نیز شناخته میشود، میتواند تست نفوذ را انجام دهد. معمولا برای انجام این کار از متخصصین زبده و یا هکرهای اخلاقی خارج از شرکت کمک میگیرند؛ دلیل آن هم این است که این افراد، هیچ اطلاعاتی از نحوه ایمنسازی سامانهها ندارد و میتواند نقاط ضعفی که از دست توسعهدهندگان شرکت خارج شده است را شناسایی و آنها را رفع کند. به همین دلیل است ه برای انجام این کار، پیمانکاران خارجی که دارای مجوز و یا گواهی انجام تست نفوذ هستند، استخدام میشوند.
برخی از این متخصصین حرفهای که توانایی انجام تست نفوذ یا pen test را دارند، دارای گواهینامه و مدارک پیشرفته و معتبر در این حوزه هستند؛ اما برخی دیگر ممکن است به صورت خودآموخته این تکنیک امنیتی را فراگرفته باشند. شاید برای شما جالب باشد که هکرهای بسیار حرفهای و زبدهای در این حوزه فعالیت میکنند که قبلا در پروژههای غیرقانونی فعالیت کردهاند؛ اما اکنون اصلاح شدهاند و از تخصص خود در زمینه رفع اختلالات و نواقص سامانههای امنیتی، استفاده میکنند.
اینکه کدام متخصص و با چه سطح از اطلاعات و تجربه برای انجام کار شما و بررسی تست نفوذ سامانه موردنظر مناسب است، کاملا به گستردگی سامانه و لول آن، بستگی دارد. بنابراین برای انتخاب بهترین کاندید، به نوع و پیشرفتهبودن کار خود نیز توجه داشته باشید.
تکنیکهای مختلف برای انجام pen test یا تست نفوذ کداماند؟
برای اینکه متخصص امنیت سایبری بتواند اطلاعات موردنیاز را از سامانهای که روی آن کار میکند به دست آورد، میتواند از سه استراتژی مختلف استفاده کند. هر کدام از این انواع روشها، سطح خاصی از اطلاعات و دیتا را در اختیار فردی که pen test را انجام میدهد، میگذارد. بنابراین بسته به اینکه متخصص سایبری براساس نیاز خود برای حمله سایبری، یکی از این استراتژیها را به کار میگیرد. این روشها عبارتاند از:
تست جعبه سیاه (black box testing)
آزمایش جعبه سیاه نوعی آزمایش رفتاری و عملکردی است که در آن، هیچ اطلاعاتی از سیستم مورد بررسی، به آزمایشکنندگان داده نمیشود. سازمانها معمولاً هکرهای اخلاقی را برای آزمایش جعبه سیاه استخدام میکنند که در آن حملهای در دنیای واقعی انجام میشود تا ایدهای از آسیبپذیریهای سیستم داشته باشند.
تست جعبه سفید (white box testing)
تست جعبه سفید تمام جزئیات مربوط به سیستم یا شبکه هدف سازمان را به متخصصی که pen test را انجام میدهد، ارائه میدهد و کد و ساختار داخلی سامانه مورد آزمایش را بررسی میکند. آزمایش جعبه سفید، بهعنوان تست شیشه باز، جعبه شفاف، شفاف یا تست مبتنی بر کد نیز شناخته میشود.
تست جعبه خاکستری (gray box testing)
آزمایش جعبه خاکستری ترکیبی از تکنیکهای تست جعبه سفید و جعبه سیاه است. این استراتژی به آزمایشکنندگان اطلاعاتی جزئی از سیستم، مانند اعتبارنامهها، نمودارهای جریان و نقشههای شبکه را ارائه میدهد. ایده اصلی پشت تست جعبه خاکستری، یافتن مشکلات احتمالی کد و عملکرد است.
6 متد مختلف تست نفوذ یا penetration testing با کارایی متفاوت
برقراری امنیت و توسعه سامانه سازمانها و شرکتهای بزرگ را میتوان از طریق متدهای مختلفی برقرار کرد. اینکه شما به دنبال چه چیزی هستید و هدف از انجام pen test روی سامانه موردنظر چه چیزی است، میتواند روی فرایند انجام و انتخاب روش مورد نظر برای انجام این کار توسط متخصص متفاوت باشد. بنابراین هدف شما از انجام این تست میتواند در انتخاب متدهای مختلف، تاثیرگذار باشد. بهطور کلی 6 متد برای انجام تست نفوذ وجود دارد که هر کدام اطلاعات خاصی را در اختیار متخصص قرار میدهد و خروجی انجام فرایند را متفاوت میکند. این 6 متد مختلف، عبارتاند از:
1. تست نفوذ سرویس شبکه
آزمایش نفوذ سرویس شبکه یا آزمایش زیرساخت، یکی از رایجترین انواع آزمایش نفوذ یا pen test است که توسط هکرهای اخلاقی انجام میشود. هدف از انجام این تست این است که ضعفها و یا آسیبهایی که در زیرساختهای سامانه سازمان مورد نظر اعم از سرورها، فایروالها، سوئیچها، روترها، چاپگرها، ایستگاههای کاری و موارد دیگر، قبل از بهرهبرداری از آن، مورد آزمون و بررسی قرار بگیرد. تست نفوذ سرویس شبکه برای محافظت از سامانه شما در برابر جملات متعدد مبتنی بر شبکه از جمله موارد زیر انجام میشود:
- پیکربندی نادرست فایروال و دور زدن فایروال؛
- IPS/IDS حملات فرار؛
- حملات روتر؛
- حملات سطح DNS ؛
- حملات انتقال منطقه؛
- سوئیچینگ یا حملات مبتنی بر مسیریابی؛
- حملات SSH؛
- حملات سرور پروکسی؛
- حملات غیرضروری درگاههای باز؛
- حملات پایگاه داده؛
- حملات Man In The Middle (MITM)؛
- حملات مبتنی بر FTP/SMTP.
2. تست نفوذ اپلیکیشن وب
آزمایش نفوذ برنامه وب برای کشف آسیبپذیریها یا ضعفهای امنیتی در برنامههای مبتنی بر وب استفاده میشود. با پیشرفت روزافزون خدمات شبکه و آموزش شبکه، متخصص یا هکر اخلاقی سایبری میتواند از تکنیکهای نفوذ و حملات مختلف با هدف نفوذ به خود برنامه وب استفاده میکند. این نوع تستها، بسیار دقیقتر و هدفمندتر هستند و به همین دلیل، آزمون پیچیدهتری محسوب میشوند.
تکنیکهای تست نفوذ برنامههای کاربردی وب، به دلیل افزایش روز به روز تهدیدات ناشی از برنامههای کاربردی وب، به طور مداوم و با گذشت زمان در حال پیشرفت هستند. در توسعه برنامههای کاربردی نرمافزار، بهبود مستمر پایگاه کد بهترین روش در نظر گرفته میشود.
3. تست نفوذ سمت مشتری
تست نفوذ سمت کلاینت برای کشف آسیبپذیریها یا ضعفهای امنیتی در برنامههای سمت کلاینت استفاده میشود. اینها میتوانند یک برنامه یا برنامههایی مانند Putty، کلاینتهای ایمیل، مرورگرهای وب (مانند کروم، فایرفاکس، سافاری و غیره)، Macromedia Flash و غیره باشند. برنامههایی مانند Adobe Photoshop و Microsoft Office Suite نیز در معرض آزمایش هستند. تستهای سمت مشتری برای شناسایی حملات سایبری خاص از جمله موارد زیر استفاده میشود:
- حملات اسکریپت بین سایت؛
- حملات کلیک جک؛
- اشتراک منابع متقابل (CORS)؛
- ربودن فرم؛
- تزریق HTML؛
- Open Redirection؛
- Malware Infection.
4. تست نفوذ بیسیم
آزمایش نفوذ بیسیم، شامل شناسایی و بررسی اتصالات بین همه دستگاههای متصل به وایفای کسبوکار است. این دستگاهها شامل لپتاپ، تبلت، تلفنهای هوشمند و سایر دستگاههای اینترنت اشیا (IoT) میشوند. ارتباطات بیسیم، یک سرویس نامرئی در حال اجرا است که به دادهها اجازه میدهد تا در داخل و خارج از شبکه جریان پیدا کنند. بنابراین، این شبکه بیسیم باید از هرگونه ضعفی مانند دسترسی غیرمجاز یا نشت داده، ایمن باشد.
5. تست نفوذ مهندسی اجتماعی
آزمایش نفوذ مهندسی اجتماعی برای مواردی کاربرد دارد که یک عامل مخرب، تلاش میکند تا کاربران را متقاعد یا فریب دهد تا اطلاعات حساسی مانند نام کاربری و رمز عبور را به آنها بدهد. تستهای مهندسی اجتماعی و برنامههای آگاهی، ثابت کردهاند که یکی از مؤثرترین روشها برای کاهش حمله هستند. انواع متداول حملات مهندسی اجتماعی که توسط آزمایشکنندگان تست نفوذ استفاده میشود عبارتاند از:
- حملات فیشینگ؛
- ویشینگ؛
- Smishing؛
- Tailgating؛
- Imposters (یعنی کارمندان دیگر، فروشندگان خارجی یا پیمانکاران)؛
- نام دراپینگ؛
- پیش پیامک؛
- Dumpster Diving؛
- Eavesdropping؛
- Gifts.
6. تست نفوذ فیزیکی
آزمایش نفوذ فیزیکی یک تهدید در دنیای واقعی را شبیهسازی میکند که به موجب آن، یک آزمایشکننده pen test تلاش میکند تا موانع فیزیکی را برای دسترسی به زیرساختها، ساختمان، سیستمها یا کارکنان کسبوکار به خطر بیاندازد. موانع فیزیکی اغلب برای اکثر کسبوکارها، در مرحله بعدی برای حفظ امنیت است؛ با این حال، اگر یک عامل مخرب بتواند به اتاق سرور شما دسترسی فیزیکی داشته باشد، میتواند مالک شبکه شما باشد. تصور کنید تاثیری که ممکن است بر کسب و کار شما، بر مشتریان شما و همچنین شراکتهای تجاری داشته باشد، چقدر میتواند مخرب باشد.
تحلیلهای بعد از انجام pen test چگونه میتواند در ارتقا امنیت شبکه تاثیر بگذارد؟
زمانی که هکر اخلاقی فرایند pen test را از طریق روشهای مختلف و یا متدهای متفاوت روی سامانه شما انجام داد، در نهایت به دیتاهای کاربردی خواهد رسید. هکر در نهایت، اطلاعات دریافتشده از این تست را با کارشناسان شبکه سامانه و یا شرکت مورد نظر در میان میگذارد تا بتوان از این اطلاعات برای پیادهسازی ارتقاهای امنیتی برای رفع آسیبپذیریهای کشفشده در طول آزمایش استفاده کرد. بنابراین با در دست داشتن اطلاعات ناشی از ضعفهای سامانه، میتوان در جهت امنیت بیشتر آن، قدم برداشت.
هر چند وقت یک بار باید برای انجام تست نفوذ یا pen test اقدام کرد؟
تعداد دفعاتی که نیاز است تا سامانه و یا شبکه شرکت خود را در معرض pen test قرار دهید، به عوامل بسیار مختلفی بستگی دارد. بااینحال کارشناسان امنیتی توصیه میکنند که حداقل سالی یک بار نسبت به انجام این تست امنیتی اقدام کنید تا عوامل آسیبزننده و نقاط ضعف جدید را شناسایی و رفع کنید. برخی از مهمترین فاکتورهایی که در تعداد دفعات مورد نیاز برای انجام تست نفوذ توسط شرکتها مورد نیاز دخیل است، به شرح زیر است:
گستردگی شرکت: سازمانها و یا شرکتهای بسیار بزرگ نیاز است تا به طور منظم، نسبت به انجام تست نفوذ اقدام کنند. دلیل آن هم این است که حملات سایبری به این چنین شرکتها و یا سازمانها میتواند ضررهای مالی و اهتباری بسیار زیادی را به آنها وارد کند و اختلالت بسیار زیادی را در سطح بزرگ، ایجاد کند.
بودجه سازمان: اینکه سالانه چقدر میتوانید برای انجام این تست هزینه کنید، در تعداد دفعات انجامشده آن توسط کارشناسان امنیتی، تاثیرگذار باشد. به عنوان مثال، یک سازمان گسترده ممکن است بتواند هزینههای این تست امنیتی را چندین بار در سال پرداخت کند و یک شرکت کوچک ممکن است صرفا هر دو سال یک بار بتواند این هزینه را برای حفظ امنیت سامانه خود بپردازد.
مقررات سازمانی: برخی از سازمانهای دولتی و یا شرکتهای وابسته به وزارتخانههای خاص، اجبارا باید این تست را براساس ضوابط و مقررات سازمانی، طی بازههای زمانی خاص انجام دهند. بنابراین اینکه شرکت شما وابسته به کدام سازمان و یا وزارت خاص است، میتواند در تعیین تعداد دفعات مورد نیاز، دخیل باشد.
کلام پایانی
Pen test یا تست نفوذ، یک روش امنیتی سایبری است که برای آزمایش و شناسایی ضعفهای سامانههای شرکتها و سازمانهای مختلف مورد استفاده قرار میگیرد. هکر اخلاقی متخصص، با کمک این روش میتواند اشکالات و یا آسیبهای احتمالی به سامانه و سایتهای مختلف را مورد بررسی قرار دهد و با دریافت اطلاعات مختلف از ایرادات موجود، امنیت شبکه را برقرار کرده و آن را از حملات مختلف سایبری مخرب حفظ کند.
منابع:
- https://www.techtarget.com/searchsecurity/definition/penetration-testing#:~:text=A%20penetration%20test%2C%20also%20called,carried%20out%20by%20ethical%20hackers.
- https://www.imperva.com/learn/application-security/penetration-testing/
- https://www.cloudflare.com/learning/security/glossary/what-is-penetration-testing/
- https://purplesec.us/types-penetration-testing/