Как действует типовой злоумышленник? В первую очередь он стремится узнать о Вашей инфраструктуре столько, сколько сумеет. Об этом мы и хотим рассказать: об обнаружении информации, которая поможет киберпреступнику спланировать и провести атаку эффективнее. Примерами таких данных являются: сведения о сетевых устройствах, сетевые сервисы на периметре, перечни сотрудников, их сфера деятельности и компетенции, почтовые адреса, свободные домены с похожим написанием, публичные репозитории с неудалённой аутентификационной информацией и т.д.
- Введение
- О поиске по открытым источникам
- Поиск по сервисам-агрегаторам и сетевое сканирование
- 3.1. Расширение границ исследования
- 3.2. Другие агрегаторы
- 3.3. Результаты активного сетевого сканирования
- 3.4. Внешние Java-скрипты
- Фишинг или угроза бренду?
- Социальная инженерия
- Утекшие данные пользователей
- Репозитории
- Выводы
Введение
Поиск информации об организации — это не только сканирование сетевых портов. Это — исследование вашего веб-сайта (при этом не важно, где он размещен, на внешнем хостинге или на вашей собственной площадке), изучение вашего периметра, всех ресурсов, которые там присутствуют. Собрав данные, злоумышленник начинает предпринимать попытки преодоления периметра и в случае успеха действовать уже внутри сети. На этапе сбора информации мы не можем активно противостоять ему; однако бездействие в борьбе за информационную безопасность нам не поможет. Именно поэтому нам надо самим собирать все доступные сведения об организации и делать так, чтобы злоумышленник не смог найти ничего полезного на нашем периметре.
У организаций из-за все возрастающей сложности бизнес-процессов растет и инфраструктура. Она оставляет значительное количество информации в открытом доступе, и при этом ее зачастую сложно (или некем) контролировать. Такая ситуация приводит, например, к тому, что организации, заказывающие дорогостоящую услугу по анализу защищенности, в 44% случаев бывают взломаны из-за стандартных или нестойких паролей. Меня начал преследовать вопрос: как такие зрелые организации, покупающие столь недешевый сервис, забывают изменить пароли? Я нашел исследование SANS и RISKIQ, в котором говорилось о том, что 70% организаций не могут определить поверхность атаки из-за незнания своего периметра.
Что же делать? Необходимо знать, что ты защищаешь. Добиться этого можно разными способами:
- инвентаризация — мы запрашиваем у администраторов информацию через опросные листы;
- автоматизированные средства изнутри — сетевые сканеры собирают информацию внутри ЛВС;
- поиск по открытым источникам — сбор информации о том, как злоумышленник видит периметр организации.
Именно о поиске по открытым источникам и поговорим в рамках данной статьи.
О поиске по открытым источникам
Поиск по открытым источникам (OSINT) — процесс, в ходе которого производится обнаружение, выбор, сбор и анализ информации, находящейся в свободном доступе. Само понятие OSINT довольно широко; мы рассмотрим ту часть, которая относится к ИБ.
Можно выделить три различных метода сбора информации в OSINT:
- автоматизированными средствами;
- при помощи сервисов;
- ручным методом.
В усредненном виде автоматизированные средства поиска собирают следующую техническую информацию по доменному имени:
- перечень активных сетевых узлов и портов;
- перечень имен сотрудников;
- перечень почтовых адресов;
- перечень поддоменов;
- внешние Java-скрипты;
- аккаунты в социальных сетях;
- API-ключи;
- поиск по иным внешним базам.
Разумеется, собираемые данные могут сильно различаться от объекта к объекту.
Предлагаю на примере одного домена, принадлежащего учебному заведению, рассмотреть, что же может быть обнаружено и чем это грозит.
Поиск по сервисам-агрегаторам и сетевое сканирование
Зачем тратить свое время на сканирование, если можно забрать данные из Shodan?
На выбранном целевом домене находим сервис Apache версии 2.2.15 при помощи Shodan, просто указав в поиске интересующее нас доменное имя.
Рисунок 1. Версия Apache
Проверяем, есть ли какие-то уязвимости в данной версии, при помощи того же Shodan. Просто пролистав страницу ниже, обнаруживаем более 20 уязвимостей различного уровня критичности, в том числе — с готовыми эксплойтами. Наличие последних можно проверить на сервисе Vulmon — либо по CVE, либо по версии программного обеспечения.
Рисунок 2. Уязвимость с эксплойтом
Брешь на рисунке 2 позволяет проводить DoS-атаки на сервер и имеет готовый модуль в Metasploit. Напомню, что для избавления от большинства уязвимостей нужно регулярно обновлять компоненты.
Расширение границ исследования
Инфраструктура не ограничивается одним лишь веб-ресурсом, и на следующем шаге мы смотрим, какой перечень подсетей был выделен организации. Для этого переходим на bgp.he.net и указываем в поисковой строке интересующую нас организацию или IP-адрес.
Рисунок 3. Зарегистрированная сеть
На данном ресурсе можно получить еще и перечень доменных имен в одно нажатие клавиши. На вкладке DNS мы видим, что имеется более 1000 зарегистрированных имен.
Рисунок 4. Перечень доменных имен
Здесь мы можем сразу найти наиболее перспективные для атак доменные имена активов: корпоративные мессенджеры, сервисы для пользователей, средства удаленного управления и т.д.
Что делать, если используется несколько подсетей, в том числе и арендованные? Threatcrowd.org быстро и без проведения сканирования покажет, кто связан с основным доменным именем и в каких сетях находятся эти активы. Сервис предложит нам ввести доменное имя для поиска информации.
Рисунок 5. Threatcrowd
Другие агрегаторы
Если Shodan вполне комфортно использовать для ручного поиска на единичных объектах, то для работы по подсетям определенно придется приобретать подписку и использовать API. Что, если у вас есть крупная инфраструктура и нет времени на проведение полного сканирования? Dnsdumpster сможет моментально и бесплатно показать информацию о веб-сервере, сертификате, FTP, SSH, TELNET по каждому известному ему узлу в указанной вами подсети, расскажет об известных ему версиях сервисов. Такой инструмент вполне может заменить экспресс-сканирование.
Хочу обратить внимание, что мы собрали уже довольно большой объем информации и при этом сами не отправили еще ни байта в адрес объекта исследования. У нас с вами уже имеется представление о сетевой инфраструктуре, о том, где и в каких сетях размещены объекты, перечень известных сетевых имен, по некоторым узлам был получен список уязвимостей и существующих эксплойтов.
Результаты активного сетевого сканирования
Большинство инструментов имеет встроенные сетевые сканеры, которые сами проведут исследование указанного домена. На фоне довольно большого количества специализированных качественных сканеров, которые и перечень уязвимостей составят, и красивый отчет оформят, данная функциональность выглядит сомнительно. Однако она существует и может помочь в определении сервисов БД, FTP и различных служб удаленного администрирования, которые не должны присутствовать на периметре.
Внешние Java-скрипты
Хочется сделать акцент на возможности обнаружить на вашем ресурсе внешние Java-скрипты.
Рисунок 6. Внешние Java-скрипты
Почему это важно? Если скрипт будет изменен на оригинальном ресурсе, то мы получим изменения и у себя. Будет ли это правка кода или же очередной майнер криптовалюты, никто не скажет. Как это обнаруживать? Я использовал SpiderFoot.
Лучше, конечно, применять Java-скрипты, размещенные на своей собственной инфраструктуре.
Фишинг или угроза бренду?
Мы обнаруживаем домены, которые очень похожи своим написанием на домены исследуемых объектов, будь это образовательное учреждение, крупный банк или организация. Для домена, который мы рассматривали выше, не нашлось интересных примеров; приведу яркий случай из своей практики.
Существует Банк с веб-страницей bankbank.ru, и через какое-то время в Сети появляется еще и bank-bank.ru, который точь-в-точь повторяет внешний вид первого. Естественно, присутствует маленькое исключение: на bank-bank.ru имеются дополнительные рекламные баннеры, но рекламируют они не услуги Банка, а предложения его конкурентов!
Вид баннеров показан на рисунках 7 и 8. Оба образца рекламы используют реферальную ссылку и, видимо, приносят какую-то прибыль, уводя клиентов Банка в микрофинансовые организации.
Рисунок 7. Пример баннера №1
Рисунок 8. Пример баннера №2
Обнаруживать данные домены можно при помощи специальных сервисов — таких, например, как domaintyper.com — или использовать утилиты URLCrazy, SpiderFoot и CATPHISH.
Что же с этим делать? Первый шаг — написать письмо администратору хостинга (узнать его можно из записи Whois). В нашем случае это был крупный российский хостинг, у которого довольно быстро удалось найти форму обратной связи. В некоторых случаях закрытие подобных доменов происходит буквально через несколько часов после обращения к администраторам хостинга.
Социальная инженерия
Социальная инженерия — один из наиболее эффективных методов преодоления периметра. В рамках поиска по открытым источникам мы также можем обнаружить все необходимое: почтовые адреса, имена людей и ссылки на социальные сети. Данная информация будет собрана на этапе исследования доменных ресурсов путем использования сторонних сервисов, которые уже успели все это собрать за нас. На примере выбранного домена: специализированный софт выдал 550 уникальных почтовых адресов, показал имена более 500 сотрудников и нашел 140 их профилей в социальных сетях. Это — полностью готовая база для фишинга! Или список слушателей курса по повышению осведомленности в вопросах ИБ.
Как собирать такую информацию? Лучше использовать связку программного обеспечения (SpiderFoot, theHarvester) и сервисов (например, hunter.io) для ее обнаружения.
Добавить сопутствующих сведений нам помогут различные метаданные из офисных документов, размещенных на периметре. Для их сбора подойдут FOCA и Metagoofil. С той же целью после обнаружения файлов можно их выкачать и исследовать, уже имея локальные копии, при помощи ExifTool. Здесь мы можем обнаружить, например, имя автора, и даже этого будет достаточно для составления таргетированного фишингового письма, т.к. документ нам известен, а почтовые адреса мы собрали этапом ранее. Пример подобного письма показан ниже (рисунок 9).
Рисунок 9. Пример фишингового письма
Утекшие данные пользователей
Обнаружив в предыдущем разделе почтовые адреса сотрудников, мы проводим проверку этих почтовых адресов в различных сервисах и ищем «утекшие» пароли. И находим их, потому что пользователи любят регистрироваться в социальных сетях, музыкальных сервисах, сайтах знакомств и даже в интернет-магазинах при помощи корпоративных электронных адресов. На скриншоте ниже (рисунок 10) показаны результаты поиска моей личной почты в одной из таких баз. Пароли, которые там видны, я действительно использовал. Конкретно этот скриншот был сделан после проверки моих данных на сервисе https://ghostproject.fr/. Для одиночных почтовых адресов его вполне достаточно. Для проверки корпоративных адресов, когда их число переваливает за сотни, нужна автоматизация; с этим замечательно справляется, например, проект pwnedOrNot.
Рисунок 10. Результаты поиска по базам паролей
Что делать, если вы обнаружите ваш почтовый адрес или адрес ваших коллег? Необходимо сменить пароль сразу после того, как вы это обнаружили.
Разумеется, есть сервисы, которые показывают пароли в полном виде, без маскирования. За условно небольшие деньги они предоставляют полный доступ к своей огромной агрегированной базе скомпрометированных учетных записей.
Репозитории
GitHub — крайне удобное средство для разработчиков, в котором они выкладывают исходные коды своих проектов. Кто-то использует его как надежное хранилище своих наработок, кто-то применяет для резюме и т.д. Иногда там лежат корпоративные проекты, и именно такие репозитории представляют для нас интерес, потому что могут содержать API-ключи, логины и пароли для аутентификации. По нашему домену не было обнаружено подобных объектов, поэтому приведу пример выявления таких API-ключей ниже (рисунок 11). Поиск соответствующей информации можно проводить при помощи проекта Gitleaks.
Рисунок 11. Пример выявляемых данных
Если вам посчастливилось обнаружить в вашем корпоративном GitHub-репозитории API-ключ от вашего сервиса или служебные учетные данные, важно оперативно отказаться от этих аутентификационных данных и перенастроить все связанные сервисы. После этого уже можно заниматься расследованием инцидента.
Выводы
Поиск по открытым источникам — хороший способ понять, как выглядит организация с точки зрения внешнего потенциального злоумышленника. Этот набор мероприятий позволяет оперативно оценить потенциальные точки входа в инфраструктуру и начать проработку компенсирующих мер для превентивной борьбы со злонамеренной активностью.