Гайнуллина Екатерина, Security Vision
Введение
Во второй части сравнительного обзора продолжается анализ ведущих интернет-сканеров и OSINT-платформ. На этот раз внимание сосредоточено на Censys и FOFA — двух мощных инструментах, каждый из которых предлагает уникальные подходы к сбору и структурированию данных об открытых сервисах в интернете. В статье рассматриваются архитектура платформ, синтаксис запросов, охват портов, возможности поиска по сертификатам и телу веб-страниц, а также примеры реального применения.
Censys

Общая характеристика
Censys вырос из академического проекта Университета Мичигана (авторы утилиты ZMap) и с момента запуска в 2015 году зарекомендовал себя как «эталонный» источник данных об интернете для исследований и корпоративного использования. Censys фокусируется на комплексном сканировании всего IPv4 и глубокой аналитике собранных данных. В отличие от Shodan, Censys с самого начала предоставлял открытые datasets и API для исследователей, благодаря чему заслужил репутацию достоверного и прозрачного ресурса. Сейчас Censys – это коммерческий сервис (с венчурным финансированием), предлагающий и бесплатный режим для сообщества, и платные решения для предприятий (включая платформу Attack Surface Management).

Глубина индексации
Главное отличие Censys – он сканирует весь IPv4 по всем 65 535 портам! Да, вы не ослышались: используются высокопроизводительные сканеры (та же связка ZMap + zgrab2) для попытки опросить каждый порт на каждом адресе. Однако практически Censys различает топ-100 популярных портов и остальные, чтобы не захлебнуться в неинформативных данных. Самые популярные порты (веб, почта, SSH, RDP, SMB и пр.) обновляются ежедневно, а на некоторые – даже несколько раз в день . Остальные ~65k портов сканируются реже, примерно раз в 1–7 дней по ротации .
Таким образом, средний хост в Censys пересканируется примерно раз в несколько дней, но критичные сервисы на нём обновятся практически каждый день. Censys также сканирует IPv6 – хотя охват далеко не полный (перебрать 2^128 адресов нереально), сервис поддерживает поиск по довольно большому числу активных IPv6-узлов, особенно серверов с глобальными адресами . Кроме того, Censys уделяет особое внимание TLS-сертификатам: поддерживается индекс всех SSL/TLS сертификатов, встреченных в интернете (включая те, что видны через логи Certificate Transparency) . То есть Censys фактически ведёт две большие базы данных – Hosts (узлы/сервисы) и Certificates (сертификаты). Благодаря этому Censys способен находить, например, все домены, где использован определённый сертификат, или следить за появлением новых самоподписанных сертификатов на устройствах IoT.
Структура данных и точность
Поскольку Censys родом из академической среды, он собирает максимально структурированные данные. Запись об узле представлена в виде JSON-объекта, где есть раздел services – список всех открытых сервисов на хосте с детальным описанием каждого . Для HTTPS это включает полный сертификат и его параметры (алгоритмы, cipher suites, поддерживаемые версии TLS), для SSH – поддерживаемые алгоритмы и ключи, для базы данных – версия СУБД и некоторые конфигурационные параметры, и т.д. Censys активно коррелирует данные: например, определяет виртуальные хосты – если один IP обслуживает несколько доменов (через поля сертификата SAN или HTTP Host), то эти домены тоже учитываются как отдельные записи. За счёт этого общее число записей у Censys очень большое. Например, с учётом виртуальных хостов Censys насчитывает свыше 1,4 млрд записей по HTTPS (порт 443) . Однако для прикладных задач обычно фильтруют виртуальные дубли: если считать уникальные IPv4, то Censys обнаруживает порядка 50 млн хостов с веб-портами, ~21 млн с SSH, ~24 млн с Telnet/CWMP и т.д. – цифры близки к Shodan . Это говорит о высокой полноте охвата Censys: фактически, он как минимум не уступает Shodan в количестве активных IPv4-узлов, а по части данных (например, наличие TLS) – превосходит.
Поисковый язык и интерфейс
В 2022 году Censys представил новый язык запросов – Censys Search Language (CSL) – унифицировавший поиск по хостам и сертификатам. Ранее поиск осуществлялся отдельными интерфейсами (и API) для Hosts и для Certificates, теперь же можно в одном запросе комбинировать условия по тем и другим. Запросы в Censys могут задаваться как простым строковым поиском (как в Shodan), так и как логические выражения по полям. Например, простой запрос "Apache httpd 2.4.X country:US" найдет все баннеры Apache 2.4.xx в России (строковый поиск по баннерам + фильтр по стране) . Но подлинная сила Censys – в структурном поиске по JSON-полям. Можно, к примеру, написать:
services.service_name: "HTTP" AND services.http.response.status_code: 200 AND location.country_code: "US", чтобы найти только хосты в US, у которых открыт HTTP и веб-сервер отвечает кодом 200 (OK)

