Shodan: самый страшный поисковик интернета
Shodan (Sentient Hyper-Optimized Data Access Network, умная, гипероптимизированная сеть доступа к данным) – поисковая система для IoT
Принципиальное отличие Shodan от классических поисковиков, таких как Google и Яндекс, состоит в том, что Shodan индексирует информацию, собранную из ответных баннеров, тогда как Google, Яндекс и им подобные – индексируют контент веб-сайтов [8].
При помощи Shodan можно найти компьютеры, на которых запущен определенный серверный софт (например, Apache). Или узнать, какая версия Microsoft IIS наиболее популярна. Или узнать, сколько в сети действующих анонимных FTP-серверов. Или, допустим, вам стало известно о появлении новой уязвимости и вы хотите посмотреть на список хостов, для которых она актуальна, – Shodan легко справится и с этой задачей [9].
Поиск в Shodan конкретных устройств требует знаний о софте, который на этих устройствах работает. Однако при первом знакомстве со Shodan можно воспользоваться каталогом расшаренных запросов [6], в котором энтузиасты из сообщества исследователей Shodan делятся своими самыми интересными поисковыми запросами (см. рис. 1).
1. Технические подробности индексации баннеров
Элементарная единица данных, которой оперирует Shodan, – это баннер. Баннер представляет собой структурированный текст, описывающий серверный софт, который функционирует на соответствующем IoT. При этом следует понимать, что Shodan ищет баннеры, а не хосты. Поэтому если на один и тот же IP-адрес завязано сразу несколько сервисов, то в поисковой выдаче будут присутствовать баннеры для каждого из них [9].
Содержимое отдельно взятого баннера сильно зависит от типа сервиса, к которому этот баннер относится. Например, для веб-серверов это будут HTTP-баннеры. На рис. 2 представлен типичный HTTP-баннер. Из этого баннера в числе прочего видно, что на IoT запущен веб-сервер версии 1.1.19.
На рис. 3 можно видеть другой пример: баннер, который используется в протоколе передачи данных АСУ ТП Siemens S7. В этом баннере представлена информация о прошивке, ее серийном номере и много других чувствительных подробностей, описывающих соответствующее IoT-устройство. Сравнивая два упомянутых баннера между собой, можно видеть, насколько сильно баннеры могут отличаться, в зависимости от того, какой тип сервиса они описывают [9].
Помимо индексации баннеров, Shodan также собирает метаданные: геолокация, имя тоста, операционная система и т.д. Полный список собираемых метаданных приведен в официальной документации [9] (см. «Приложение A»). Подавляющая часть метаданных доступна для поиска прямо на сайте Shodan. Однако часть полей доступна только разработчикам посредством API [9].
По умолчанию поисковый запрос будет искать данные, собранные за последние 30 дней. Поисковые роботы Shodan работают в режиме 24/7 и обновляют поисковую базу в режиме реального времени. Поэтому в поисковой выдаче всегда присутствует только свежая информация о том, какие IoT в настоящее время подключены к интернету [9].
Серверы Shodan, осуществляющие сбор данных, разбросаны по всей планете. Благодаря чему исключается фактор «географической предвзятости». Например, многие сисадмины из Соединенных Штатов блокируют все китайские IP-диапазоны. Размещение поисковых роботов Shodan в разных точках планеты гарантирует, что никакие общенациональные блокировки не повлияют на объективную картину собираемых данных [9].
Кроме того, базовый алгоритм, по которому функционируют поисковые роботы Shodan, рандомизирован:
- сгенерировать случайный IPv4-адрес;
- сгенерировать случайный порт для проверки (из списка портов, которые Shodan понимает);
- проверить случайный IPv4-адрес на случайном порте и захватить баннер;
- перейти на шаг № 1 [9].
Таким образом, поисковые роботы Shodan не сканируют «инкрементные диапазоны сети». Сканирование полностью рандомизировано. Благодаря этому достигается равномерное покрытие интернета. Что касается соотношения IPv4 и IPv6, то на момент 2015 года (более свежих официальных данных найти не удалось) Shodan ежемесячно собирал миллионы баннеров для IoT, работающих по протоколу IPv6. Эти цифры, конечно, ничто в сравнении с сотнями миллионов, собираемых для IPv4, однако наблюдается приятная тенденция прироста относительной доли баннеров для IPv6 [9].
2. Инструкция по использованию фильтров
Поисковый запрос Shodan может включать в себя сразу несколько поисковых фраз. В качестве разделителя используется либо пробел, либо «+». По умолчанию при обработке поискового запроса Shodan просматривает только основной текст баннера, тогда как поиск по метаданным не производится. Для поиска по метаданным в Shodan имеется обширный набор фильтров. Именно в этих фильтрах – основная мощь поисковика Shodan [9].
Один только фильтр port уже чего стоит! Именно из-за этого фильтра за Shodan закрепился ярлык «публичного сканера портов». Shodan индексирует обширное интернет-пространство для шести наиболее востребованных TCP/IP-портов: HTTP (80), Telnet (23), FTP (21), SSH (22), SNMP (161), SIP (5060), и, кроме того, отображает в поисковой выдаче открытым текстом всю чувствительную информацию баннеров, ассоциированных с этими портами [8]. Shodan также индексирует и другие порты, полный список которых приведен в официальной документации [9] (см. рис. 4), где их перечислено больше 200 (с указанием соответствующих названий сервисов).
Поисковые запросы могут сопровождаться одним или несколькими фильтрами. Фильтры задаются в следующем формате: «фильтр:значение». Без пробелов вокруг двоеточия. Если нужно задать значение с пробелом, то оно помещается в кавычки. Если в фильтре несколько параметров, они отделяются друг от друга запятой. Если какое-то значение нужно исключить, то перед соответствующим фильтром ставится префикс «-» (например, -port:22). Полный список доступных фильтров, разбитый на пять категорий, приведен в официальной документации [9] (см. «Приложение B»): общие фильтры, HTTP-фильтры, NTP-фильтры, SSL-фильтры, Telnet-фильтры.
Список фильтров Shodan, и без того обширный, постоянно пополняется новыми интересными фильтрами. Так, например, специалисты Shodan и Recorded Future недавно разработали совместными усилиями инструмент Malware Hunter, интегрированный прямо в поисковик Shodan. Чтобы просмотреть результаты работы Malware Hunter, нужно обратиться к Shodan с запросом category:malware [4].
2.1. Примеры использования общих фильтров:
- «IIS city:Moscow» (поиск серверов Microsoft IIS, в Москве);
- «IIS/4.0 country:DE» (поиск серверов Microsoft IIS версии 4.0, в Германии); страна задается двухбайтовым кодом (см. рис. 5);
- «joomla hostname:.in» (поиск серверов joomla в доменной зоне .in);
- «debian os:linux» (поиск серверов Debian, работающих под управлением Linux);
- «apache net:217.220.0.0/16» (поиск серверов Apache в подсети 217, что в Италии);
- «port:5060,161 country:JP» (поиск всех серверов Японии, которые работают по протоколам SIP и SNMP);
- «apache geo:55.7588,37.6611» (поиск серверов Apache в районе Москвы); вот эта страница [5] поможет преобразовать нужную локацию – в широту и долготу;
- «debian after:22/09/2009 before:29/11/2010» (поиск объектов, работающих под управлением сервера Debian, которые были изменены или созданы после 22.9.2010, но до 29.11.2010); этот фильтр очень полезен, если вы ищите устройства, подверженные конкретной уязвимости, актуальной в конкретный промежуток времени.
2.2. Примеры использования SSL-фильтров:
- «ssl.version:sslv2» (поиск серверов, поддерживающих сертификаты версии SSLv2); доступные версии SSL: SSLv2, SSLV3, TLSv1.0, TLSv1.1 и TLSv1.2;
- «ssl.cert.pubkey.bits:128» (поиск серверов, которые используют в SSL-сертификатах 128-битные открытые ключи);
- «ssl.cipher.bits:256» (ищет серверы Apahce, в которых используются 256-битные сессионные ключи); каждый раз, когда кто-то подключается к веб-сайту, процедура SSL-рукопожатия генерирует сессионный ключ. Этот сессионный ключ короче, чем открытый ключ сертификата, и обычно составляет от 40 до 256 бит.
3. Что можно найти в Shodan
Shodan индексирует серверы, веб-камеры, принтеры, маршрутизаторы и все остальное подключенное к интернету оборудование. Бесчисленные светофоры, камеры наблюдения, автоматика умных домов, умные дверные замки, отопительные системы [2], испарительные охладители, напорные водонагреватели, гаражные ворота [3] – все это подключенное к интернету оборудование легкодоступно через поисковые запросы в Shodan. Среди наиболее экзотических находок, сделанных экспериментирующими со Shodan энтузиастами: автоматизированные системы управления аквапарком, газозаправочной станцией, гостиничным винным холодильником и даже крематорием [2].
Также в Shodan находили: автомойку, которую можно включать и выключать прямо из интернета, без авторизации доступа; хоккейный каток в Дании, который можно разморозить одним кликом мыши [3].
Исследователям даже удалось при помощи Shodan найти и локализовать АЭС и циклотрон (ускоритель частиц), получить доступ к их панелям управления [2]; найти расположенную во Франции ГЭС, с тремя турбинами по 3 мегаватта каждая [3].
Городская система регулирования движения, которую можно перевести в «тестовый режим» и дальше делать с ней все что угодно, не в счет [3].
В ближайшем будущем в Shodan можно будет найти даже умные пули [7], и тогда – в свете плачевных реалий кибербезопасности [10] – выражение «нет дуры хуже, чем пуля-дура», наполнится истинным смыслом.
Однако что действительно примечательно и что делает Shodan самой страшной поисковой системой интернета, так это живая демонстрация того факта, что очень немногие из перечисленных выше IoT-устройств оснащены хотя бы базовой киберзащитой. Пример из дикой природы… В ответ на поисковый запрос default password, Shodan выдает бесчисленные принтеры, серверы, автоматизированные системы управления с логином admin и паролем 1234. Среди всех этих IoT, с завидной регулярностью встречаются системы, где вообще не требуется никакой авторизации [2].
4. Причина проблем с кибербезопасностью
Так почему же все эти устройства страдают недостатком кибербезопасности? Часть ответа на этот вопрос заключается в том, что большинство из тех устройств, которые доступны через поисковик Shodan, вообще не должны присутствовать в Сети.
Когда внедряются АСУ ТП, которые позволяют управлять с компьютера, скажем, системой отопления, эти АСУ ТП, по идее, не должны быть доступны через интернет. Однако вместо того, чтобы напрямую связывать АСУ ТП и непосредственно само устройство, ответственные за внедрение инженеры останавливаются на том, чтобы связывать их через веб-сервер. Почему? Потому что так проще! В результате устройство превращается в IoT, становится доступным через интернет. Естественно, что на подобных устройствах, которые превратились в IoT поневоле, не предусмотрены средства киберзащиты. Ведь они не предназначены для того, чтобы с интернетом взаимодействовать [2].
Другая часть ответа на вопрос, почему все эти устройства страдают недостатком кибербезопасности, – широко распространенные мифы вроде: «Мой сервис работает на нестандартном порте, и поэтому я остаюсь незамеченным».
Это худшая идея, которая только может прийти в голову. Она создает ложное чувство безопасности. Например, давайте посмотрим на людей, которые запускают OpenSSH на нестандартном порте. Для этого отправим в Shodan запрос product:openssh -port:22 (показывать все OpenSSH-серверы, исключая те, которые работают на стандартном 22-м порте).
Чтобы получить лучший обзор результатов поиска, можно сгенерировать отчет. Сгенерированный отчет в числе прочего покажет разбивку по наиболее распространенным «нестандартным» портам (см. рис. 6). Глядя на сформированный отчет, ловишь себя на мысли, что как-то не очень все эти цифры похожи на непредсказуемые [9].
Если что-то не отображается в поисковой выдаче Google, это еще не значит, что это «что-то» никто не сможет найти. В отличие от Google, сканирующего интернет на предмет наличия веб-сайтов, поисковые роботы Shodan ползают по закулисной части интернета, по «темной стороне Сети». Мимо этих роботов не проскочит ни одно IoT-устройство, даже ваш умный дверной замок, которым вы управляете со своего новенького айфона [2]. Эксперименты показывают, чтоShodan индексирует все новые IoT менее чем за 20 дней [1].
При этом есть и хорошая новость: для широкой ИТ-общественности Shodan доступен только в урезанном виде. Без регистрации можно просматривать только первые 10 результатов поисковой выдачи, с бесплатной регистрацией – 50. Неограниченный доступ к результатам поиска (до 10 000 результатов поисковой выдачи) возможен только на условиях платной подписки. Поэтому та часть плохих парней, которая не готова раскошеливаться на платную подписку, оказывается вне большой игры [2].
5. Платные сервисы Shodan
После формирования поисковой выдачи, в верхней части экрана появляется кнопка Download Results (скачать результаты). Скачивать результаты поиска можно в одном из трех форматов: JSON, CSV или XML. Скачивание данных (см. рис.7) возможно только при наличии «кредитов экспорта», которые можно приобрести на сайте. Один экспортный кредит может быть использован для загрузки до 10 000 результатов поисковой выдачи [9].
Формат JSON наиболее предпочтителен, поскольку сохраняет всю доступную в Shodan информацию. Он генерирует файл, в котором каждая строка содержит полный баннер и все сопровождающие его метаданные, которые собирает Shodan[9].
Формат CSV возвращает файл, содержащий только IP-адрес, порт, текст баннера, организацию и имена хостов для баннера. Вся информация в CSV-файл не помещается из-за присущих этому формату технических ограничений. CSV-формат целесообразно использовать, только если вас интересует общая информация без подробностей, и вы хотите быстро загрузить ее во внешние инструменты, такие как Microsoft Excel [9].
Еще одна альтернатива JSON-формату – XML. Это устаревший способ сохранения результатов поиска. С ним работать намного сложнее, чем с JSON, а дискового пространства он при этом занимает больше [9].
6. Shodan в поддержку обороны [8]
Отыщите свои IP. Как и большинство инструментов кибератаки, Shodan может быть использован как часть оборонительной стратегии. Чтобы воспользоваться сервисами Shodan для обороны, вам для начала потребуется узнать пространство IP-адресов своего рабочего места. Вы можете использовать для этого RIR (Regional Internet Registries, региональный интернет-регистратор) или выполнить WHOIS-запрос. После получения списка IP-адресов вы можете воспользоваться фильтрами Shodan, чтобы понять, доступен ли из Shodan соответствующий IP-адрес, посредством фильтра net. В качестве альтернативы, вы можете узнать широту и долготу рабочего места и затем воспользоваться фильтром geo [8].
Спуфинг MAC. Если вы на своем рабочем месте используете Linksys WRT54G/GL/GS или какой-то другой беспроводной маршрутизатор с DD-WRT, программным обеспечением на базе Linux, то вам необходимо подменить его MAC-адрес. Хотя фактически его изменить невозможно, вы можете сделать это на виртуальном уровне. Это связано с тем, что Shodan обнаруживает уязвимость утечки информации в DD-WRT-маршрутизаторах. Согласно Shodan, если веб-запрос отправлен в /Info.live.htm, тогда злоумышленник может получить доступ к MAC-адресу этого маршрутизатора, что затем позволит ему определить физическое местоположение. Shodan пользуется неофициальным гугловским LAPI-интерфейсом (Locations Application Programming Interface) для определения местоположения уязвимых маршрутизаторов DD-WRT по всему миру. Другой API, который Shodan не использует в настоящее время, – это официальный комплект разработчика от Skyhook (компания, специализирующаяся на геолокации). Чтобы предотвратить раскрытие информации, Shodan рекомендует настроить страницу информации маршрутизатора на enabled with password protection (разрешено, с защитой паролем) [8].
Shodan Exploits. Если хотите узнать о последних уязвимостях/эксплойтах к своему серверу, можете воспользоваться сервисом Shodan Exploits, который по большей части представляет собой комбинированный архив из Metasploit, Exploit Database (DB), Packetstorm, Common Vulnerabilities and Exposures (CVE) и Open Source Vulnerability Database (OSVDB). Адрес: https://exploits.shodan.io. Пример: iis exploits [8].
Информация в баннерах. Shodan выполняет поиск информации внутри баннеров. Информация, содержащаяся в баннерах встраиваемых устройств, как правило, очень критичная. Киберзлоумышленник, заполучив ее, может узнать многое о соответствующем встраиваемом устройстве и затем подготовить эффективную кибератаку. Чтобы этого не произошло, необходимо свести к минимуму информационный контент, доступный на баннерах устройства. Начать такую минимизацию можно с просмотра популярных запросов, самый свежий список которых всегда доступен по адресу: https://www.shodan.io/explore/popular.
Несколько популярных запросов в Shodan:
- обнаружение паролей по умолчанию (default password),
- веб-камер (Server: SQWEBCAM),
- продукции Netgear (netgear),
- Snom VoIP phones (snom embedded),
- спутников и приемников Dreambox (dreambox country:es),
- перепрограммируемой прошивки OpenWrt (OpenWRT),
- интернет-серверов i.LON (200 OK i.LON)
- и устройств Cisco (cisco-ios last-modified).
При необходимости можете проверить, не встречаются ли подобные ключи в ваших HTTP-заголовках [8].
7. Кейс-стади: инцидент
28 октября 2010 ICS-CERT (Industrial Control System – Cyber Emergency Response Team) [https://ics-cert.us-cert.gov/alerts/ICS-ALERT-10-301-01] сообщила широкой общественности, что системы, работающие со SCADA-софтом, могут быть легко обнаружены и скомпрометированы посредством Shodan. SCADA – это, по сути, компьютеризированная ICS, которая используется для мониторинга и управления промышленными процессами, такими как производство, водоочистка, выработка электроэнергии, нефтяные и газовые трубопроводы, системы HVAC (Heating, Ventilation and Air Conditioning; отопление, вентиляция и кондиционирование). Кроме того, ICS-CERT похоже не знает, что со Shodan можно очень легко получить удаленный доступ к системе конфигурирования как для автономных приложений на ПК, так и для WAN-сетей. Shodan способен подключаться к удаленным объектам, к центральным системам мониторинга. Более того, некоторые системы предоставляют удаленный доступ с логинами и паролями по умолчанию. Эти логины и пароли можно найти в хранилищах стандартных паролей. Таким образом, системы управления SCADA, подключенные к интернету, могут быть легко скомпрометированы и реконфигурированы [8].
- Roland Bodenheim. Evaluation of the ability of the Shodan search engine to identify Internet-facing industrial control devices // International Journal of Critical Infrastructure Protection. 7(2), 2014, pp. 114-123.
- David Goldman. Shodan: The scariest search engine on the Internet // 2013. URL: http://money.cnn.com/2013/04/08/technology/security/shodan/index.html (дата обращения: 19 июля 2018).
- Dan Tentler. Drinking from the caffeine firehose we know as Shodan // DEFCON. 2012.
- Levi Gundert. Malware Hunter: Finding the Command & Control Centers of Botnets across the Globe // 2017. URL: https://malware-hunter.shodan.io/ (дата обращения: 19 июля 2018).
- Latitude and Longitude of a Point // URL: http://itouchmap.com/latlong.html (дата обращения: 19 июля 2018).
- Shodan: Popular Shared Searches: Browse popular shared searches from other users // URL: https://www.shodan.io/explore/popular (дата обращения: 19 июля 2018).
- John Keller. Technology trends revealed in 2017’s top stories // Military & Aerosapace Electronics. 28(12), 2017, p. 2.
- Er. Dhananjay D. Garg. Intrusion as a Service Using Shodan // HITB Magazine. 1(7), 2011, pp. 51-57.
- John Matherly. Complete Guide to Shodan: Collect. Analyze. Visualize. Make Internet Intelligence Work For You. 2016. 92 p.
- Карев А. Чумазые секретики киберзащитничков. // «Системный администратор», № 7-8, 2017 г. – С. 50-55. URL: http://samag.ru/archive/article/3471 (дата обращения: 19 июля 2018)..
- Ryan Miller. Shodan Adventures Part 3 – IP Cameras // 2017. URL: https://ensurtec.com/shodan-adventures-part-3-ip-cameras/ (дата обращения: 19 июля 2018).
Ключевые слова: Shodan, кибератаки, киберзащита.
Источник - https://zen.yandex.ru/media/id/5caf4eae4ef90600b49104fd/shodan-samyi-strashnyi-poiskovik-interneta-5cb9a14df1852c00b36476f9