Python
Security
Elasticsearch
docker
T-Pot

ハニーポットをT-Pot 17.10で構築してみた。

T-Potとは

スクリーンショット 2018-01-04 5.52.33.png

公式ドキュメントには下記のように記載されています。

T-Pot is based on the network installer of Ubuntu Server 16.04.x LTS. The honeypot daemons as well as other support components being used have been containerized using docker. This allows us to run multiple honeypot daemons on the same network interface while maintaining a small footprint and constrain each honeypot within its own environment.

以下、日本語訳

T-PotはUbuntu 16.04 LTSのネットワークインストーラをベースにしています。複数のハニーポットデーモンは他の使用されているサポートされたコンポーネント同様dockerを用いてコンテナ化されています。それはメモリの使用を少量に保ち各ハニーポットをそれぞれの環境に束縛しながらも同じネットワークインターフェイス上で複数のハニーポットを動作させることを可能にします。

要は同一のホストにdockerを用いて複数のコンテナを作成し、その上で様々なハニーポットを動作させるということの様です。

使用技術

architecture.png

T-Potがサポートする(dockerコンテナ化された)ハニーポットが以下になります。

低対話型ICS(Industrial Control System:産業用制御システム)ハニーポット。

SSH及びTelnetを動作させるハニーポット。総当たり攻撃やSSHでの挙動に関する攻撃者の情報収集を目的とする。

多数のサービスを動作可能なフルスタックなハニーポット。攻撃者に関する知見の収集及びマルウェアの捕獲を目的とする。

Elasticsearchを動作させるハニーポット。(現在はT-Potのリポジトリにマージされている)

次世代輸送インフラをターゲットとする攻撃者の知見を収集するためのハニーポット

Python製のWebハニーポット。現在は後継のSNARE/TANNERが存在し、glastopf自体はメンテナンス中。

TCP及びUDPに対する通信の検知を行う低対話型ハニーポット

SMTPのハニーポット。作者はPythonを学ぶついでに作成したようだ。

Python製のMicrosoft RDP(Remote Desktop Protocol)プロトコルを実装したハニーポット。

低対話型のVNC(Virtual Network Computing)ハニーポット。

その他(ハニーポット以外)の技術が以下になります。

Webサービスの効率的な運営・管理を実現するオープンソースソフトウェア製品群。

ユーザのインタラクティブな操作を可能とするWebフロントエンド。

リアルタイムパフォーマンスモニター。

docketの管理を行うWeb UI。

IPアドレスからOSINT(open source intelligence)を用いて関連情報の収集を自動で行なってくれるツール。

オープンソースのIPS(侵入防御システム)。

HTTP及びHTTPS上で操作するターミナル。

インストール

環境

T-Potには以下の環境が求められます。(全ての機能をインストールする場合)

  • メモリ8GB以上
  • 128GB以上のSSD
  • DHCP
  • プロキシを経由しないインターネット接続

自身はさくらのクラウドでリソースに余裕を持たせてVMを構築しました。

構築方法

方法は下記の2種類から選択できます。

  • githubからロポジトリをクローンしビルドする方法
  • ISOイメージをダウンロードし、それを用いて起動する方法

今回はISOイメージをダウンロードする方法を選択しました。

注意点

物理ホストと仮想VMとでインストール時に異なる注意点があるようですが、今回は割愛します。
(自身の場合は仮想VMを用いて構築しましたが、特に設定の変更も不要で問題ありませんでした)

インストール時

ユーザ名の入力、パスワードの入力を何度か求められますが、それ以外は特に難しい操作はありません。
後は自動で再起動しインストールは完了です。

ログイン画面

以下がインストール後のログインプロンプトになります。
スクリーンショット 2018-01-04 5.30.55.png

アクセス

アクセスも簡単でhttps://[IP Address]:64297にブラウザを用いてアクセスするだけです。
下記の様な画面が表示されるので使用したいアプリケーションを選択します。
スクリーンショット 2018-01-04 6.44.42.png

Kibana

グラフ等は自身で作成する必要があるのかと思いきやそうではなく、デフォルトの状態で下記の様なUIが用意されています。
dashboard.png

WebTTY

krishnasrinivasさんが作成した、ブラウザで動作する仮想コンソールです。使い勝手もよく、ブラウザ上で動作していることを全く感じさせません。
webssh.png

Netdata

自分はT-Potをインストールするまで存在を全く知りませんでしたが、UIがとてもかっこいいです。
netdata.png


他にも様々なツールが用意されており、至れり尽くせりといった印象です。

終わりに

今回はT-Pot 17.10のインストールを行いましたが、公式ドキュメントには下記の様に記載されており継続的にアップデートが行われる様なのでまだまだ目が離せません。

Stay tuned …
We will be releasing a new version of T-Pot about every 6-12 months.

余談ではありますが、このT-Pot 17.10を開発する間に242本ものClub Mateを飲んだそうです。

Coffee just does not cut it anymore which is why we needed a different caffeine source and consumed 242 bottles of Club Mate during the development of T-Pot 17.10 😇

参考文献

http://dtag-dev-sec.github.io/mediator/feature/2017/11/07/t-pot-17.10.html#hw