Статья

Awesome Image
Awesome Image

3 октября 2019


Как действует типовой злоумышленник? 


В первую очередь он собирает столько информации о Вашей инфраструктуре, сколько сможет. Это не только сканирование сетевых портов, это шире. Это исследование вашего веб-сайта, при этом не важно где он размещен, на хостинге или на вашем периметре, это исследование вашего периметра, всех ресурсов, которые там присутствуют.  После сбора всей информации, злоумышленник начинает предпринимать попытки преодоления периметра и в случае успеха, действовать уже внутри сети. Эффективное выявление действий злоумышленника возможно начиная с попыток преодоления периметра. На этапе сбора информации мы не можем активно противодействовать ему. Бездействие в борьбе за нашу информационную безопасность нам не поможет. Именно поэтому, нам надо самим собирать всю доступную информацию об организации и делать так, чтобы злоумышленник не смог найти ничего полезного на нашем периметре. 

Об этом и будет данная статья: об обнаружении информации, которая поможет злоумышленнику спланировать и провести атаку эффективнее. Примерами таких данных являются: информация о сетевой инфраструктуре, сетевые сервисы на периметре, перечни сотрудников, их сфера деятельности и компетенции, почтовые адреса, свободные домены с похожим написанием, публичные репозитории с не удалённой аутентификационной информацией и т.д. У организаций из-за все возрастающей сложности бизнес-процессов растет и инфраструктура. Эта инфраструктура оставляет значительное количество информации в открытом доступе. И ее зачастую сложно или некем контролировать. А это приводит к тому, что организации заказывающие дорогостоящую услугу по анализу защищенности в 44% случаев бывают взломаны из-за стандартных или нестойких паролей  [1].  Меня начал мучать вопрос, как такие зрелые организации, покупающие такую дорогостоящую услугу, забывают изменить пароли на периметре? Я нашел исследование SANS и RISKIQ в котором говорилось о том, что 70% организаций не могут определить поверхность атаки из-за незнания своего периметра [2]. 

 

А что же делать?

Необходимо знать, что ты защищаешь. А вот как этого добиться, рассмотрим ниже:

  • Инвентаризация ­­- мы запрашиваем у администраторов информацию через опросные листы;
  • Автоматизированные средства изнутри – сетевые сканеры собирают информацию внутри ЛВС;
  • Поиск по открытым источникам – сбор информации о том, как видит злоумышленник периметр организации.


Поиск по открытым источникам

Именно о поиске по открытым источникам и поговорим в рамках данной статьи. Поиск по открытым источникам (OSINT) – процесс, в ходе которого производится поиск, выбор, сбор и анализ информации по открытым источникам. Само понятие OSINT довольно широко, мы рассмотрим ту часть, которая относится к ИБ. Можно выделить 3 различных метода сбора информации в OSINT:

  • Автоматизированными средствами;
  • При помощи сервисов;
  • Ручным методом.

В усредненном виде автоматизированные средства поиска собирают следующую техническую информацию по доменному имени:

  • Перечень активных сетевых узлов и портов;
  • Перечень имен сотрудников;
  • Перечень почтовых адресов;
  • Перечень поддоменов;
  • Внешние java-скрипты;
  • Аккаунты в социальных сетях;
  • API-ключи;
  • Поиск по иным внешним базам.

Разумеется, собираемые данные могут сильно различаться от объекта к объекту. Предлагаю на примере одного домена, принадлежащего учебному заведению рассмотреть, что же может быть обнаружено и чем это грозит. 


Поиск по сервисам агрегаторам и сетевое сканирование 

Зачем тратить свое время на сканирование, если можно забрать данные из shodan? На выбранном целевом домене находим на web-сайте сервис Apache версии 2.2.15 при помощи shodan, просто указав в поиске интересуемое нами доменное имя. 

Рисунок 1 – Версия Apache


Проверяем есть ли какие-то уязвимости к данной версии на том же shodan, просто пролистав страницу ниже, обнаруживаем 20+ уязвимостей различного уровня критичности, в том числе с готовыми эксплойтами, которые мы нашли. Наличие готовых эксплойтов можно проверить на сервисе vulmon, поиск осуществляем либо по CVE, либо по версии ПО.


 

Рисунок 2 – Уязвимость с эксплойтом

 

Эта уязвимость позволяет проводить отказ в обслуживании на сервер и имеет готовый модуль в metasploit. Избавиться от большинства уязвимостей можно регулярным обновлением компонент, в том числе и от этой уязвимости. 


Расширение границ исследования

Инфраструктура не ограничивается одним лишь веб-ресурсом, и мы следующим шагом смотрим какой перечень подсетей был выделен организации. Для этого переходим на bgp.he.net и указываем в поисковой строке интересующую нас организацию или ip-адрес. 


Рисунок 3 – Зарегистрированная сеть


На данном ресурсе можно получить еще и перечень доменных имен в 1 нажатие клавиши. На вкладке DNS мы видим, что имеется более 1000 зарегистрированных имен и ниже видим этот перечень.


 

