家studyをつづって

IT技術に関することやセキュリティ、ガイドライン等学んだことをつづっていきます。

ハニーポットの構築メモ(その3)

その3では、その他追加した機能について、順次記載していきます。

 

4.サーバの監視

Mackerelというサービスを使ってハニーポットを監視します。無料アカウントでもホスト5台までなら死活監視はできます。

mackerel.io

 

4-1.Mackerelエージェントのインストール

Mackerelの導入は簡単です。アカウントの登録後、「ホスト」より新規登録を行うことで、監視対象マシンのOSごとのエージェントインストール方法が案内されます。

f:id:iestudy:20190623223449p:plain

Mackerelのイメージ

 

上記コマンドを実行すると、エージェントがインストールされ成功すれば以下のようなメッセージが表示されます。

表示されるメッセージ

*************************************

Done! Welcome to Mackerel!

*************************************

上記メッセージ表示後、MackerelのGUIに戻り、新規に表示されているサーバの設定を行うことで監視が可能です。

 

 5.攻撃ログをSlackで確認する

ハニーポットのログ分析は労力が必要になる作業です。日々のタスクとしてログの分析(確認)を行うことが私にとっては難しい部分もあったため、Wowhoneypotのログを手軽に確認できるようにSlackへ投稿するようにしました。

 

5-1.Slack側の準備

Slack側では、ハニーポットがログの内容を投稿するチャンネルに対して「Incoming Webhook」のアプリ設定を行います。

 

f:id:iestudy:20190630230614p:plain

対象となるチャンネルのアプリの設定

アプリの検索画面では「Incoming Webhook」を検索し、選択します。

f:id:iestudy:20190630230908p:plain

Webhookの選択

投稿対象となるチャンネルを選択します。

f:id:iestudy:20190630231637p:plain

対象となるチャンネルをプルダウンより選択する

対象のチャンネルを選択すると投稿のためのURLが表示されます。後続の作業で、このURLを指定するのでコピーします。

f:id:iestudy:20190630232150p:plain

投稿用のURLをコピーする

5-2.Slackへの投稿用スクリプトファイルの準備

以下のサイトでは、Slackへ投稿するためのシェルスクリプトを公開しています。

 

参考にさせていただいたサイト

シェルスクリプトからslackに投稿 · GitHub

 

上記サイトのスクリプトに、5-1.で取得したURLを埋め込みます。スクリプトに関しては、入力された内容をSlackへ投稿するものとなっています。そのため、例えば、

 

Cron登録コマンドのイメージ

echo test | 対象のシェルスクリプトsh

 

のように実行すると、”test”の文字列がSlackに投稿されます。

今回は、Wowhoneypotのログをcatコマンドにより表示し、その内容を上記スクリプトに標準入力で渡すことでSlackに投稿するようにしました。また、上記についてはCronにより定期実行を行いました。上記によりSlackには以下のように表示されます。

 

f:id:iestudy:20190630233521p:plain

Slackへの自動投稿結果のイメージ

 

6.suricataによるポートスキャンの監視

実行したコマンド

1.インストール
sudo apt-get upgrade
sudo apt-get install software-properties-common
sudo add-apt-repository ppa:oisf/suricata-stable
sudo apt-get update
sudo apt-get install suricata

2.設定ファイル編集

2-1.suricata.yamlの編集

sudo cp -p /etc/suricata/suricata.yaml /etc/suricata/suricata.yaml.org
sudo vi /etc/suricata/suricata.yaml

変更箇所
1.HOME_NET: "[ハニーポットのアドレス]"

2.参照するルールファイルのパスを変更

変更前
/var/lib/suricata/rules/suricata.rules

変更後
/etc/suricata/rules/emerging-scan.rules

 

ファイル内の変更イメージ
default-rule-path: /etc/suricata/rules
rule-files:
- emerging-scan.rules

 

2-2.ルールセットの編集
sudo vi /etc/suricata/rules/emerging-scan.rules
今回は全てのルールを有効化しました。

3.suricataの操作 

3-1.suricataの起動
sudo suricata -c /etc/suricata/suricata.yaml -i enp3

3-2.スキャンログの確認
cat /var/log/failsuricata/fast.log

3-3.スキャンログの統計をツイート 

以下のシェルスクリプトを使い、成形したログファイルをDropbox同期ディレクトリに移動し、Zapierを介してツイートします。

 

suricata.sh

#!/bin/sh
mv /var/log/suricata/fast.log /home/ubuntu/Dropbox/suricata/$(date +%Y%m%d)_scan.log
systemctl restart suricata
suricata -c /etc/suricata/suricata.yaml -i ens3 &
cat /home/ubuntu/Dropbox/suricata/$(date +%Y%m%d)_scan.log | grep -o '\{...} [0-9]*\.[0-9]*\.[0-9]*\.[0-9]*:[0-9]* -> 自身のIP:[0-9]*' | sed -e 's/自身のIP/My IP/' | sed -e 's/:[0-9]*//' | sort | uniq -c | sort -nr | head -n 5 > /home/ubuntu/Dropbox/Twitter_scan/$(date +%Y%m%d)_scan_Top5.log

※上記スクリプトは、rootのcronで実行しています。