امنیت از اصلیترین موضوعاتی است که در محیط سازمانهای امروزی به آن پرداخته میشود. با این حال، علیرغم تلاش زیاد تیمهای مدیریتی و IT شرکتها برای مقابله با “نشتهای امنیتی”[۱]، هکرها همواره یک گام جلوتر هستند. آیا راهی وجود دارد که شرکتها بتوانند با استفاده از آن نقاط ضعف و آسیبپذیریها را قبل از هکرهای سایبری کشف کنند؟ پاسخ به این پرسش مثبت است: بهکارگیری یک فرایند تکرار شونده به نام “تست نفوذ”[۲] یا Pen Test.
تست نفوذ چیست؟
یک تست نفوذ تلاش میکند تا به روشی ایمن، وجود هر گونه نقطه ضعف یا آسیبپذیری در زیرساخت IT یک شرکت را بررسی کرده و از آن بهرهبرداری کند. آسیبپذیریها را میتوان در خود نرمافزار و در نقاط ورودی مشخصی یافت:
- Backdoorها در سیستمهای عامل
- اشکالات سهوی در طراحی کد نرمافزار
- پیادهسازی نادرست مدیریت پیکربندی نرمافزار
- استفاده از برنامه نرمافزاری به روشی متفاوت از روش درنظر گرفته شده برای آن.
تست نفوذ میتواند از طریق یک فرایند دستی یا یک فرایند خودکار انجام شده و اغلب به سمت “نقاط پایانی”[۳] زیر هدایت میشود:
- سرورها
- نقاط پایانی شبکه
- شبکههای بیسیم
- دستگاههای امنیت شبکه
- دستگاههای بیسیم و سیار
- دیگر نواحی در معرض خطر مانند برنامههای نرمافزاری و کدهای منبع آنها.
با این حال، باید توجه شود که تست نفوذ واقعی در این سطح متوقف نشده و باید تا جای ممکن به عمق زیرساخت IT نفوذ و به داراییهای الکترونیک شرکت دست یابد. به عبارت دیگر، هدف تست نفوذ تنها وارد کردن یک ضربه شدید در اولین اقدام نبوده و وارد کردن ضربههای شدیدتر به صورت پنهانی و در زمانهای تصادفی را نیز در بر دارد.
روشهای تست نفوذ، مزایا و معایب هرکدام
در تست نفوذ تلاش میشود تا رفتار هکرهای واقعی شبیهسازی شود. در نتیجه، با توجه به میزان اطلاعات در دسترس مهاجم در یک حمله سایبری واقعی، سه نوع روش تست نفوذ را میتوان متصور نمود:
تست نفوذ جعبه سیاه
تست نفوذ جعبه سیاه در واقع شبیهسازی حملات واقعی به زیرساخت IT یک شرکت است در زمانی که مهاجم هیچ اطلاعی در مورد عملکرد داخلی، کد منبع[۷] یا معماری نرمافزار یک برنامه تحت وب نداشته باشد. در این نوع تست نفوذ، Tester به امید یافتن یک آسیبپذیری یا نقطهضعف، یک حمله جستجوی کلی انجام میدهد. این نوع تست میتواند زمانی طولانی را برای نتیجهگیری نیاز داشته باشد. در نتیجه در انجام این نوع تست، Tester اغلب از فرایندهای خودکار برای کشف کامل آسیبپذیریها و نقاط ضعف کمک میگیرد.
تست نفوذ جعبه سفید
در این نوع تست، اطلاعات و دسترسی کامل نسبت به کد منبع و معماری نرمافزار برنامه تحت وب در اختیار Tester قرار دارد. در نتیجه تست نفوذ جعبه سفید میتواند در زمانی کوتاهتر و به طور کاملتر انجام شود. با اینحال، این رویکرد نیز معایب مربوط به خود را دارد: ۱) با توجه به دانش کامل Tester نسبت به محیط، تصمیمگیری در مورد موارد نیازمند تمرکز، از جمله در رابطه با تست و تجزیه و تحلیل سیستم و مولفهها، زمان بیشتری نیاز خواهد داشت و ۲) انجام این نوع تست، نیازمند ابزارهای سطح بالاتری مانند اشکالیاب[۸] و تحلیلگر کد نرمافزار است.
تست نفوذ جعبه خاکستری
در این نوع تست، که ترکیبی از تست جعبه سیاه و تست جعبه سفید است، Tester تنها به اطلاعاتی جزئی در مورد عملکرد داخلی برنامههای تحت وب دسترسی دارد. با توجه به این موضوع، Tester میتواند تمام تلاش خود را بر روی نواحیای از برنامه تحت وب متمرکز کند که در مورد آن اطلاعات دارد و از آنجا نقاط ضعف یا آسیبپذیریهای بیشتری را مورد بهرهبرداری قرار دهد. استفاده از این رویکرد احتمال مشخص شدن حفرههای امنیتی که به طور معمول کشف آنها دشوارتر است را افزایش میدهد.
تیمهای تست نفوذ
تستهای نفوذ زمانی بیشترین تاثیر را خواهند داشت که تعدادی Tester که به سه تیم زیر تقسیمبندی شدهاند، در کنار یکدیگر بهکار گرفته شوند:
تیم قرمز
تیم قرمز را میتوان به عنوان Testerهای معمول درنظر گرفت. هدف اصلی اعضای این تیم شبیهسازی ذهن مهاجمی است که تلاش میکند تا از تمام نقاط ضعف و آسیبپذیریهای موجود بهرهبرداری کند.
تیم آبی
هدف تیم آبی، که به طور معمول شامل کارکنان خود شرکت میباشد، عبارت است از خنثیسازی و دفاع در مقابل حملات تیم قرمز. ذهنیت فعال و هوشیاری از نیازمندیهای ضروری افرادی است که قصد فعالیت در تیم آبی را دارند.
تیم بنفش
تیمهای آبی و قرمز در صورت بهاشتراکگذاری مداوم بازخوردها با یکدیگر نقشی اساسی در بهبود وضعیت امنیتی شرکت خواهند داشت. با این حال، این اتفاق همیشه رخ نداده و بنابراین وجود تیم بنفش نیاز میشود. این تیم، که میتوان آن را به عنوان ترکیبی از تیمهای قرمز و آبی درنظر گرفت، کنترلها و تاکتیکهای امنیتی را از تیم آبی و آسیبپذیریها و نقاط ضعف امنیتی کشف شده را از تیم قرمز بهکار گرفته و با ایجاد و بهاشتراکگذاری گزارش حاصل مابین تمام تیمها، پیادهسازی یک سیاست بهبود امنیتی پیوسته و پایدار برای شرکت را ممکن مینماید.
انواع تست نفوذ
انواع تست نفوذ که بعد از ایجاد تیمها و شفافسازی نقشها و مسئولیتهای آنها قابل انجام است، عبارتند از:
سرویسهای شبکه
این نوع تست نفوذ شامل یافتن آسیبپذیریها و نقاط ضعف در زیرساخت شبکه یک شرکت است و میتواند در محل کسبوکار کلاینت یا به صورت از راه دور انجام شود. با این حال، برای جمعآوری بیشترین اطلاعات ممکن توصیه میشود که ترکیب هر دو رویکرد به کار گرفته شود. این نوع تست شامل موارد زیر است:
- تست پیکربندی فایروال[۱۷]
- تست Stateful analysis
- تست عبور از فایروال[۱۸]
- گریز از سیستمهای پیشگیری از نفوذ[۱۹]
- حملات DNS که خود شامل موارد زیر است:
- SSH، SQL server، SMTP، FTP و Microsoft Outlook login pages از متداولترین بستههای نرمافزاری هستند که در این نوع تست مورد ارزیابی قرار میگیرند.
برنامههای تحت وب
این نوع تست نفوذ، که قادر به کشف آسیبپذیریها و نقاط ضعف موجود در برنامههای تحت وب است، مولفههایی مانند ActiveX، Silverlight، و Java Appletها و APIها را مورد بررسی قرار میدهد. این نوع تست بسیار پیچیده بوده و زمان بیشتری را برای تست صحیح و کامل برنامه تحت وب نیاز دارد.
سمت کلاینت
این نوع تست نفوذ برای یافتن آسیبپذیریهای نرمافزاری قابل بهرهبرداری بر روی کامپیوترهای کلاینتها طراحی شده است. مرورگرهای وب، بستههای نرمافزاری تولید محتوا، پخشکنندههای مالتیمدیا و … از جمله موارد هستند که در این نوع تست بررسی میشوند.
بیسیم
این تست شامل بررسی تمام دستگاههای بیسیم مورد استفاده در شرکت بوده و تبلتها، لپتاپها، تلفنهای هوشمند و … را دربردارد. علاوهبراین، موارد زیر نیز برای یافتن هرگونه آسیبپذیری در این نوع تست بررسی میشوند:
- پروتکلهای بیسیم (برای تعیین پروتکلهای اساسا ضعیف)
- Wireless access pointها (برای تعیین آنهایی که به درستی عمل نمیکنند)
- Credentialهای مدیریتی[۲۲]
از آنجا که در انجام این نوع تست، تجهیزات مورداستفاده باید در نزدیکی سیگنالهای شبکه بیسیم باشند، این تست اغلب در محل کسبوکار کلاینت انجام میشود.
مهندسی اجتماعی
این نوع تست شامل تلاش برای دستیابی به اطلاعات خصوصی و محرمانه از طریق فریب کارکنان شرکت به افشای این گونه اطلاعات است. مجموعه اقدامات قابل انجام در زمینه مهندسی اجتماعی را میتوان در دو دسته زیر درنظر گرفت:
- تست از راه دور: استفاده از یک ابزار الکترونیکی برای فریب یکی از کارکنان برای افشا اطلاعات حساس. این نوع مهندسی اجتماعی اغلب از طریق ایجاد و راهاندازی کمپینهای فیشینگ ایمیل انجام میشود.
- تست فیزیکی: حضور یا استفاده از یک ابزار فیزیکی برای جمعآوری اطلاعات. این نوع شامل جعل هویت، تماسهای تلفنی تهدیدکننده و/یا ترغیبکننده و … است.
بررسی تفاوت بهرهبرداری از شبکه کامپیوتری (CNE) و حمله به شبکه کامپیوتری (CNA)
در دنیای حملات سایبری، تهدیدهایی که هکرها میتوانند علیه شرکتها و یا حتی دولتها ایجاد کنند، به دو دسته تقسیم میشوند:
- بهرهبرداری از شبکه کامپیوتری
- حمله به شبکه کامپیوتری
بهرهگیری از تست نفوذ در دورههای منظم، امکان تهدیدهای هکرها در هر دو مورد را کاهش میدهد.
بهرهبرداری از شبکه کامپیوتری (CNE)
با استفاده از این نوع تهدید، میتوان از یک شبکه کامپیوتری برای هدف قرار دادن یک شبکه کامپیوتری قربانی یا استخراج و دستیابی به اطلاعات و دادههای محرمانه یا اسناد اطلاعاتی طبقهبندی شده استفاده کرد. لازم به ذکر است که این نوع حملات بیشتر مختص سازمانهای دولتی بهویژه سازمانهای نظامی بوده و در مورد شرکتها مورد استفاده قرار نمیگیرد.
حمله به شبکه کامپیوتری (CNA)
این تکنیک، بدون توجه به میزان تلاش یا هزینه موردنیاز، با هدف از بین بردن هر گونه اطلاعات موجود در شبکه یا کامپیوترهای قربانی انجام میشود. علیرغم تفاوت، حملات به شبکههای کامپیوتری اغلب با حملات الکترونیکی اشتباه گرفته میشوند. یک حمله الکترونیکی اساسا وابسته به استفاده از طیفهای الکترومغناطیسی (مانند استفاده از یک پالس الکترومغناطیسی برای خراب کردن RAM یک کامپیوتر) است درحالی که، حمله به شبکه کامپیوتری یک جریان داده را برای اجرای یک حمله علیه شبکه قربانی به کار میگیرد. نمونههای رایجی CNA عبارتند از آن
- شنود
- تغییر دادهها
- جعل هویت
- حملات مبتنی بر گذراژه
- حملات منع سرویس توزیع شده
- حملات مردی در میانه[۲۳]
- حملات Sniffing
- حملات لایه کاربرد
خلاصه
به طور خلاصه، در این مطلب انواع تست نفوذ، تکنیکهای مورد استفاده و بازیکنان درگیر در آن و مثالهایی از حملات سایبری مهم مورد بررسی واقع شد. یقینا، روشهای زیادی وجود دارند که یک شرکت میتواند برای تقویت امنیت خود از آنها استفاده کند اما تنها یک تست نفوذ جامع و کامل است که تمام شکافها و حفرههای پیشبینی نشده در زیرساخت IT شرکت را مشخص خواهد کرد. بهکارگیری یک تست نفوذ جامع و کامل همچنین مزایای مهم زیر را نیز به همراه دارد:
- ارائه ابزاری برای مدیریت موثر تمام شکافها و حفرههای امنیتی مشخص شده
- ارائه راهی برای پیش دستی کردن در حفظ امنیت شرکت
- ارائه ابزارهای موردنظر برای دستیابی به انطباق[۲۴]
- ممکنسازی حفظ برند تجاری و مشتریان
[۱] Security breach
[۲] Penetration test
[۳] Endpoint
[۴] Black-box testing
[۵] White-box testing
[۶] Grey-box testing
[۷] Source code
[۸] Debugger
[۹] Read team
[۱۰] Blue team
[۱۱] Purple team
[۱۲] Network services
[۱۳] Web application
[۱۴] Client side
[۱۵] Wireless
[۱۶] Social engineering
[۱۷] Firewall configuration testing
[۱۸] Firewall bypass testing
[۱۹] IPS evasion
[۲۰] Switching
[۲۱] Routing
[۲۲] Administrative credentials
[۲۳] Man in the Middle Attacks
[۲۴] Compliance