موتور جستجوی Shodan یک ابزار مفید به منظور ارزیابی جوانب امنیتی است که با استفاده از آن میتوان دستگاههای آسیب پذیر متصل به اینترنت را شناسایی کرد. در ادامه مقالهای را باهم مطالعه خواهیم کرد که در ابتدا توضیحی در مورد این موتور جستجو داده شده و سپس با استفاده از این موتور به شناسایی دستگاه کنترل صنعتی (ICS) خواهد پرداخت.
یک سیستم کنترل صنعتی در واقع مجموعهای از رایانههایی است که سیستمهای صنعتی را نظارت و کنترل میکنند. سیستمهای کنترل تقریبا در همه صنایع، از صنایع غذایی تا صنایع پتروشیمی و نفتی، مورد استفاده قرار میگیرند و درواقع جهان را به سوی پیشرفت حرکت میدهند. اگر این سیستمها به درستی تنظیم نشده باشند، یک سیستم کنترل صنعتی (که از این به بعد اختصاراً ICS مینامیم) میتواند به راحتی توسط گروههای هکری، برنامههای بدافزاری و حتی از سوی رقبای تجاری، مورد حمله قرار گرفته و آسیب جبران ناپذیری را وارد کند.
پیکربندی امنیتی و مناسب دستگاههای ICS میتواند به خودی خود یک کتاب جامع باشد، اما ابزاری به نام Shodan میتواند تشخیص دهد که آیا دستگاه ICS در مکانی خطرناک قرار گرفته است یا خیر (به معنای اتصال به اینترنت). باید توجه داشت اغلب این دستگاهها بهعلت شرایطی که دارند قادر به اتصال به اینترنت نیستند.
Shodan چیست؟
Shodan موتور جستجوگر دستگاههای متصل به اینترنت است. این موتور جستجو همانند موتورهای جستجوگر محبوب مانند گوگل یا بینگ نیست؛ این موتورهای جستجو متداول بر محتوای وب سایت در معرض اینترنت عمومی متمرکز هستند.
در حالی که Shodan پورتها را در دستگاههای متصل به اینترنت اسکن میکند تا جستجو برای انواع خاصی از دستگاهها، مانند دوربینهای نظارت IoT یا دستگاههای ذخیره سازی متصل به شبکه (NAS)، امکان پذیر باشد و سرویسهای ویژه شبکه را که در دستگاههای متصل به اینترنت قابل دسترسی هستند، جستجو کند. به عنوان مثال، موتور جستجوی Shodan میتواند برای جستجوی نوع خاصی از NAS که درخواستهای سشن Telnet را قبول میکند یا یک مانیتور کودک IoT که امکان دسترسی از راه دور به سیستم فایل خود را فراهم میکند، مورد استفاده قرار گیرد.
نکته مهم در این موتور جستجو این است که Shodan به جای وبسایتهای قابل دسترسی، به دنبال پورتهای باز است.
با استفاده از Shodan، کاربر میتواند سرویسهای خاصی را که در هاست اجرا میشوند جستجو کند. در نتیجه، اگر یک آدرس IP میزبان بیش از یک سرویس باشد، Shodan تمام سرویسهای باز را در آن آدرس لیست میکند.
یک نمونه از بنرهای http که در کتاب راهنمای Shodan آمده است را مشاهده میکنیم :
HTTP/1.1 200 OK
Server: nginx/1.1.19
Date: Sat, 03 Oct 2015 06:09:24 GMT
Content-Type: text/html; charset=utf-8
Content-Length: 6466
Connection: keep-alive
در این مثال میتوانیم ببینیم که این دستگاه نرم افزار وب سرور Nginx نسخه ۱٫۱٫۱۹ را اجرا میکند. بیشتر پروتکلهای نرم افزاری هدرهای مشابهی را، زمانی که اتصال شروع میشود و اطلاعات خاص در مورد سرویسهای ارائه شده میدهد، بر میگردانند.
با این حال، نتایج حاصل از کپچر بنر میتواند بسیار متفاوت باشد. برخی پروتکلها برای ارائه اطلاعات مهم در مورد یک سرویس، بهطور پیش فرض تنظیم شدهاند. اگرچه مدیران سیستمها میتوانند سرورهای خود را برای محدود کردن آن اطلاعات پیکربندی کنند. به عنوان مثال، سرورهایی که از پروتکل زیمنس S7 پشتیبانی میکنند ( که هدف اصلی حمله Stuxnet بود ) میتوانند اطلاعات مربوط به سیستم عامل، شماره سریال، نام ماژول آن، شماره سریال سخت افزاری و نسخه آن را در بنر خود قرار دهند.
دادههای جمع آوری شده توسط Shodan شامل متادیتاهایی از قبیل نام میزبان، خصوصیات سرور، سیستم عامل، موقعیت جغرافیایی و همچنین خواص مربوط به برنامه یا پروتکلهای لایه Transport مانند بلوک پیام سرور، پروتکل SSH، پروتکل TLS و SSL، و اطلاعات در مورد نحوه جمع آوری دادهها توسط Shodan است.
برای هکرها، هرچه اطلاعات بیشتری از Shodan ارائه شود، برای مرحله enumeration و شناسایی آسیب پذیریهای احتمالی و بردارهای حمله نیز بهتر است. برای یک مدافع سایبری، جستجوهای Shodan بر لزوم غیرفعال کردن پروتکلهای برنامهای که ضروری نیستند و پیکربندی پروتکلهای برنامه مورد نیاز برای محدود کردن مقدار دادههای قابل دسترسی توسط Shodan، تأکید میکنند. به منظور استفاده از Shodan چهار حساب دسترسی وجود دارد که از سطح رایگان (که بهصورت محدود نتایج را باز میگرداند)، تا سطح تجاری که حدود ۹۰۰ دلار ارزش دارد، میباشد.
درمورد موتور جستجوگر "شودان" بیشتر بدانید
استفاده از Shodan برای شناسایی شبکههای آسیب پذیر
موتور Shodan فقط میتواند اطلاعات مربوط به بنر پروتکل را از سرویسهایی که روی دستگاههایی که مستقیماً به اینترنت متصل هستند، جمع آوری کند. این سرویسها و دستگاهها باید در صورت قرار گرفتن در پشت دیوارههای آتش که بهدرستی تنظیم شدهاند، پنهان باشند. این بدان معناست که یک مهندس امنیت شبکه (یا هکر) میتواند از Shodan برای شناسایی همه دستگاهها و همه آسیب پذیریهای اینترنت، در یک سازمان یا محدوده IP استفاده کند.
در Shodan با انتخاب فیلترهای موجود و همچنین ترمهای جستجو، میتوان تعداد بنرهای Shodan را برای مجموعهای از آدرسهای IPها، تعداد پورتهای موجود در شبکه (که در معرض خطر هستند) و نسخههای مختلف SSL و TLS را جمع آوری کرد.
Shodan همچنین میتواند مشخص کند که چند دستگاه در محدوده شبکه عمومی یک شرکت، سرور Telnet را اجرا میکنند. Telnet یک پروتکل بسیار ضعیف است زیرا نیازی به تأیید اعتبار ندارد و معمولاً با سرویس SSH امنتر جایگزین میشود.
نتایج جستجوی Shodan برای سرویسهای Telnet باز در تصویر زیر نشان داده شدهاند. Shodan بیش از 4 میلیون دستگاه متصل به اینترنت را پیدا کرده است که درخواستهای کلاینتها را در پورت 23 که مورد استفاده Telnet است، فعال کردهاند.
موتور Shodan و دستگاههای ICS
برای امنیت بهتر و بالاتر در حوزه دستگاههای ICS، از Shodan میتوان برای شناسایی آسان دستگاههایی که مستقیماً با پورتهای اپلیکیشن باز به اینترنت متصل هستند، استفاده کرد. یک راه این است که از Shodan برای اسکن پروتکلهای خاص ICS مانند موارد زیر استفاده کنیم:
- Modbus port 502
- DNP3 port 20000
- Fieldbus ports 1089 through 1091
- Profinet ports 34962 through 34964
- EtherNet/IP port 2222
در مثال زیر روی Modbus:502 جستجو را انجام میدهیم:
در مثال زیر هم SCADA را جستجو میکنیم:
پروژه Shine
از سال 2008 و بهصورت مدوام تا ژانویه سال 2014، Bob Radvanovosky و Jake Drodsky، پروژهای را با نام پروژه Shine (که مخفف Shodan Intelligence Extraction میباشد) اجرا کردند. آنها از API Shodan و بیش از 700 کوئری خاص برای شناسایی دستگاههای ICS که بر روی اینترنت هستند و ممکن است در معرض حمله یا نفوذ قرار گیرند، استفاده کردند.
این دو با همکاری وزارت داخلی ایالات متحده آمریکا، برای شناسایی بیش از 500.000 دستگاه ICS متصل به اینترنت در سطح جهان همکاری کردند. سپس با همکاری با کارشناسان بخش ICS این وزارتخانه و تیم واکنش اضطراری آن، آنها توانستند نتایج را به 7.000 دستگاه کاهش دهند. دستگاههایی که بسیاری از آنها حتی اقدامات احتیاطی امنیتی اولیه و استفاده از سیستم احراز هویت را نیز انجام نداده بودند و از سیستمهای احراز هویت پیش فرض استفاده میکردند.
در مقالهای که در سال 2013 منتشر شد، Eric Byris اظهار داشت که نتایج پروژه Shine لیستهایی از تجهیزات سنتی SCADA / ICS را نشان میدهد. با این حال دستگاههای جدیدتری نیز بودهاند که امنیت پایین یا احراز هویت ضعیف بهصورت پیشفرض داشتهاند. این دستگاهها شامل دستگاههای پزشکی، دوربینهای مدار بسته، کنترلهای محیطی و موارد دیگر بود. پروژه Shine بیش از 65 تولیدکننده مختلف این دستگاهها از زیمنس تا موتورولا تا کاترپیلار را کشف کرد.
محافظت از دستگاههای ICS در برابر اکسپلویتها
واحد ICS-CERT وزارت داخلی ایالات متحده آمریکا هشداری با عنوان “Alert (ICS-ALERT-11-343-01A): Control System Internet Accessibility (Update A)” در سال 2012 منتشر کرد که آن را در سال 2018 بروزرسانی کرد. نویسندگان این هشدار موارد زیر را مشاهده کردهاند:
سیستمهای کنترل صنعتی متصل به اینترنت در چندین بخش مهم زیرساختی شناسایی شدهاند. در بسیاری موارد، این سیستمهای کنترل به گونهای طراحی شده اند که امکان دسترسی از راه دور برای نظارت و مدیریت سیستم را فراهم میآورند. اغلب اوقات، دسترسی از راه دور با دسترسی مستقیم به اینترنت (بدون فایروال) و یا نام و رمزعبورهای پیشفرض و یا ضعیف، پیکربندی شدهاند. از طرفی اعتبارنامه پیشفرض به سادگی در فضای عمومی اینترنت قابل دسترس میباشد.
هشدار ICS-CERT اقدامات متعددی را که باید توسط دارندگان دستگاه ICS انجام شود، برای کاهش و ترجیحاً از بین بردن این آسیب پذیریها، ذکر میکند. این اقدامات شامل موارد زیر است:
- استفاده از سیستمهای حسابرسی و ممیزی به منظور از بین رفتن استفاده از نام کاربری و پسورد پیشفرض و یا هر تنظیم پیشفرض دیگر
- استقرار سیستمهای امنیت دفاعی به منظور به حداقل رساندن خطر اکسپلویتها
- جلوگیری از اتصال مستقیم دستگاههای ICS به اینترنت
- شناسایی و جداسازی شبکهها و دستگاههای ICS در پست فایروالها
- پیاده سازی شبکههای خصوصی مجازی (VPN) که از تأیید هویت دو عاملی برای دسترسی از راه دور استفاده میکنند
- از بین بردن حسابهای پیشفرض موجود در سیستمها و دستگاهها
- اجبار استفاده از پسوردهای قوی و تایید هویت چند عاملی