ハニーポットT-Potを構築してみた[Multi-Honeypot Platform]

  • このエントリーをはてなブックマークに追加
  • Pocket
  • LINEで送る

前から気になっていたハニーポットを自宅サーバに構築してみます。

ハニーポットはクラッカーの侵入手法やマルウェアの振る舞いを分析するために、わざと侵入されやすいように設定されたサーバです。
外からは単なる脆弱なサーバに見えますが、攻撃者の行動を記録したり、マルウェアを保存することができます。
自身でハニーポットを持つことで、最新のサイバー攻撃動向やマルウェアを知ることができます。

この記事では、実際にハニーポットを構築し、攻撃を収集するところまでをご紹介します。

※ハニーポットは実際に攻撃を受けますが、「本当に」侵入されてはいけません。
サーバを乗っ取られたり、他の攻撃の踏み台にされたりしないように気をつけてください。
特に自宅にハニーポットを設置する場合はそのリスクをよく考えておこなってください。

T-Potとは

今回はT-Potをインストールします。

T-PotはUbuntu Server 16.04 LTSをベースにした複数のハニーポット、IDS/IPSとDockerで構成されたマルチハニーポットプラットフォームです。
2017年5月8日現在の最新バージョンは16.10で、6ヶ月ごとに新しいバージョンが提供されます。

以下のハニーポットが含まれます。

  • conpot
  • cowrie(kippoから変更)
  • dionaea
  • elasticpot
  • emobility
  • glastopf
  • honeytrap

他に、ログの収集解析可視化ツールELKスタック、webSSHクライアントやT-Potのweb管理ツールなどがインストールされます。

システム要件

T-Potのインストールには、

  • 4GB RAM
  • 64GB Disk
  • DHCPネットワーク
  • ネットワーク接続

が最小要件となっています。

動作環境として、Intelのベアボーンintel NUCが動作保障されています。

コンセプト

T-PotではそれぞれのハニーポットデーモンはDockerによりコンテナ仮想化されています。
そのため、一つのネットワークインターフェース上で複数のハニーポットデーモンが実行できます。
ドッカーコンテナは毎日一度再起動するので、コンテナがマルウェアに感染しても次の日には新しいコンテナにクリーンアップされます。

それぞれのハニーポットのイベントはELKスタックによって可視化されます。
ELKはElasticsearch(解析) + Logstash(収集) + Kibana(可視化)の3つのシステムをまとめたものです。
Kibanaは過去90日間のデータを保持します。

収集した情報はプロジェクトのコミュニティへ自動送信され、統計や分析に活用されます。
http://sicherheitstacho.eu/
/data/ews/conf/ews.cfg 設定ファイルでデータ送信を無効にしたり、設定を変更できます。

インストール手順

  1. ISOディスクイメージ作成

    イメージをダウンロードするか、自分で作成するかを決めます。

    イメージをダウンロード

    ダウンロードはここからできます。(http://community-honeypot.de/tpot.iso)

    イメージを自分で作成

    1.gitリポジトリからクローンを取得します。

    2.ISOイメージを構築するスクリプトを実行します。

    ビルドが成功すると、ディレクトリ内にtpot.isoが作成されます。

    私はISOイメージを自分で作成する方法ではうまくいかなかった(インストールが途中で止まってしまう)ので、イメージをダウンロードしてインストールしました。

  2. インストール

    ISOイメージを作成したら、インストールをします。
    インストールは通常のLiniuxと同様で、インストーラの手順通りに進めていきます。
    タイムゾーン、キーボードと初期パスワードを入力し、途中に2回の再起動が入ります。
    更新プログラムとドッカーコンポーネントのダウンロードのため、インストール時にはネットワーク接続が必要です。

  3. 最初のログイン

    インストールが完了すると再起動の後、T-Potのログイン画面が表示されます。

    最初のログイン情報

    ユーザー名 tsec
    パスワード インストール時に設定したパスワード

    ハニーポットのドッカーコンテナは自動で起動するので、T-Potの起動と同時に攻撃の収集が始まります。

  4. 環境設定
    T-Potは複数のハニーポットで攻撃を収集します。
    そのため、それぞれのハニーポットが使用するポートを開けます。

    Honeypot Transport Forwarded ports
    conpot TCP 1025, 50100
    cowrie TCP 22, 23
    dionaea TCP 21, 42, 135, 443, 445, 1433, 1723, 1883, 1900, 3306, 5060, 5061, 8081, 11211
    dionaea UDP 69, 5060
    elasticpot TCP 9200
    emobility TCP 8080
    glastopf TCP 80
    honeytrap TCP 25, 110, 139, 3389, 4444, 4899, 5900, 21000

    honeytrapはポートを動的にバインドするので、全ポート解放が必要になります。

  5. webUI(kibanaダッシュボード)にアクセス
    webブラウザでhttps://<your.ip>:64297にアクセスします。
    kibanaダッシュボードは自由にカスタマイズができます。

    旧バージョンではsshのポートフォワーディングが必要でしたが、HTTPSリバースプロキシNGINXの実装によってsshトンネルは不要になりました。
  6. sshでアクセス
    デフォルトではsshはローカルネットワークからのみtcp/64296ポートへアクセスが許可されています。
    外部からssh経由でリモートログインするためにはT-Potのインストールしたホストにssh pubkeyを/home/tsec/.ssh/authorized_keysとしてコピーします。
    パーミッションと所有権をそれぞれ設定します。
    chmod 600 authorized_keys
    chown tsec:tsec authorized_keys

以上がインストールの手順です。
複雑なハニーポットが簡単にインストールできました。

最後に

T-Potを起動してログを観察していると、ものすごい数の攻撃が観察できます。
2016年から流行っているIoTマルウェアmiraiの攻撃は公開されているソースコードと一致するようなログも観察できて面白いです。

参考

公式ドキュメント

T-PotによるDockerized Multi Honeypotなサイバー攻撃観測環境を構築する|PAYFORWARD

  • このエントリーをはてなブックマークに追加
  • Pocket
  • LINEで送る

SNSでもご購読できます。

コメント

  1. 桃太 より:

    こんにちは、
    T-Potを運用しようとしている私には
    非常に役に立つ記事でした。

    どのように踏み台対策をされていますか?
    ぶしつけな質問で申し訳ありませんが、
    回答していただけると幸いです。

    1. matu_mio より:

      記事をご覧いただきありがとうございます。
      ハニーポットの踏み台対策について、下記の対策を実施しております。

      ・ハニーポットからインターネット方向のパケットフィルタ
      ・ハニーポットをDMZ上に設置
      ・ログの定期的な確認
      ・不要なサービス、アカウントの停止
      ・root無効化
      ・万一の時にハニーポットを物理的に切断できる体制

      私自身セキュリティ初学者ですので、基本的な対策になりますが、
      ご参考になれば幸いです。

コメントを残す

*