P.S. (здесь у меня возникли трудности, поэтому лучше заходить в конвертер)\

Более того, поддерживаются регулярные выражения и диапазоны. Например, можно найти все сертификаты, выданные доменам вида *.gov.br (бразильские гос. сайты) с истекающим сроком через <30 дней – подобные запросы были описаны в блогах исследователей. Интерфейс Censys (веб-портал) довольно минималистичный: поиск через единую строку, результаты – табличка или карточки с возможностью переключиться к подробному JSON. Многим инженерам даже удобнее сразу пользоваться API или загрузить полные датасеты (Censys периодически публикует дампы данных для исследовательских целей).
Доступность и цены
Censys предоставляет бесплатный Community-аккаунт, которого хватает на базовые запросы. Лимит в бесплатном режиме – 250 поисковых запросов в сутки (ранее было в месяц, но модель менялась) и доступ к большинству полей (кроме разве что очень специфичных). API также доступен бесплатно для этих 250 запросов/день с аутентификацией. Этого объёма, как правило, достаточно для разовых исследований и скриптов. Коммерческие планы Censys ориентированы на большие компании: точные цены не афишируются (порядка нескольких тысяч долларов в месяц и выше).
Примеры использования
Censys особенно любим исследователями уязвимостей и учёными. Именно с помощью Censys часто измеряют глобальный уровень распространения той или иной проблемы. Например, сразу после обнаружения критической уязвимости (типа Heartbleed или Log4Shell) эксперты используют Censys, чтобы выполнить сложный запрос и подсчитать, сколько хостов в интернете остаются уязвимыми – эти статистики часто цитируются в СМИ . Благодаря индексу сертификатов, Censys позволяет делать вещи, невозможные в Shodan: например, найти все веб-сайты, где сертификат содержит название организации X (поле Subject или Issuer). Это помогает в OSINT – выявлять связанные домены компании через сертификаты. Также Censys активно используется для инвентаризации наружных активов: т.к. он сканирует абсолютно все порты, можно обнаружить на IP не только привычные 80/443, но и, скажем, забытый открытый RDP (3389) или админ-порт кастомного приложения на порту 8443, который Shodan мог не проверить. С помощью Censys крупные компании регулярно проводят аудит своих сетей.
В целом, Censys считается «золотым стандартом» с точки зрения полноты данных. Он отвечает на вопрос «что именно работает на данном хосте?» наиболее подробно. Однако его использование требует большего опыта из-за сложного запроса и огромного объёма информации. Инженеры безопасности часто сочетают Censys с Shodan: быстрый первоначальный поиск делают на Shodan, а детали (конфигурации сервисов, сертификаты, все порты) уточняют через Censys . Это обеспечивает и скорость, и глубину.
FOFA – китайский «Fingerprint Of All» с поиском по контенту

