その3では、その他追加した機能について、順次記載していきます。
4.サーバの監視
Mackerelというサービスを使ってハニーポットを監視します。無料アカウントでもホスト5台までなら死活監視はできます。
4-1.Mackerelエージェントのインストール
Mackerelの導入は簡単です。アカウントの登録後、「ホスト」より新規登録を行うことで、監視対象マシンのOSごとのエージェントインストール方法が案内されます。
上記コマンドを実行すると、エージェントがインストールされ成功すれば以下のようなメッセージが表示されます。
表示されるメッセージ
*************************************
Done! Welcome to Mackerel!
*************************************
上記メッセージ表示後、MackerelのGUIに戻り、新規に表示されているサーバの設定を行うことで監視が可能です。
5.攻撃ログをSlackで確認する
ハニーポットのログ分析は労力が必要になる作業です。日々のタスクとしてログの分析(確認)を行うことが私にとっては難しい部分もあったため、Wowhoneypotのログを手軽に確認できるようにSlackへ投稿するようにしました。
5-1.Slack側の準備
Slack側では、ハニーポットがログの内容を投稿するチャンネルに対して「Incoming Webhook」のアプリ設定を行います。
アプリの検索画面では「Incoming Webhook」を検索し、選択します。
投稿対象となるチャンネルを選択します。
対象のチャンネルを選択すると投稿のためのURLが表示されます。後続の作業で、このURLを指定するのでコピーします。
5-2.Slackへの投稿用スクリプトファイルの準備
以下のサイトでは、Slackへ投稿するためのシェルスクリプトを公開しています。
参考にさせていただいたサイト
上記サイトのスクリプトに、5-1.で取得したURLを埋め込みます。スクリプトに関しては、入力された内容をSlackへ投稿するものとなっています。そのため、例えば、
Cron登録コマンドのイメージ
echo test | 対象のシェルスクリプトsh
のように実行すると、”test”の文字列がSlackに投稿されます。
今回は、Wowhoneypotのログをcatコマンドにより表示し、その内容を上記スクリプトに標準入力で渡すことでSlackに投稿するようにしました。また、上記についてはCronにより定期実行を行いました。上記により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で実行しています。