現代のネットワーク防御における盲点
サイドプロジェクトのために、初めて外部公開用のWebサーバーを立ち上げた時のことを覚えています。45分もしないうちに、ログはすでに溢れかえっていました。世界中の何百ものユニークなIPアドレスが、容赦ないブルートフォース攻撃でSSHポートを叩き続けていたのです。ファイアウォールはそれらをブロックして仕事を果たしましたが、私は「幽霊」と戦っているような気分でした。ターゲットにされていることは分かっていても、攻撃者がどのように動き、何を求めているのかは全く分からなかったからです。
多くのITプロフェッショナルは、このような「デジタルの盲目」状態で活動しています。ファイアウォール、WAF、IDS/IPSを構築し、「ブロック済み」というステータスを見て安心感を抱きます。しかし、これは純粋に受動的な対応に過ぎません。既知のシグネチャに対しては防御していますが、境界線に対してテストされているツール、カスタムペイロード、あるいはゼロデイ脆弱性については完全に無知なままです。もし、攻撃者が「侵入」した後に何をするのかが見えていなければ、常に後手に回ることになります。
情報の非対称性という問題
サイバーセキュリティは根本的に不均衡です。攻撃者は見落とされた脆弱性を1つ見つけるだけで済みますが、防御側はあらゆる侵入口を保護しなければなりません。さらに悪いことに、攻撃者はバナーグラビングやフィンガープリントを使用して、正確なソフトウェアバージョンを特定します。一方で、防御側は攻撃者の具体的な手法について、おそらく何も知りません。
受動的なロギングでは、主に3つの理由からこのギャップを埋めることは困難です。
- サニタイズされたログ: NginxやOpenSSHのような標準的なサービスは接続試行を記録しますが、侵入後にハッカーが実行する一連のコマンドまでは表示しません。
- インタラクションの欠如: ファイアウォールが接続を遮断すると、攻撃者は単に次のターゲットに移るだけです。彼らの最終的な目的を知ることはできません。
- シグナルとノイズ: 5万件の一般的なログの中から1つの高度なエクスプロイトを見つけ出すのは、人的資源の無駄です。
これを解決するには、攻守を逆転させる必要があります。攻撃者を「招待」し、成功したと錯覚させ、すべてのキーストロークを記録する、制御された環境が必要なのです。
欺瞞戦略:餌の選び方
すべてのハニーポットが同じ目的を果たすわけではありません。T-Potを選択する前に、インテリジェンスを収集するための3つの異なる戦略を検討しました。
1. 低インタラクション・ハニーポット
Cowrie(SSH用)やDionaea(マルウェア用)などのツールは軽量です。これらはOS全体を提供するのではなく、サービスをエミュレートします。効率的ではありますが、特定の複雑なコマンドが実行できないため、熟練した攻撃者には見破られやすいという欠点があります。
2. 高インタラクション・ハニーポット
これには、脆弱なWindows ServerのVMなど、本物のシステムが含まれます。最も質の高いデータが得られますが、大きなリスクも伴います。攻撃者が VM から脱出した場合、ホストを使用して第三者への攻撃を開始する可能性があり、法的なトラブルに発展する恐れがあります。
3. マルチプロトコル・プラットフォーム(T-Potのアプローチ)
T-Potは中間的な解決策を提供します。Dockerを使用して、Cowrie、Honeytrap、Mailoneyなど、20種類近いハニーポットを1台のマシンで同時に実行します。低インタラクションと高インタラクションのギャップを埋め、得られたすべてのデータは中央のELKスタック(Elasticsearch、Logstash、Kibana)に送られ、即座に可視化されます。
最善のアプローチ:LinuxへのT-Potのデプロイ
T-Potは、標準的なLinux VPSを脅威インテリジェンスの拠点に変える最短の方法です。コンテナ化、ネットワーキング、データの可視化を自動化します。ただし、ハードウェア要件を過小評価しないでください。リソースを大量に消費するELKスタックと並行して20以上のコンテナを実行するには、それなりのスペックが必要です。
前提条件
- OS: Debian 11 または 12(強く推奨)。
- RAM: 最低でも8GB、推奨は16GBです。8GB未満では、カーネルパニックやElasticsearchのクラッシュが頻発します。
- ディスク: 128GBのSSD。トラフィックの多い環境では、ログとインデックスが1日に数GBずつ増加します。
- ネットワーク: 外部ファイアウォールでポートをブロックしていないパブリックIP。攻撃者が罠にかかりやすいように、クリアな経路を確保する必要があります。
ステップ1:システム準備
クリーンなDebianのインストールから始めます。T-Potは利用可能なほぼすべてのポートを占有するため、初期設定には注意が必要です。まずは標準的なアップデートを実行します:
sudo apt update && sudo apt upgrade -y
sudo apt install git -y
ステップ2:T-Potのクローンとインストール
インストールプロセスはほぼ完全に自動化されています。公式リポジトリをクローンし、インストーラーディレクトリに移動します:
git clone https://github.com/telekom-security/tpotce
cd tpotce/iso/installer/
インストーラースクリプトを実行します。インストールタイプの選択を求められるので、”Standard”を選択してください。これには、ハニーポットのフルセットとELKダッシュボードが含まれています。
sudo ./install.sh --type=standard
ステップ3:設定とセキュリティ
インストーラーからWebインターフェースのユーザー名とパスワードを求められます。ここでは一般的なパスワードを再利用しないでください。ハニーポットは常に攻撃にさらされます。管理UIが脆弱であれば、ハッカーに無料のサーバーを提供したも同然です。
32文字のランダムな文字列を使用することをお勧めします。ローカルで生成するか、toolcraft.appのようなツールを使用してください。記号や大文字小文字を混ぜるようにしましょう。
SSHに関する警告: T-Potは、実際の管理用SSHサービスをポート 64295 に移動します。標準のポート22は、攻撃者を罠にかけるためにCowrieに引き継がれます。切断された場合は、ssh -p 64295 user@your-ip を使用して再接続してください。
ステップ4:ダッシュボードへのアクセス
再起動後、Dockerコンテナのプルと初期化が終わるまで約15分待ちます。次のアドレスからダッシュボードにアクセスします:
https://[your-ip]:64297
Kibanaインターフェースこそが、このシステムの真骨頂です。リアルタイムのヒートマップや詳細な分析ツールが用意されています。また、ログで見つけた難読化されたペイロードをデコードするためのCyberchefインスタンスも組み込まれています。
「獲物」を分析する
システムを24時間稼働させたままにします。Kibanaに戻ると、自動化された悪意の多さに驚くことでしょう。通常、1つのT-Potインスタンスで1日に3万〜5万件のイベントが記録されます。
- 大規模スキャナー: Shodan、Censys、および「脆弱性」をインデックス化するさまざまなボットネットからの絶え間ないピングが表示されます。
- ブルートフォース: エミュレートされたSSHやRDPポートに対して、攻撃者が
admin/adminやroot/123456といった一般的な認証情報を試行する様子をリアルタイムで観察できます。 - エクスプロイト・ペイロード: Dionaeaなどのツールは、バイナリ形式のマルウェアをキャプチャします。T-PotはこれらのファイルのMD5/SHA256ハッシュを自動的に計算します。これらのハッシュをVirusTotalに投入すれば、彼らがどのようなランサムウェアやボットネットエージェントをインストールしようとしていたのかを正確に特定できます。
このデータは対策に直結します。ポート6379(Redis)への試行や、特定のLog4j文字列の急増に気づけば、攻撃の波が届く前に本番サーバーのどこにパッチを当てるべきかが正確に分かります。
ホストOSの要塞化
ハニーポット側は「汚れて」いても構いませんが、ホストはロックダウンされた状態を維持する必要があります。以下の2つのメンテナンス作業を推奨します:
- 自動アップデート: T-Potには
/opt/tpot/bin/にアップデートスクリプトが含まれています。これをcronで実行するように設定し、コンテナを最新の状態に保ちます。 - IPホワイトリスト: クラウドプロバイダーのセキュリティグループを使用して、ポート64295(SSH)と64297(Web UI)を特定のオフィスや自宅のIPのみに制限します。管理ポートを全世界に公開する理由はありません。
ハニーポットをデプロイすることで、推測から確信へとマインドセットが変わります。セキュリティは「面倒な作業」から「積極的な防御戦略」へと進化します。単にトラフィックをブロックするのではなく、ネットワーク全体を真に強固なものにするために必要なインテリジェンスを収集できるようになるのです。

