
DShieldセンサーログ収集(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 センサーを、ネットワーク内または任意のクラウド上の PI Raspbian OS を使用した Raspberry Pi、または 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 を
IP アドレスとサーバー名の後に /etc/hosts へ追加します:
````
sudo vi /etc/hosts
ELK サーバーの IP アドレスの後に、これを /etc/hosts へ追加してください<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
追加して保存します。これはDocker使用時のElasticsearch向けです。
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 内の Memory Limits は、docker が各 ELK コンテナに割り当てる最大メモリ量です。
Elasticsearch はデフォルトで 3GB ですが、リソースがあれば拡張できます。
.env ファイルを編集して、独自の ELK Stack 用に設定してください。
````
vi .env
- Update the following variables in the **.env** file to match your ELK server DNS information, hostname, IP and default elastic password if you want to change it: <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
- If you want to change the default nameserver(s) information and your local private network location for the destination address (i.e. DShield sensor mapping - currently set for **Ottawa, Canada**), edit to the following directory for the files before loading 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 アドレスを、お使いの ELK スタックの IP に更新します。<br>````
~/scripts/change_perms.sh
~/scripts/get_researchers.sh
docker compose を実行して、ELK サーバーアプリケーションをビルドします。
これにより、Kibana、Elasticsearch、elastic-agent、Logstash がビルドされ、Cowrie パーサー、設定ファイル、ダッシュボードが読み込まれます。
````
sudo docker compose up -d
インストール完了
<img width="375" height="354" alt="image" src="https://assets.kitploit.com/production/public/readmes/50066/b192e2cc430ca7eaa43934ebde637400b29d23212dce39e81f521b0806df1bc0.png" />
# サーバーの信頼済み証明書に ca.crt を追加
- サーバーの信頼済み証明書リストに ca.crt を追加します```
sudo cp /var/lib/docker/volumes/dshield-elk_certs/_data/ca/ca.crt /usr/local/share/ca-certificates/dshield.crt
```
- 信頼された証明書を更新する ```
sudo update-ca-certificates
```
### Kibana にダッシュボードと SIEM シグネチャを追加する
これは DShield の SIEM ダッシュボードと SIEM シグネチャを Kibana に読み込みます。<br>```
~/scripts/dashboard-setup.sh
```
### Docker ディレクトリ一覧
このコマンドは、Elasticsearchのすべてのコンポーネントがインストールされた後に使用中のDockerディレクトリのリストを表示します。<br>
Elasticsearchにデータが追加されると、以下のコマンドまたはELK内でストレージに利用可能なディスク容量を監視することもできます。<br>````
sudo du --human-readable --max-depth 1 --no-dereference --one-file-system /var/lib/docker
