SIEM Без Границ: Хакерская Эстетика в Мире Безопасности
Ловим хакеров и плохих парней с использованием SIEM + honeypot pt.1
Ловим хакеров и плохих парней с использованием SIEM + honeypot pt.1
Авторство: defaultuser0
Источник: xss.pro
Приветствую форумчане! В этой серии статей под хэштегом #BlueTeam мы будем познавать все тайны белых шляп. Конкретно эта статья посвященная SIEM будет разбита на 3 части:- Знакомство с SIEM + установка
- Доработка SIEM + написание правил
- Анализ инцедентов с использованием SIEM
Задаваясь вопросом кому будет интересны эти статьи? Можно ответить: Начиная от продвинутых хакреов - заканичвая новичками в сфере ИБ, которы смогут получить опытв случаи если все прочитать + понять + повторить и бесценный материал о котором нигде не напишут, а для хакеров это прекрасная возможность увидеть как все это выглядить на другой стороне.
Так же перед началом хотел поблагодраить всех, кто оставляет комментарии под моими постами и ставит лайки! - Спасибо вам большое.
Отдельно хотел поблагодарить ice80 и admin за пожертвования, благодаря им у меня есть желание и мотивация писать о том, что не пишут рядовые бойцы BlueTeam! - Спасибо вам огромное!
Один великий полководец сказал:
"Знай врага и знай себя: тогда в тысяче битв не потерпишь поражения.“
Это становиться понятно именно сейчас, когда в современном мире так много видов и техник атак, что порой приходиться задаваться вопросами - Кто? - Как? - Зачем?
Именно для этого нужны Honeypot - "горшочек с мёдом" - ресурс, компьютер, камера, принтер, роутер = представляющий собой приманку для злоумышленников.
В этой серии статей я буду описывать как развернуть полноценную систему защиты с использованием honeypot + SIEM, для того чтобы всегда знать врага в лицо.
Того саммого полководца звали Сунь цзы. Искусство войны
Знакомство с SIEM
SIEM (Система управления информационной безопасностью и событиями безопасности) - это решение, позволяющее организациям обнаруживать, анализировать и устранять угрозы безопасности раньше, чем они нанесут ущерб бизнесам. На рынке ИБ существуют множество различных SIEM, как коммерческих, так и опенсурсных. Самые популярные SIEM:
- Elastic stack (ELK SIEM)
- MaxPatrol SIEM
- Kaspersky SIEM
- IBM Qradar SIEM
- Wazuh SIEM
Так же перед началом изучения такого материала нужно ознакомиться с базовыми понятиями. (все же я надеюсь что рядовой читатель уже имеет базовые знания программирования, администрирования и понимания работы сетей и протоколов)
Инцидент информационной безопасности - Любое непредвиденное или нежелательное событие, которое может нарушить деятельность или информационную безопасность.
Событие информационной безопасности - Идентифицированное возникновение состояния системы, услуги или сети, указывающее на возможное нарушение политики информационной безопасности, отказ защитных мер, а также возникновение ранее неизвестной ситуации, которая может быть связана с безопасностью.
Главная цель систем информационной безопасности – гарантия защиты данных от внешних и внутренних угроз.
Начнем с выбора SIEM, из всего ассортимента я лично предпочитаю Elastic stack, просто потому что он опенсурс + им пользуються во многих компаниях начиная от ИБ контор, зкакничвая Тинькофф Банком.
ELK — это аббревиатура из названий трех продуктов: Elasticsearch, Logstash и Kibana. Вместе все это добро обзываеться как Ёлка, или Эластик. Эти три продукта (4) состовляют базу SIEM и тут нужно по подробнее.
Elasticsearch — это ядро Elastic Stack. Поисковая система, которая хранит неструктурированные данные и выдаёт их по запросу..
Logstash — это инструмент сбора, анализа логов и других типов данных. Подключается напрямую к Elasticsearch и загружает данные туда.
Kibana — это интерфейс для представления данных из Elasticsearch. В Kibana есть настриваемые представления: линейные графики, секторные диаграммы, географических карты.
Filebeat — это универсальный сборщик логов с удалённых систем и сервисов. Нативно поставляет логи в Logstash или напрямую в Elasticsearch. Имеет готовые обработчики для логов различных форматов: системные, Nginx, Apache, MySQL и других.
Filebeat агент на хосты, он как бы формально не входит в стек elk, но без него елк не елк... ну вы поняли -_0
У Эластика есть такое понятие как ноды, мастер ноды, кластер. Говорят коротко у вас есть возможность горизонтального масштабирования. Условно когда ваша SIEM разрастеться до сбора и анализа логов несколько тысячи хостов и ваша ёлка будет долго отвечать на ваши запросы + вероятно что сам эластик просто упадет от нагрузки, у вас есть возможность добавить ноды для распределения нагрузки на кластер. В любом случаии если что то не понятно, внизу будут линки на оффициальную документацию Эластика.
Теперь мы знаем базу и перейдем к развертыванию всего этого добра.
Установка SIEM
Сразу перед установкой нужно определиться с железом, у меня будет 1 сервер (Debian) на котором я разверну elastic, logstash, kibana - это не совсем хороший пример, но для образца сойдет:- 4 core
- 8gb RAM
- SSD 1TB
| минимальные | рекомендуемые | |
|---|---|---|
| CPU | 2 | 4+ |
| Memory | 6 Gb | 8+ Gb |
| Disk | 10 Gb | 10+ Gb |
При установке Elastic Stack вы должны использовать одну и ту же версию для всего стека.
Так же забыл написать что Elasticsearch построен с использованием Java и всеми его выходящими. В комплекте идет JVM и тут ниче менять не надо, JVM является рекомендуемой.
Не используйте сторонние агенты Java, подключаемые к JVM. Эти агенты могут снизить производительность Elasticsearch, включая зависание или сбой узлов.
Требования к сети
Чтобы установить Elastic Stack локально, для каждого компонента должны быть открыты следующие порты.Default port | Component |
|---|---|
3002 | Enterprise Search |
5044 | Elastic Agent → Logstash Beats → Logstash |
5601 | Kibana Elastic Agent → Fleet Fleet Server → Fleet |
8220 | Elastic Agent → Fleet Server APM Server |
9200-9300 | Elasticsearch REST API |
9300-9400 | Elasticsearch node transport and communication |
9600-9700 | Logstash REST API |
На голый сервер Debian устанавливаем gpg
Код:
apt install gpg
Код:
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo gpg --dearmor -o /usr/share/keyrings/elasticsearch-keyring.gpg
Дальше поставим все из APT репозитория:
Код:
sudo apt-get install apt-transport-https
Код:
echo "deb [signed-by=/usr/share/keyrings/elasticsearch-keyring.gpg] https://artifacts.elastic.co/packages/8.x/apt stable main" | sudo tee /etc/apt/sources.list.d/elastic-8.x.list
Ну и теперь основное, ставим Эластик
Код:
sudo apt-get update && sudo apt-get install elasticsearch
Это все добро теперь надо запустить и добавить в автозапуск.
Код:
systemctl daemon-reload
systemctl enable elasticsearch.service
systemctl start elasticsearch.service
Код:
systemctl status elasticsearch.service
Код:
curl -k --user elastic:'ваш ключ' https://127.0.0.1:9200
Окей сама поисковая система работает, мы убедились, теперь поставим Кибану и Логстеш.
Тут все по классике:
Код:
apt update && apt install kibana
Код:
systemctl daemon-reload
systemctl enable kibana.service
systemctl start kibana.service
systemctl status kibana.service
Пока не радуемся, нам осталось еще поставить логстешь.
Тут по классике
apt update && apt install logstash
Код:
systemctl daemon-reload
systemctl enable logstash.service
systemctl start logstash.service
systemctl status logstash.service
У логстеша есть два конфигурационных файла /etc/logstash/logstash.yml и наши конфиги /etc/logstash/conf.d/наш конфиг
Логика этого конфига как и любого другого yml cfg файла, если нам что то нужно то снимаем комментарий (стираем решетку).
Нам пока что нужен только 2 конфиг.
Открываем через vim
конечно же и вима нету в сыром дебиане, поэтому apt install vim
vim /etc/logstash/conf.d/input.conf
и добавляем туда
Код:
input {
beats {
port => 5044
}
}
Это нужно для приёма информации агентов(хостов)
Не далеко уходя создаем второй конфиг файл vim /etc/logstash/conf.d/output.conf
Тут нам понадобиться тот самы пароль который вы получили при установке Эластика, что касаеться SSL/TLS, тут тоже можно его добавить
cacert => "/etc/elasticsearch/certs/http_ca.crt"
Код:
output {
elasticsearch {
hosts => ["https://ВАШ IP adrs:9200"]
index => "%{[@metadata][beat]}-%{[@metadata][version]}"
action => "create"
user => "elastic"
password => "Ваш Pass"
cacert => "/etc/logstash/certs/http_ca.crt"
}
}
Эти настройки позволят нам передавать все данные в elasticsearch под указанным индексом с маской в виде даты. Это в будующем будет очень удобно при анализе логов где будет нормальная разбивка по времени!!
Я совсем забыл про настройку elasticsearch, тут мы быстро все поправим!
Обзываем кластер как хотим, я лично назвал его xss-best-forum
Тут как я говорил есть такие вещи как ноды, пока сильно не загружайте голову, представляю ваши лица которые первый раз это все видят и тут какие-то ноды кластеры ху**еры -_0.
И самое главное, из-за чего у вас кластер может не запахать это:
Поменяйте с 192.168.0.1 на 127.0.0.1
Поменяйте с 192.168.0.1 на 127.0.0.1
Самое главное правило Эластика это- после любого изменения конфигов systemctl restart ******.service
systemctl restart elasticsearch.serviceГотово, мы можем поднять нашу веб морду для этого нужно чутка покапаться в конфигах. Под раздачу попадает конфиг Кибаны - /etc/kibana/kibana.yml
Сразу прописываем эти команды, эти серты кибаны, без них она не заработает
Код:
cp -R /etc/elasticsearch/certs /etc/kibana
chown -R root:kibana /etc/kibana/certs
Открываем его через vim.
Код:
vim /etc/kibana/kibana.yml
Убираем решетку и добавляем к http + s = https
Они идут вместе с ЕЛК поэтому тут ОБЯЗАТЕЛЬНО! делаем вот так
А вот это интересный момент, если опять же вы поднимаете прод и хотите чтобы все было по феншую, то вам нужен серт.
И самое главное вверху конфигурационного файла есть очень важная вещь, тут не забываем поменять, чтобы можно было коннектиться к панели не только из локалки. (Ну это только тут, в продакшене какого нибудь сока, все обернуто в локалку + впн и конечно же никакого доступа из вне)
Тут пишем "http://ip_сервера:5601"
https если включили tls
Так же нужно настроить аунтифкиацию в эластик. Для этого нужно создать внутреннего пользователя kibana_system
Код:
/usr/share/elasticsearch/bin/elasticsearch-reset-password -u kibana_system
Код:
systemctl restart kibana.service
https если включили tls
Можем увидеть такое в браузере - это плохо, смотрим что происходит с кибаной и почему она нам не дает войти =)...
Открываем статус кибаны и видим что там че то с нодой не может коннекшен (тут я дурак и забыл просто указать путь до сертификатов)
Все это дело под рестар вместе с эластиком и логстешем.
Открываем браузер заходим на панель и видим это..
У нас тут все работает по логам с сервера понимаем что пашет отлично, но теперь нам нужны боевые логи хостов.
И вот тут на сцену выходит Beats.
Как я уже писал выше Beats это агент на хосты который будет собирать все чихи нашего устройства и отправлять их в Logstash, вот на этом моменте нам нужны будут уже правила по которым ELK сможет выявлять вредоносную активность, а Кибана отрисовывать это все в красивые графики.
Начнем с настройки Beats на нашем сервере, так же у нас будет для начала виртуалка у которой будет стоять этот агент.
Windows - winlog beat
Unix - filebeat
Щас в виде тестового стенда я буду использовать свою виртуалку и поставлю на нее filebeat агента, и посмотрим как это все тут отрисовываеться и попадают ли логи вообще в логстеш?. Сам агент можно скачать тут -> Сайт
Или если линукс apt install filebeats
У нас есть выбор транслировать логи с агентов в эластик или помещать их в логстеш, чисто для быстроты эксперемента поставим все на эластик
Перед тем как скормить агента виртуалке само собой нужно подредачить конфиг файл. Он лежит в папке и называеться filebeats.yml
В конфиругационном файле вам обязательно нужно, обязательно указать ваш хост ( не оставляйте локалхост ) прописывайте руками адрес сервера эластика, даже если он в локалке, выставляйте руками https и два важных момента дать креды супер пользователя и обязательно прописать ssl.certificate_authoities: Без этого агент файлбита просто не будет передавать логи, серты лежат по пути /etc/elasticsearch/certs/http_ca.crt
Как видим filebeat 8.11.4 активно дает логи, но пока это все очень в сыром виде и никуда нормально не дениться..
Теперь у нас есть полноценная база для напиание правил и уже к этому моменту можно подключать IDS/IPS, самый лучший совет это читайте логи, особенно логстеша..
Всем спасибо кто дочитал!! Ждите вторую часть.
Полезная инфа - https://www.elastic.co/guide/en/elasticsearch/reference/8.11/elasticsearch-intro.htmlБезработному блютимеру на ход ноги - bc1qxzw0u2hl40hxpw0zjz82zzkl5mgjtp9xwkex6f
Вложения
-
1705024551008.png2.6 КБ · Просмотры: 33 -
1705022430228.png28.9 КБ · Просмотры: 19 -
1705021358040.png32.8 КБ · Просмотры: 20 -
1705020521830.png5.7 КБ · Просмотры: 22 -
1705025378025.png37.8 КБ · Просмотры: 24 -
1705024807426.png27.5 КБ · Просмотры: 23 -
1705016795584.png2.6 КБ · Просмотры: 19 -
1705016108368.png68.3 КБ · Просмотры: 20 -
1704985445677.png26.5 КБ · Просмотры: 25
Последнее редактирование: