自宅ネットワーク内にハニーポット(T-Pot)をVMで構築する

「セキュリティ」という単語を見続けていたらハニーポットを構築したくなった。

T-Pot

手軽に構築できるハニーポット環境としてはT-Potが有名だろうということで、
これを用いてハニーポットを構築していく。
github.com
詳しくは他のブログ等を参照していただきたいのだが、
T-PotはISO形式で提供されているハニーポット環境で、
このOSをインストールするとCowrieやDionaeaを始めとする各種ハニーポットソフトウェアがDockerで良い感じに立ち上がるという大変便利なもの。

2年ほど前に一度構築した時はバージョン16.10だったが、現在は17.10が提供されていた。

構成

今回は諸々の事情もあって、VM上にでT-Pot環境を構築し、自宅ネットワークのDMZに配置することとする。
構成図は以下のような感じ。
f:id:itto-ki:20180702222903p:plain
VMを動かすマシンには2つのNICが挿してあるため、片方のNICDMZに接続しハニーポットを動かすVMにブリッジ接続する。

ハニーポットVMの作成

今回のホストマシンにはデスクトップ環境が入ってないため、ホストマシンに対してSSH接続した後、全てコマンドで操作していく。
前提としてハニーポットを構築し動作を確認するまではホストマシンのNICは共にLAN内に接続したまま作業をする。
今回は仮想マシンQEMU(KVM)上に作成し、macvtapでゲストOSのNICをホストOSのNICにブリッジ接続する。
まずは以下のコマンドでqcow2形式のディスクイメージを作成。

qemu-img create -f qcow2 /var/lib/libvirt/images/tpot.qcow2 128G

T-Pot 17.10 - Multi-Honeypot Platform rEvolutionのSystem Rquirementsでは64GB(128GB推奨)となっていたので、128GBとする。

続いてこのディスクイメージに対してOSをインストールしていく。
以下のコマンドを実行するとVMのインストールが始まる。

virt-install --connect qemu:///system \
--name tpot \
--virt-type kvm \
--ram 6000 \
--vcpus 2 \
--arch x86_64 \
--os-type linux \
--disk /var/lib/libvirt/images/tpot.qcow2 \
--network=type=direct,source=enp2s0f0,model=virtio \
--graphic vnc,listen=0.0.0.0 \
--cdrom=tpot.iso

使用するホストマシンのNICとしてenp2s0f0を選んだ。
上のコマンドを実行した後、VMホストマシンのポート5901にVNCクライアントより接続を行うと、ハニーポットであるゲストOSがVNC経由で操作できる。
OSインストールに関して特筆するべきことはないので適宜環境に合わせてセッティングしていく。

セッティングが終わりOSが再起動するとルータのDHCPによってIPアドレスがに割り当てられる。
今後IPアドレスが動的に変化すると面倒なので、ゲストOSの/etc/network/interfacesとルータの設定を編集して固定IPにする。
固定IPを割り当てたら、ルータの設定を変更して割り当てた固定IPをDMZに配置。

T-Potではポート64297でT-Pot内のハニーポットの様子を可視化するダッシュボードを提供している。
早速ブラウザからダッシュボードを見てみると、立ち上げてから数分も立っていないのにも関わらず攻撃がドカドカ来ている。

SSHの設定

ダッシュボードはグラフィカルで見ていて面白いのだが、攻撃の詳細は分からない。
詳細を知るためには生のログを見る必要がある。
T-Potは64295番ポートが管理用のSSHポートとして開かれている。
まずはscpコマンドを用いて公開鍵をT-Potに送る。

scp -P 64295 $HOME/.ssh/id_rsa.pub tsec@<T-PotのIPアドレス>:/home/tsec

公開鍵を送ったら一度パスワード認証でT-Potへ入り、公開鍵を.ssh/authorized_keysに追記
また/etc/ssh/sshd_configを編集してパスワード認証を禁止する。
それらが終わったら以下のコマンドでSSHデーモンの再起動

systemctl restart sshd

これで公開鍵を用いてT-Potへ入れる様になった。
ユーザ名やらポート番号が普段と違うので.ssh/configにT-Pot用の設定を書いておくと便利になる。

色々と探してみるとどうやらハニーポットのログは/data以下に置かれているらしい。
ログの詳細を見ていこうかと思ったけど疲れたのでまた後日。

まとめ

QEMU(KVM)上のVMにT-Potをインストールし、自宅ネットワークのDMZに配置した。
・けっこうな勢いで攻撃が来ている。