Censys — новый поисковик по интернету вещей. Подобно Shodan, он опрашивает все публично доступные IP-адреса и протоколирует их отклики. В результате создается своеобразная карта интернета, на которой можно искать любые устройства с сетевым интерфейсом, изучать характер распространения уязвимостей или, выбрав критерии, смотреть за актуальным состоянием глобальной сети.
WARNING
Censys создавался для специалистов по безопасности и содержит средства защиты от злонамеренного использования. Все запросы протоколируются, а среди поисковой выдачи попадаются и ловушки (honeypots).
Глобальный пинг
Поисковик Censys начал свою историю в Мичиганском университете как сетевая утилита Закира Дурумерика (Zakir Durumeric), которую он сделал из ZMap для сбора статистики распространенности известных уязвимостей в Сети. Поначалу Censys был малоизвестным форком сервиса Scans.io — репозитория результатов опроса сетевых узлов, имеющих адрес IPv4. Как открытый проект Censys стал доступен в октябре 2015 года после презентации на 22-й конференции по безопасности компьютеров и коммуникаций (ACM CCS).
В прошлом году технологии Censys получили развитие: начинание Дурумерика поддержали ученые из Иллинойсского университета в Урбане и Шампейне. К базе данных прикрутили поисковый движок Google, написали дополнительные инструменты и задействовали мощные серверы, выделенные под академические исследования. Однако даже в нынешнем виде Censys — лишь часть более грандиозного замысла. Если сам Google индексирует преимущественно веб-страницы и файлы, то авторы Censys ставят задачу создать и поддерживать «базу всего в интернете». Похоже, им это вполне удается. «Мы нашли абсолютно все устройства — от банкоматов до АСУ ТП электростанций», — пишет Закир Дурумерик.
Отклики сетевых узлов на запросы Censys помогают идентифицировать ответившие устройства и многое узнать о них. Среди ценной информации: производитель, модель, тип, версия прошивки, открытые порты, активные сервисы и детали о программном обеспечении. Например, использует ли оно шифрование и как именно сконфигурировано. Через Geo IP также можно узнать приблизительное географическое расположение. Вся информация обновляется ежедневно в ходе сканирования общедоступного адресного пространства IPv4 и первого миллиона доменов в рейтинге посещаемости (его ежедневно поставляет Alexa Internet — дочерняя компания Amazon).
Первые находки
От Censys уже есть заметная польза. Поисковик позволил экспертам по безопасности оценить распространенность уязвимостей FREAK и Heartbleed, помог вскрыть недобросовестное использование ключей шифрования производителями встраиваемых систем и найти недействительные сертификаты X.509, причем на сайтах из первого миллиона самых посещаемых. Используя Censys, компания Duo Security быстро выяснила, что ноутбуки Dell Inspiron 14 продаются с одинаковым предустановленным ключом шифрования и двумя сертификатами, включая корневой eDellRoot. Один из этих скомпрометированных сертификатов использовался для авторизации по HTTPS и управления SCADA на станции водоочистки в штате Кентукки.
INFO
Censys использует баннеры протоколов — стандартные строки приветствия, которые сетевой узел отправляет в ответ на запрос удаленного клиента. Их текст меняется в зависимости от запущенного на выбранном порту сервиса.
Изначально Censys держался на трех китах. Первым был ZMap — сетевой сканер с открытым исходным кодом, который Дурумерик написал вместе с коллегами из Мичиганского университета. Вторым стал ZGrab — сканер уровня приложений, необходимый для выяснения активных сервисов, запущенных на удаленном узле. Третий — ZDb, постоянно обновляемая база данных с результатами сканирования. Недавно к ним добавился еще один — ZTag. Он представляет собой инструмент тегирования устройств по их специфическим сетевым откликам. Благодаря ZTag текущее распространение определенной уязвимости можно узнать, просто написав ее название. Например, по запросу heartbleed утром находилось 229 138 узлов, а к обеду того же дня — уже 229 134. Можно практически в реальном времени видеть, как их неспешно патчат.
Хакер #204. Шифровальщик для Android
В детализации приводятся подробности для каждого найденного узла. Здесь видно, что используется уязвимая к Heartbleed версия шифрования в HTTPS.
Примеры поиска
Censys поддерживает полнотекстовый поиск, логические операторы, условные знаки и фильтры. В общем случае задается искомое слово и опциональные указатели того, где оно должно встречаться. Для фильтрации выдачи можно перечислить порт, протокол, метод, диапазон IP-адресов, географическое положение или ограничения по дате. Подробный синтаксис представлен в справке и руководстве на сайте censys.io.
Например, запрос SCADA покажет все найденные АСУ ТП с управлением через интернет. Сейчас их без малого 46 тысяч по всему миру. Среди них есть и контроллеры с доступом по незащищенному протоколу HTTP. Например, нашелся паровой котел в Австралии.
Аналогично управляется SCADA на атомной электростанции в штате Канзас. Был такой штат, пока я писал эту статью.
Напиши 80.http.get.headers.www_authenticate: netcam
и получишь список примерно из трех тысяч сетевых камер с веб-интерфейсом. Легко догадаться, что 80
— открытый восьмидесятый порт, http
— соответствующий ему протокол, get
— метод получения данных, header
— заголовок, а www_authenticate: netcam
соответствует представлению устройства как сетевой камеры.
Введи metadata.manufacturer:"Cisco"
и увидишь все активное оборудование, выпущенное Cisco и работающее в данный момент. Наверняка среди него окажется масса непропатченных маршрутизаторов с известными уязвимостями.
Полезно знать и типовые сообщения об ошибках. Набери certificate has expired
и получишь список всех, кто использует просроченные сертификаты. Дополнительно указав диапазон конкретной подсети, можно выполнить ее экспресс-аудит.
Хочешь узнать, как изменился интернет, пока ты праздновал Новый год? Запрос * [2015-12-31 ТО 2016-01-01]
покажет все новые и обновленные сетевые узлы, добавленные в базу Censys за этот период.
Интересно, сколько следящих узлов в одной из подсетей Microsoft? Задай диапазон ее IP-адресов: ip:[137.116.81.1 TO 137.117.235.255]
. На момент написания статьи в ней было 22 848 активных айпишников.
Удобно, что Censys автоматически обрабатывает записи DNS. Введи mx:gmail.com
и получишь список из почтовых серверов Google. Записи типа DNS A тоже сразу преобразуются в IP-адреса. Например, a:facebook.com
выдаст описание узла основного сервера с IP 173.252.120.68.
Censys vs. Shodan
В создании Censys принимал участие легендарный HD Moore, который пользуется особой подпиской на расширенный доступ к Shodan. У этих поисковиков похожее назначение, но разные методы сбора данных и политики использования. Без регистрации они позволяют лишь кратко ознакомиться с найденным. Несмотря на формальный открытый статус, в Censys больше ограничений для незарегистрированных пользователей. Если Shodan без авторизации лимитирует глубину поисковой выдачи, то Censys обрезает доступ к целым разделам и практически всем дополнительным функциям. Вдобавок при гостевом входе Censys обрабатывает только пять запросов в день с одного IP-адреса, и удаление cookie не помогает.
Если ты попросишь «облачные сканеры» рассказать о себе так же, как они рассказывают о других сайтах, то получишь сообщение об ошибке. Однако Shodan охотно выдает всю известную информацию о Censys, и наоборот.
За использование фильтров в Shodan и сдвиг ограничений поисковой выдачи с 20 до 10 000 в учетной записи списываются «кредиты», которые можно приобрести за деньги. Censys — бесплатный проект с другой моделью ограничений. Чтобы убрать их, потребуется не просто зарегистрироваться, но еще и отправить разработчикам письмо. В нем нужно постараться убедить их в этичности своих изысканий (сертификат CEH отлично подойдет) и ответственном использовании полученных данных. Например, представив справку о своих публикациях, учебном заведении или фирме. Желательно описать планируемое исследование и дать обязательство включить ссылку на Censys в научную статью или аналитический отчет.
Shodan всегда выдает стандартизированные поисковые результаты. В Censys есть возможность получить искомые данные в сыром виде и формате JSON. Для обработки сложных запросов и глубокой фильтрации в Censys можно использовать SQL Query Engine, а также доступ к Google BigQuery через API. Эти инструменты, конечно же, доступны только доверенным пользователям. Censys позволяет не только просматривать поисковую выдачу, но и генерировать отчеты встроенным инструментом.
Авторы Censys заявляют о том, что ежесуточно обновляют результаты сканирования всего диапазона адресов IPv4. Это 3,7 миллиарда сетевых узлов с учетом потерь на зарезервированные в RFC6890 диапазоны. По какой-то причине проверка общего числа записей в самом Censys выдает результат всего в 189,5 миллиона. Именно столько IPv4-узлов он отображает, если ввести в запросе астериск как универсальную маску.
Не вместо, а вместе
В своей публикации авторы утверждают, что Censys, в отличие от Shodan, всегда выдает свежую подборку поисковых результатов. Однако я не вижу практического смысла противопоставлять поисковики друг другу. Как мы уже писали в статье «Белая шляпа для Shodan» (№ 194), Мэтерли постоянно повышает скорость сканирования своего поисковика. Сейчас она составляет более миллиарда IP-адресов в месяц. Разница почти на два порядка обусловлена тем, что Shodan сканирует интернет гораздо тщательнее — по всем портам и протоколам с соблюдением безопасных тайм-аутов.
На мой взгляд, сейчас результаты Shodan чище, а ценной информации в каждом результате — больше. Поэтому за свежей статистикой для глобальных исследований безопасности есть смысл обращаться к Censys с его тегированным поиском, а для собственных практических изысканий — преимущественно к Shodan.
WWW
Справка по использованию регулярных выражений для поиска
Архивные результаты сканирования интернета при помощи ZMap, ставшего основой Censys
Документация по использованию Censys через RESTful API с примерами скриптов на питоне
Обновляемый список миллиона самых посещаемых сайтов интернета в формате CSV