
DShield Sensor Log Collection with ELK
Это форк и значительное обновление первоначальной публикации на сайте ISC Storm Center, автором которой является Скотт Дженсен (Scott Jensen), в виде статьи BACS и скриптов, опубликованных на Github.
https://github.com/fkadriver/Dshield-ELK
https://isc.sans.edu/diary/DShield+Sensor+Monitoring+with+a+Docker+ELK+Stack+Guest+Diary/30118
Это хороший справочный материал по использованию DShield-SIEM для анализа: https://isc.sans.edu/diary/30962/
Здесь представлен обзор того, как осуществляется сбор журналов с помощью датчика DShield.
https://github.com/bruneaug/DShield-SIEM/blob/main/Troubleshooting/DShield-SIEM-Flow.png
Этот Docker-образ специально создан для использования с DShield Honeypot для сбора и разбора журналов, а также для сбора данных, чтобы упростить поиск в исследовательских целях. Рекомендуемая установка — развернуть датчик DShield на Raspberry Pi с ОС Raspbian или на системе под управлением Ubuntu 24.04 LTS, либо в вашей сети, либо в облаке по вашему выбору.
Примечание: В соответствии с приведёнными ниже инструкциями, это должно быть установлено на отдельном сервере.
Примечание: Чтобы обновить компоненты сервера ELK, выполните следующие действия:
https://github.com/bruneaug/DShield-SIEM/blob/main/README.md#download-github-update
Установите Docker под учетной записью пользователя ($):````
sudo apt-get install ca-certificates curl gnupg network-manager txt2html
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
Note: You may need to take the next line, remove the backlash () and put everythin in a single line in Notepad to run this echo.
echo "deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu
"$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt update && sudo apt upgrade
sudo reboot (if update were applied)
sudo apt-get install -y jq docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin pip
sudo systemctl enable docker
sudo systemctl start docker.service
Подтвердите, что служба Docker запущена<br>````
sudo systemctl status docker.service
Добавьте следующие имена серверов ELK es01 kibana fleet-server heartbeat logstash filebeat filebeat01
в /etc/hosts после IP-адреса и имени сервера:
````
sudo vi /etc/hosts
Добавьте это в /etc/hosts после IP-адресов ELK-сервера<br>
127.0.0.1 sensor es01 ...<br>
192.168.25.80 sensor es01 ...<br>````
es01 kibana fleet-server heartbeat logstash filebeat filebeat01
Отредактируйте файл sysctl.conf:
````
sudo vi /etc/sysctl.conf
Добавьте следующее в конец файла:<br>````
vm.max_map_count=262144
Добавьте и сохраните это. Это для Elasticsearch при использовании Docker.
sudo iptables -nL

# Настройка и установка DShield ELK
Используя учётную запись пользователя ($), выполните следующие команды:<br>````
git clone https://github.com/bruneaug/DShield-SIEM.git
mkdir scripts
mv DShield-SIEM/AddOnScripts/*.sh scripts
chmod 754 scripts/*.sh
cd ~/DShield-SIEM
Примечание: Перед установкой вы можете отредактировать файл .env (посмотрите его с помощью ls -la), чтобы внести любые желаемые изменения.
- Текущий пароль по умолчанию для elastic — student
Лимиты памяти в .env — это максимальный объем памяти, который docker выделит для каждого из контейнеров ELK.
По умолчанию 3 ГБ для Elasticsearch, но можно расширить, если у вас есть ресурсы
Отредактируйте файл .env и настройте свой собственный стек ELK.
````
vi .env
Обновите следующие переменные в файле **.env**, чтобы они соответствовали информации о DNS вашего ELK-сервера, имени хоста, IP-адресу и паролю Elastic по умолчанию, если вы хотите его изменить: <br>
- HOSTNAME="ubuntu"
- DNS_SERVER="9.9.9.9"
- IPADDRESS="192.168.25.231"
- ELASTIC_PASSWORD=student
- ES_MEM = Elasticsearch -> 4g, KB_MEM = Kibana -> 2g
- Если вы хотите изменить информацию о сервере(ах) имён по умолчанию и локальное расположение вашей частной сети для адреса назначения (например, сопоставление сенсора DShield — в настоящее время установлено для **Оттавы, Канада**), отредактируйте файлы в следующем каталоге перед загрузкой docker:<br>````
cd logstash/pipeline
Отредактируйте heartbeat.yml, чтобы заменить IP-адрес датчика (с именем PI) на ваш собственный IP-адрес датчика. Kibana heartbeat проверяет статус ваших сервисов и определяет, доступны ли они.
Обновите этот IP-адрес и имя хоста, чтобы они соответствовали вашему датчику.
Примечание: Вы можете скопировать и добавить те же 5 строк, если хотите отслеживать более одного датчика
Это можно посмотреть в разделе Observability -> Uptime Monitors

Эта строка — IP-адрес датчика. Если при подключении к TCP 12222 не получен ответ, интерфейс отметит его как недоступный.
Это инициируется сервером ELK для проверки ответа от датчика.
Обновите эту строку: hosts: ["192.168.25.165"]
````
vi ~/DShield-SIEM/heartbeat/heartbeat.yml
Скрипт **change_perms.sh** настроит некоторые файлы перед началом установки компонентов docker.<br>
Скрипт также обновит IP-адрес, используемый в запросе панели управления, на IP-адрес вашего стека ELK.<br>````
~/scripts/change_perms.sh
~/scripts/get_researchers.sh
Теперь выполните docker compose для сборки приложений сервера ELK.
Это соберёт: Kibana, Elasticsearch, elastic-agent, Logstash и загрузит парсеры Cowrie, файлы конфигурации и панель мониторинга.
````
sudo docker compose up -d
Установка завершена