Поисковики по устройствам: Shodan, Censys
Shodan и Censys — это поисковики не по сайтам, а по подключённым к сети устройствам; научимся искать в них свои забытые сервисы раньше злоумышленника.
Поисковик по устройствам — сервис, который постоянно сканирует адресное пространство интернета, собирает баннеры сервисов (ответы на портах) и делает их доступными для поиска по фильтрам.
Если Google индексирует страницы, то Shodan и Censys индексируют сами сервисы: какой софт слушает на порту, какой версии, что написано в его приветственном баннере, какой сертификат он отдаёт. Для защитника это бесценный инструмент самопроверки: одним запросом увидеть всё, что ваша организация по ошибке выставила в открытый интернет.
Зачем это знать защитнику
Реальные взломы часто начинаются не с хитрого эксплойта, а с забытого сервиса: тестовая база Elasticsearch без пароля, панель управления, оставленная на публичном IP, RDP, открытый «на пять минут» полгода назад. Shodan находит такое за секунды — и злоумышленники активно этим пользуются. Значит, вы обязаны находить это первыми. Принцип защитника здесь: «если это видит Shodan — считайте, что это уже нашли».
Что именно видят эти поисковики
Сканер подключается к популярным портам и сохраняет баннер — то, что сервис сам о себе сообщает. По баннеру определяется продукт и версия, а часто и страна, организация-владелец IP, имя хоста из обратного DNS. Censys вдобавок строит структурированную модель: разбирает TLS-сертификаты, заголовки HTTP, поля протоколов в JSON.
HTTP/1.1 200 OK
Server: nginx/1.18.0
X-Powered-By: Express
# Баннер раскрывает: веб-сервер nginx 1.18.0 и бэкенд на Express.
# Версия позволяет проверить, есть ли у неё известные уязвимости (CVE).
Главный риск — раскрытие версий и продуктов. Зная, что у вас nginx/1.18.0 или конкретная CMS, разведчик сверяется с базами CVE и сразу понимает, какие уязвимости стоит пробовать. Поэтому сокрытие версий в баннерах — базовая гигиена.
Язык фильтров: как искать СВОЁ
Сила этих поисковиков — в фильтрах. Защитник использует их, чтобы очертить свою поверхность. Запросы выполняют в веб-интерфейсе или через CLI/API по своим активам:
# Все хосты в вашем диапазоне адресов (пример для лаборатории/своей сети):
shodan search net:203.0.113.0/24
# Сервисы, ассоциированные с вашей организацией по данным реестра:
shodan search org:"Your Company Name"
# Хосты с вашим доменом в сертификате:
shodan search ssl:example.com
Полезные фильтры для самоаудита: net: (ваш CIDR-диапазон), org: и asn: (по владельцу адресов), ssl: и hostname: (по домену), port: (конкретный сервис). У Censys аналогичный язык запросов по полям, например services.port: 3389 для поиска открытого RDP в своём пространстве.
Красные флаги при самопроверке
- Базы данных на публичном IP:
Elasticsearch(9200),MongoDB(27017),Redis(6379),PostgreSQL(5432) — почти всегда должны быть закрыты от интернета. - Удалённый доступ наружу:
RDP(3389),VNC(5900),Telnet(23), голыйSSHна стандартном порту без ограничений. - Панели управления и dev-стенды:
Kibana,Jenkins,phpMyAdmin, страницы с заголовком staging/test. - Просроченные или самоподписанные сертификаты, дефолтные баннеры оборудования.
Как это работает под капотом
Поисковик не атакует — он делает то же, что любой клиент: открывает TCP-соединение к порту и читает первый ответ. Сервис, настроенный отвечать всем подряд, сам рассказывает о себе. Это и есть ключевая мысль: информацию выдаёт не Shodan, а ваш сервис, доступный из интернета. Censys и Shodan лишь делают эти ответы удобными для поиска и хранят их историю, так что даже кратковременно открытый порт может остаться в индексе.
Как защититься
- Регулярно ищите себя. Поставьте ежемесячную проверку Shodan/Censys по своим
net:,org:,ssl:. У Shodan есть Monitor, присылающий алерт при появлении нового открытого порта в вашем диапазоне. - Сократите поверхность. Каждый публичный порт должен иметь причину быть открытым. Управляющие интерфейсы, базы и dev-стенды — за VPN или в приватной сети, а не на белом IP.
- Прячьте версии в баннерах.
server_tokens off;в nginx, скрытие версий СУБД и почтовых демонов — чтобы не дарить разведчику готовый список CVE. - Фильтруйте по источнику. Ограничивайте доступ к чувствительным сервисам по списку IP/сетей через файрвол и security-группы; меняйте дефолтные креды немедленно.
- Удаляйте временное. Открыли порт «на время» — заведите задачу закрыть его и доведите до конца; временные правила любят становиться постоянными.
Правовая рамка: искать в Shodan/Censys по публичному индексу законно. Но подключаться к найденным чужим открытым сервисам, тем более логиниться, — это уже несанкционированный доступ (ст. 272 УК РФ), даже если пароль пуст. Проверяйте и подключайтесь только к своей или письменно разрешённой инфраструктуре.
Итоги
- Shodan и Censys индексируют сервисы по их баннерам — то, что хост сам сообщает на открытом порту.
- Главная ценность для защитника — найти свои забытые открытые базы, панели и порты раньше злоумышленника.
- Фильтры
net:,org:,ssl:очерчивают вашу поверхность; Monitor алертит о новых открытых сервисах. - Защита: сокращать число публичных портов, прятать версии, ограничивать доступ файрволом и регулярно искать себя.