Рисунок 4 – Перечень доменных имен

 

Здесь мы можем сразу найти наиболее перспективные для атак доменные имена активов: корпоративные мессенджеры, сервисы для пользователей, средства удаленного управления и т.д. А что делать, если используется несколько подсетей в том числе и арендованные? https://www.threatcrowd.org быстро и без проведения сканирования покажет, кто связан с основным доменным именем и покажет в каких сетях находятся эти активы. Сервис предложит нам ввести доменное имя для поиска информации.


Рисунок 5 – Threatcrowd


Другие агрегаторы

Если shodan вполне комфортно использовать для ручного поиска на единичных объектах, то для работы по подсетям определенно придется приобретать подписку и использовать API. А если у вас есть крупная инфраструктура и нет времени на проведение полного сканирования? Dnsdumpster [3] сможет по вашему домену моментально и бесплатно показать информацию по web-серверу, сертификату, FTP, SSH, TELNET по каждому известному ему узлу в указанной вами подсети, расскажет об известных ему версиях сервисов. Такой сервис вполне может заменить экспресс сканирование. 

Хочу обратить внимание, что мы собрали уже довольно большой объем информации и при этом сами не отправили еще ни байта в адрес объекта исследования. У нас с вами уже имеется представление о сетевой инфраструктуре, где и в каких сетях размещены объекты, перечень известных сетевых имен, по некоторым узлам был получен перечень уязвимостей и существующих эксплойтов. Мы, не можем препятствовать сбору подобной информации, но мы можем уменьшить количество выявляемых уязвимостей на периметре регулярным обновлением компонент.  

 

Результаты активного сетевого сканирования

Большинство инструментов имеют встроенные сетевые сканеры, которые сами проведут сканирование указанного домена. На фоне довольно большого количества качественных сетевых сканеров, которые еще и перечень уязвимостей составят, и красивый отчет оформят, данный функционал выглядит сомнительно. Однако он есть и может помочь в определении сервисов БД, FTP и различных сервисов удаленного администрирования, которые не должны присутствовать на периметре.

 

Внешние java-скрипты

Хочется сделать акцент на возможности обнаружить на вашем ресурсе внешние java-скрипты.


Рисунок 6 – Внешние java-скрипты

 

Почему это важно? Если javascript будет изменен на оригинальном ресурсе, то мы получим изменения и у себя. Будет ли это правка кода или же очередной майнер криптовалюты никто не скажет. Как это обнаруживать? Я использовал spiderfoot. Лучше, конечно, использовать java-скрипты размещенные на своей собственной инфраструктуре.

 

Фишинг или угроза бренда?

Мы обнаруживаем домены, которые очень похожи в своем написании на домены исследуемых объектов будь это образовательное учреждение, крупный банк или организация. Для домена, который мы рассматривали выше, не было обнаружены интересных примеров, приведу яркий пример из своей практики. Существует Банк с web-страничкой 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  [4] с этим замечательно справляется.

Что делать, если вы обнаружите ваш почтовый адрес или ваших коллег? Необходимо сменить пароль сразу, как вы это обнаружили. 


Рисунок 10 – Результаты поиска по базам паролей

 

Разумеется, есть сервисы, которые показывают пароли в полном виде, без маскирования. За условно небольшие деньги они предоставляют полный доступ к своей огромной агрегированной базе скомпрометированных УЗ.

 

Репозитории

Github – крайне удобное средство для разработчиков, в котором они выкладывают исходные коды своих проектов. Кто-то использует это как надежное хранилище своих наработок, кто-то использует для резюме и т.д. Иногда там лежат корпоративные проекты и именно такие репозитории и представляют для нас интерес потому что могут содержать API-ключи, логины и пароли для аутентификации.  По нашему домену не было обнаружено таких объектов, поэтому приведу пример выявления таких API-ключей ниже (Рисунок 9). Поиск подобной информации можно проводить, используя проект gitleaks  [5]. 

  


Рисунок 11 – Пример выявляемых данных

 

Если вам посчастливилось обнаружить в вашем корпоративном github репозитории API ключ от вашего сервиса, или служебные учетные данные, важно оперативно отказаться от этих аутентификационных данных и перенастраивать все связанные сервисы. После этого уже заниматься расследованием данного инцидента.  

 

Заключение

Поиск по открытым источникам – хороший способ понять, как выглядит организация для внешнего потенциального злоумышленника. Этот набор мероприятий позволяет оперативно оценить потенциальные точки входа в инфраструктуру и начать проработку компенсирующих мер.


Материал доступен на сайте: https://www.anti-malware.ru/analytics/Threats_Analysis/Gathering-information-the-way-cybercrooks-see-you


[1] https://www.ptsecurity.com/upload/corporate/ww-en/analytics/Positive-Research-2018-eng.pdf

[2] https://www.riskiq.com/blog/external-threat-management/ovum-on-the-radar/

[3] https://dnsdumpster.com

[4] https://github.com/thewhiteh4t/pwnedOrNot

[5] https://github.com/zricethezav/gitleaks