Каким образом можно мониторить количество атак, которые проводятся по отношению к инфраструктуре компании? Один из способов это установка специальных систем, которые называются honeypot. Honeypot это ловушка, позволяющая полностью или частично записать последовательность действий, которые выполняются атакующим. В данной статье попробуем выбрать и настроить honeypot, а в качестве системы мониторинга будем использовать ELK стек.
Выбор honeypot
Любая атака на информационную систему возможна в случае наличия в этой системе уязвимости. Классов уязвимостей достаточно много, для примера можно использовать TOP 25 MITRE. Это только самые популярные уязвимости. Если проанализировать список, то можно заметить, что уязвимости в списке могут быть обнаружены в разных частях операционой системы и любого программного обеспечения.
Каждая подсистема в которой может появиться уязвимость работает на основе отдельной технологии и зачастую логирование промежуточных данных и запись событий в этих подсистемах очень лимитированы. Из-за этого для того чтобы мониторить атаки, нужно определить какие именно атаки действительно могут нанести системе серьезный ущерб. Выделим типы атак, которые могут быть проведены на информационную систему:
-
Атаки на веб-приложение
-
Атаки на операционные системы серверов и пользователей
-
Атаки на сетевое оборудование
Для всех типов атак существуют свои версии ловушек, которые могут предоставить информацию по атакующим узлам и набору программного обеспечения, которое интересует атакующих. В этой статье будем рассматривать ловушки, которые доступны в OpenSource.
Ловушки для веба
Самый распространенный вид ловушек, в большинстве случаев представляет собой отладочную версию веб-приложения. Почти всегда используется для мониторинга атак на конкретные популярные CMS. Из-за большого количества фреймворков и языков программирования в этой области, создание общей ловушки достаточно сложный процесс. Поэтому ловушки строятся или под публичную уязвимость или под одно приложение. Примеры проектов, которые могут быть использованы для мониторинга атак:
-
Ловушка для форм Symfony2 EoHoneypotBundle;
-
Ловушка на Python для эмуляции классов уязвимостей Share;
-
Ловушка для nodeJS приложений;
-
Ловушка c уязвимой версией Drupal CMS;
Ловушки для сервисов ОС
Отдельный набор ловушек, который старается подражать действиям сервисов операционных систем. Обычно для мониторинга и логирования используется эмулятор, который перехватывает системные вызовы для ядра ОС и пишет все промежуточные данные. Примеры имплементации таких ловушек:
-
Ловушка, которая представляет собой ADB сервис ОС Androidl
-
Ловушка эмулирующая SMB протокол;
-
Ловушка для мониторинга атак на RDP.
Настройка
Для полноты покрытия атак попробуем настроить ловушку, которая включает в себя все типы ловушек. Проводить настройку нашей ловушки будем на базе операционной системы Ubuntu 20.04, которая запущена на виртуальной машине Virtual Box. Чтобы максимально упросить процесс настройки и не терять времени на поиск зависимостей для ловушки, будем использовать готовые Image, которые доступны на Docker Hub. Для быстрого обнаружения уже собранных Image воспользуемся поисковиком Google и введем следующий запрос:
honeypot ELK inurl:hub.docker.com
Поисковик на Docker Hub не работает гибко с критериями, которые необходимо найти в описании Image. В итоге у нас есть обширный набор Image с уязвимыми версиями ELK и Image с ELK в качестве системы накопления и визуализации.
Для экспериментов возьмем вот этот проект. Он сразу включает в себя ELK+honeypot. Клонируем проект на машину с предустановленным Docker:
git clone https://github.com/kobadlve/underworld.git
Зайдем в склонированную директорию и выполним команды:
docker-compose build docker-compose up
Но не всё так просто, чтобы сборка прошла успешно придется локально выкачать Logstash отсюда. И отредактировать вот этот файл.
FROM logstash MAINTAINER kobadlve USER root #<= new line ADD conf/ /root/conf ...
И после этого можно перезапускать команды на сборку и запуск ловушки. По результатам, если провести сканирование машины с ловушкой будет вот такой результат nmap:
Теперь отправляя запросы на открытые порты можно наблюдать в Kibana (порт машины с ловушкой 5601). Все действия, которые выполняются в процессе отправки данных на каждый из портов. Таким образом можно теперь мониторить атаки, которые могут быть проведены на информационную систему.
Прямо сейчас в OTUS открыт набор на новый поток курса «Мониторинг и логирование: Zabbix, Prometheus, ELK». Уже сегодня пройдет бесплатный вебинар в рамках которого вы сможете узнать о карьерных перспективах в данной области.
Также предлагаем посмотреть запись демо-урока курса по теме: «ELK стэк»
ссылка на оригинал статьи https://habr.com/ru/company/otus/blog/552608/
Добавить комментарий