ハニーポットdionaeaのインストール by EC2

# はじめに
普段は守られているので実際の攻撃をお目にかかることは無いが
それを安全に見ることが出来るハニーポットをぜひとも体感してみたく
インストールに挑戦。

# dionaeaの採用理由
下記の候補もあったが、下記の理由で断念。
　・T-POT
　　→至れり尽くせりらしいけど必要スペック大きすぎ！（EC2でインストールすると月数千円はかかる見通し）
　・WOWHONEYPOT
　　→こちらは軽量で簡単らしいけれども、今の自分の理解度で安全にインストールできそうな情報を見つけることができなかった…

…であきらめかけていたところにdionaeaが現れた。
　・EC2の無料課金枠で稼働できる程度の軽量なアプリケーション
　・インストール手順が簡単
　・参考サイトとの出会い

以上の理由で採用。

# 参考サイト
　先に参考サイトを紹介。自分色はほとんどなく、サイトの情報をほぼそのままでうまくいった。
　
　[ハニーポットをdionaeaで構築してみた。](https://qiita.com/k-onishi/items/600b14f5bc25a2418945)
　→一番影響を受けたサイト。インストール先はEC2ではないけれども内容が分かりやすくEC2での適用のイメージを付けることが出来た

　[HoneypotのDionaeaでマルウェアを収集しちゃって、APIでスキャンして、結果をビジュアライズしちゃうぞ](https://qiita.com/micci184/items/fce32a6d62493d289710)
　→セキュリティの指針について大いに参考にさせてもらった

　[dionaea公式サイト](https://dionaea.readthedocs.io/en/latest/installation.html#ubuntu-14-04)
　→上のサイトでやりたいことができたので参考にはしなかったけど、ちゃんと見るべきとは思っている。

# いざインストール
とりあえず、EC2インスタンスを作成する。
ポイントは２つ。
①Ubuntu Server 14.04を選択すること
![コメント 2019-07-27 221843.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/416263/3ba478e0-32d6-59e9-9ed2-3183a04c8b9d.gif)

②セキュリティグループはDionaeaが利用するサービスだけ開けておくこと
↓↓は設定した実際の画面。
![コメント 2019-07-28 003200.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/416263/20528763-47d6-4a15-4625-e689ccb4ed07.gif)


見切れてるので表にするとこんな感じ。
　参考：[HoneypotのDionaeaでマルウェアを収集しちゃって、APIでスキャンして、結果をビジュアライズしちゃうぞ](https://qiita.com/micci184/items/fce32a6d62493d289710)

|Port     |Service      |Source    |
|---------|-------------|----------|
|21/TCP   |ftp          |0.0.0.0/0 |
|42/TCP   |nameserver   |0.0.0.0/0 |
|80/TCP   |http         |0.0.0.0/0 |
|135/TCP  |msrpc        |0.0.0.0/0 |
|443/TCP  |https        |0.0.0.0/0 |
|445/TCP  |microsoft-ds |0.0.0.0/0 |
|1433/TCP |mssql        |0.0.0.0/0 |
|3306/TCP |mysql        |0.0.0.0/0 |
|5060/TCP |sip          |0.0.0.0/0 |
|5061/TCP |sip-tls      |0.0.0.0/0 |

後は全てデフォルトのままでインスタンス作成。

で、sshでログイン成功。
ここからが本来のインストール作業かなと。
で、実行に使ったコマンドはコチラ。

```:実行コマンド
# パッケージアップデート
$ sudo apt-get update
$ sudo apt-get dist-upgrade

# PPAを管理するツールをインストール
$ sudo apt-get install software-properties-common

# Nightly Packageを追加し、キャッシュをアップデート
$ sudo add-apt-repository ppa:honeynet/nightly
$ sudo apt-get update

# Dionaeaをインストール
$ sudo apt-get install dionaea
```
これでインストール完了。

# ログローテートの設定
恐ろしいほど大量のログが吐き出されるため、ログローテートの設定を入れることにした。
もちろん、ログレベルを変更すれば出力ログも搾れるとは思うけど、今はとりあえずどんなものでも取り込んで
絞るのはそのあとにしたかったのでこういう対処をすることにした。
※実際はそんなことする必要ないかもしれないけどまだそこまで勉強したわけではないので予防策としてやる
参考：[ログローテーションの設定方法](https://qiita.com/mk34/items/d55e08a5c657e2e022ee)

```
vi /etc/logrotate.d/dionaea
```
で、設定ファイルを作り、下記の内容で設定。
毎日ログファイルを作り直す感じにした。これでも大丈夫かどうか不安なところはある。

```:/etc/logrotate.d/dionaea
/opt/dionaea/var/dionaea/dionaea.log {
  daily
  rotate 90
  missingok
  notifempty
  copytruncate
  dateext
  dateformat %Y-%m-%d
}
```

## 実行確認（お試し実行）
下記のコマンドで、日を待たずして起動させることが出来る。

```
$ sudo /usr/sbin/logrotate -f /etc/logrotate.d/dionaea
```

## 設定反映
これでOK。

```
sudo /usr/sbin/logrotate /etc/logrotate.conf
```

# 稼働後にできること

## ハニーポットの中身を覗く（＝ログを見る）

外部からのアクセスログはここで確認できる
```
$ less /opt/dionaea/var/dionaea/dionaea.log
```

一部抜粋。こんな感じのログが出てくる。
今見てる範囲でいうと、30分で100MBは出てる。
本当にログをどうするか考えないとパンクしちゃう。。。

```
[27072019 15:16:04] processor processor.c:98-debug: processor_data_deletion pd 0x2453e00
[27072019 15:16:07] connection connection_tcp.c:81-debug: connection_tcp_accept_cb con 0x1d35b20
[27072019 15:16:07] connection connection.c:2175-message: connection 0x22b5a50 none/tcp type: none->accept
[27072019 15:16:07] connection connection_tcp.c:125-debug: accept() 110 local:'10.0.1.214:445' remote:'1.52.173.149:9299'
[27072019 15:16:07] connection connection.c:763-debug: connection_set_nonblocking
[27072019 15:16:07] python module.c:831-debug: traceable_ctx_new_cb con 0x22b5a50
[27072019 15:16:07] connection connection.c:2144-debug: connection_protocol_ctx_get con 0x22b5a50 data 0x7f7a4df5fa68
[27072019 15:16:07] connection connection.c:2138-debug: connection_protocol_ctx_set con 0x22b5a50 data 0x7f7a4df79048
[27072019 15:16:07] python module.c:846-debug: traceable_origin_cb origin 0x1d35b20 con 0x22b5a50
[27072019 15:16:07] connection connection.c:2144-debug: connection_protocol_ctx_get con 0x22b5a50 data 0x7f7a4df79048
[27072019 15:16:07] connection connection.c:2144-debug: connection_protocol_ctx_get con 0x1d35b20 data 0x7f7a4df5fa68
[27072019 15:16:07] connection connection.c:1649-debug: connection_established 0x22b5a50
[27072019 15:16:07] connection connection.c:2208-message: connection 0x22b5a50 accept/tcp/none [10.0.1.214:445->1.52.173.149:9299] state: none->established
[27072019 15:16:07] python module.c:853-debug: traceable_established_cb con 0x22b5a50
[27072019 15:16:07] connection connection.c:2144-debug: connection_protocol_ctx_get con 0x22b5a50 data 0x7f7a4df79048
[27072019 15:16:07] connection connection.c:1310-debug: connection_idle_timeout_set 0x22b5a50 120.000000
[27072019 15:16:07] processor processor.c:112-debug: processors_init con 0x22b5a50

[27072019 15:16:07] processor processor.c:73-debug: processor_data_creation con 0x22b5a50 pd 0x1a75900 node 0x1d34430
[27072019 15:16:07] processor processor.c:82-debug: creating filter
[27072019 15:16:07] processor processor.c:73-debug: processor_data_creation con 0x22b5a50 pd 0x21fc760 node 0x1d34460
[27072019 15:16:07] processor processor.c:82-debug: creating streamdumper
```

## リモートから来た人が何者なのかを確認する
curl使ったらすぐわかる。

```
$ curl ipinfo.io/1.52.173.149
{
  "ip": "1.52.173.149",
  "city": "Hanoi",
  "region": "Hanoi",
  "country": "VN",
  "loc": "21.0313,105.8520",
  "org": "AS18403 The Corporation for Financing & Promoting Technology"
}
```

## 捕獲したマルウェア一覧を確認する
dionaeaはマルウェアも捕まえてくれる。
以下のディレクトリにマルウェアは保管されているので眺めることができる。
※バイナリなんで見てもどうしようもないけども…

```
$ ls -l /opt/dionaea/var/dionaea/binaries/
total 41184
-rw------- 1 dionaea dionaea 5267459 Jul 27 15:17 0ab2aeda90221832167e5127332dd702
-rw------- 1 dionaea dionaea 5267459 Jul 27 15:48 36c762d2837bc0d6c44cf9491e472759
-rw------- 1 dionaea dionaea 5267459 Jul 27 16:19 414a3594e4a822cfb97a4326e185f620
-rw------- 1 dionaea dionaea 5267459 Jul 27 15:57 7e3ffa2ea1f01fad04f9645840d45959
-rw------- 1 dionaea dionaea 5267459 Jul 27 15:06 96a7f7da2b982c7971b4534990588b67
-rw------- 1 dionaea dionaea 5267459 Jul 27 16:10 9f2b3f4383a5026c53bbe83d22e296b4
-rw------- 1 dionaea dionaea 5267459 Jul 27 14:49 ae12bb54af31227017feffd9598a6f5e
-rw------- 1 dionaea dionaea 5267459 Jul 27 15:39 ce494e90f5ba942a3f1c0fe557e598bf
```


# いったんここでおしまい
今回はEC2でのインストールに着目したのでここまで。

これで自分もついにハニーポッター！…というほどの手ごたえは得られなかったが
ログを眺めるのは見ているだけでも楽しいのでやってよかった！と思ってる。

やってみて感じたことはこんな感じ。
　〇思ったよりも短時間でログが取れるのはうれしい誤算
　〇軽量だとは聞いていたがCPUは5%くらいしか使われることはなく結構お手軽だった
　×ログが異常にたまるのでほったらかしというわけにはいかなさそう
　△これから稼働を続けることで発生する問題が出ると思うので引き続き注意する必要がある。

…とはいうものの、すでにログ問題も出ていることもあり
今のまま取り込み続けるのは正直キツイのでもう少し様子を見てほどほどで切り上げようと思う。
で、やりたいことをちゃんとフォーカスしてから安全にハニーポットでのログ収集を続けようかなと。

# オマケ
ここはインストールの話だけだけど色々と調べた結果はまた記事に起こそうかなと。
・ハニーポットってどんな種類があるのか
・dioanaeaの詳細な仕様（dionaeaはubuntu 14.04でのインストール推奨だからわざわざ選んだ、とか）
・ハニーポットでできること
・WOWHONEYPOT、T-POTについて
・ハニーポットの実現方法について（ローカルでやるときの注意点とクラウドでやるときの注意点、など）
などなど。。。