Общая характеристика
FOFA (Eye of the Fox, Fingerprint Of All) – ещё один представитель китайских киберсканеров, разработанный компанией Baimaohui (организатор конференции White Hat в Китае). FOFA запущен приблизительно в 2017 году и стал известен благодаря широкому охвату и возможности искать по содержимому баннеров и веб-страниц. Многие специалисты в России открыли для себя FOFA как альтернативу Shodan после ряда громких утечек, найденных именно через FOFA – например, утечки данных из незащищённых Elasticsearch и Kibana, которые Shodan тогда не индексировал должным образом. FOFA изначально ориентирован на китайский сегмент интернета, но, как и ZoomEye, сейчас имеет англоязычный интерфейс.
Индекс и охват
Название Fingerprint Of All отражает цель сервиса – собирать «отпечатки» со всего, что доступно. FOFA сканирует глобальный IPv4 (и, вероятно, выборочно IPv6, хотя точные детали не раскрываются) аналогично Shodan. Количество портов не афишируется прямо, но известно, что FOFA индексирует более 1200 портов, включая редкие.
В тестах, проведённых командой Netlas, FOFA успешно покрыла весь список портов, которые сканирует Shodan, и даже имела дополнительный свой список . Таким образом, по охвату портов FOFA близка к Censys/ZoomEye (возможно, не сканирует абсолютно все 65k, но более чем достаточно для практики). Частота обновления у FOFA варьируется: более популярные порты сканируются часто (вплоть до ежедневно), а экзотические могут оставаться не обновлёнными несколько недель . Разработчики упоминали, что приоритеты расставлены по распространённости сервисов. Это значит, что FOFA, подобно Shodan, может иметь чуть устаревшие данные по редким протоколам, но на основные даёт свежую картину. В целом, покрытие FOFA по уникальным узлам сравнимо с Shodan (десятки миллионов активных хостов), хотя сам сервис любит хвастаться «более 4 млрд записей» в базе (FOFA Reviews - 2025) – видимо, считая все протоколы, исторические данные и пр. Также FOFA имеет огромную базу фингерпринтов – более 350 тысяч шаблонов для идентификации софта и устройств по баннерам (FOFA Reviews - 2025), благодаря чему успешно определяет множество продуктов (даже китайских производителей, которые не всегда распознаются в Shodan).
Поисковый язык
FOFA предоставляет богатый синтаксис запросов, весьма похожий на Shodan, но с собственной спецификой. Примечательно, что фильтры можно писать как на английском, так и на китайском языке – ориентируясь на разную аудиторию. Например, запрос ip="8.8.8.8" равносилен ip.addr="8.8.8.8" – найдёт конкретный IP.

Можно задавать условия через логические операторы: в FOFA используется && для AND, || для OR, ! для NOT (аналогично синтаксису языков программирования) . Поддерживается группировка скобками. Ключевые фильтры FOFA: ip/ip.addr (IP-адрес), port (порт), domain (доменное имя из сертификата или баннера), host (комбинированное поле: домен или IP:порт), title (HTML-заголовок страницы), banner (полный текст баннера сервиса), body (содержимое HTML-тела страницы), protocol (протокол, например HTTP, SMB, RDP), status_code (HTTP-код ответа), app (определённое FOFA название приложения/ПО) и многое другое .
FOFA известна тем, что позволяет искать по содержимому веб-страниц – фактически, как поисковик вроде Google, но по неиндексируемым обычно устройствам. Например, запрос body="password" найдёт все страницы (в индексе FOFA), где встречается слово "password" . Или header="Elastic" – все хосты, где в HTTP-заголовках есть слово Elastic (часто признак Elasticsearch). Также поддерживается поиск по ASN (asn=), стране (country=), ОС (os=), параметрам сертификата (cert.subject= или cert.issuer=). Можно использовать маски: например, domain~=".edu.cn" найдёт все поддомены в зоне .edu.cn (используя ~ как оператор содержит) . В целом, язык FOFA чуть менее строгий, чем у Censys – он прощает разные варианты записи фильтров и дружелюбен к пользователю.

Интерфейс
У FOFA есть два веб-адреса: китайский fofa.so и английский fofa.info (или en.fofa.info). После входа можно переключиться на нужный язык . Интерфейс достаточно простой: строка поиска и выпадающий список фильтров. Результаты отображаются списком, где каждая строка – это либо IP:порт, либо домен:порт, с коротким фрагментом баннера. Интересная деталь: FOFA по умолчанию показывает не весь баннер, а только часть, где совпал поисковый условие, подсвечивая найденную строку . Это удобно при поиске по тексту, но иногда кажется, будто данных мало – надо кликнуть на запись, чтобы увидеть все поля целиком. В карточке хоста представлены все собранные сведения: IP, порты, сервисы, баннеры, домены, геолокация и т.д. Платные пользователи могут выгружать результаты в CSV/Excel. Как и ZoomEye, FOFA хранит исторические данные: можно посмотреть, когда хост впервые и последний раз замечен, как менялись его баннеры. Более того, FOFA имеет мобильное приложение и даже десктоп-клиент (ориентирован в основном на китайских пользователей) .
В клиент встроен своеобразный PoC-ускоритель – магазин эксплойтов, позволяющий сразу проверять найденные хосты на уязвимости (например, кликнуть и запустить готовый эксплойт против хоста). Это тесно интегрировано с китайской экосистемой, и за пределами Китая мало используется, но показывает, насколько продвинутыми хотят быть локальные инструменты.
Доступ и лимиты
Бесплатный аккаунт FOFA позволяет выполнять поиски без ограничений по запросам, но результаты ограничены первыми 100 записями . Т.е. вы увидите лишь чуть-чуть и далее получите сообщение «требуется VIP». Для полноценного использования нужна платная подписка. Тарифы делятся на Personal VIP, Enterprise VIP и пр. Базовый персональный аккаунт стоит около ~$100 в год (или ~$20/мес) и открывает возможность просматривать до 10 000 результатов на запрос и пользоваться API (с лимитом, например, 1000 API-запросов в день) . Более высокие уровни (Corporate, Enterprise) повышают лимиты – вплоть до 100k результатов и неограниченного API на Enterprise . Преимущество FOFA перед ZoomEye – отсутствие искусственных ограничений на пролистывание выдачи: если у вас VIP, вы можете увидеть все миллионы результатов, если они есть. В то время как ZoomEye даже платно не даст выгрузить больше определённого потолка (в целях безопасности, чтобы не скачать всю базу). Также FOFA не ограничивает запросы на китайские адреса: известно, что ZoomEye по политическим причинам может прятать часть результатов, связанных с критичной инфраструктурой КНР, тогда как FOFA более открыта .
Уникальные особенности
У FOFA есть несколько «фишек», опережающих западных конкурентов. Например, FOFA одной из первых реализовала поиск по иконке сайта (favicon hash). Можно загрузить файл favicon.ico в интерфейс, и сервис найдёт все хосты с таким же хэшем иконки – крайне полезно для выявления однотипных веб-приложений (например, админок определённого продукта) . Shodan впоследствии тоже добавил такую функцию (http.favicon.hash:), но FOFA была пионером. Другая фишка – система оповещений (alerts): пользователь может сохранить любой поисковый запрос и включить мониторинг, тогда FOFA будет присылать уведомления, когда появляются новые результаты, соответствующие этому запросу . Это фактически инструмент для отслеживания своих ресурсов или появления новых уязвимых устройств (по заданному критерию). Ещё FOFA развивает библиотеку знаний (FOFA Library) – раздел, где публикуются статьи и кейсы использования (в основном на китайском) . Там, к примеру, разбирались случаи массового сканирования государственных сайтов или поиска специфичных уязвимых устройств в интернете – это помогает новым пользователям обучаться. Интеграции FOFA тоже присутствуют: есть плагин для BurpSuite (позволяет искать экспонированные субдомены из интерфейса Burp), модули для Nmap, плагины для радиографического анализа (Radare) и др. Комьюнити вокруг FOFA активно делится написанными скриптами и фингерпринтами.
Примеры использования
FOFA часто предпочитают для поиска такой информации, которую не находит Shodan. В первую очередь это текстовое содержимое страниц. Например, если нужно найти все веб-интерфейсы устройств, где на странице встречается определённая фраза – Shodan по баннерам не поможет, а FOFA с запросом по body="фраза" справится. Так находили утечки конфиденциальных данных на забытых страницах, выявляли интерфейсы с сообщениями об ошибках, содержащих ключевые слова (например, "SQL error"). Также FOFA более полезна для поиска устройств в азиатском сегменте интернета: она лучше распознаёт оборудование местных брендов, имеет более полную базу китайских ASN, и ею активно пользуются локальные исследователи, поэтому если что-то появляется в китайских сетях – оно почти сразу попадает в FOFA. Например, для OSINT по китайским компаниям, FOFA – must-have инструмент, тогда как Shodan может упустить часть инфраструктуры. Конечно, полностью заменить Shodan FOFA не может – индекс у неё тоже имеет пропуски, а обновляемость данных несколько уступает (на менее популярных узлах) . Поэтому профессионалы часто используют их совместно.
Заключение
Censys и FOFA представляют собой два совершенно разных взгляда на проблему интернет-инвентаризации. Censys сохраняет академическую строгость и структурированность, предоставляя максимально точные данные с высокой степенью детализации, что делает его идеальным для аналитики, инвентаризации и исследований уязвимостей. FOFA, в свою очередь, делает акцент на широту охвата, гибкость языка запросов и поиск по содержимому веб-страниц — незаменимую функцию для OSINT и поиска утечек.
Обе платформы отлично дополняют друг друга. Использование их в паре позволяет закрыть как задачи мониторинга, так и задач OSINT, bug bounty и поиска специфичных активов в интернете. В следующей части обзора будут рассмотрены более молодые, но активно развивающиеся решения: Netlas и Criminal IP, предлагающие интересные подходы к поиску, визуализации и анализу цифровых следов.
igrblkv
Ничего не открывается, надо китайский впн?