T-Pot は、オールインワンの、オプションで分散されたマルチアーチ (amd64、arm64) ハニーポット プラットフォームであり、20 以上のハニーポットと、エラスティック スタックを使用した無数の視覚化オプション、アニメーション化されたライブ攻撃マップ、および欺瞞エクスペリエンスをさらに向上させる多くのセキュリティ ツールをサポートしています。
システム要件を満たしています。 T-Pot のインストールには、少なくとも 8 ~ 16 GB の RAM、128 GB の空きディスク容量、および機能する (フィルタされていない送信) インターネット接続が必要です。
実行中のサポートされているディストリビューションをダウンロードするか、使用します。
可能な限り最小限のパッケージ/サービスを使用して ISO をインストールします ( ssh
必要)
curl
をインストールします: $ sudo [apt, dnf, zypper] install curl
$HOME
から非 root としてインストーラーを実行します。
env bash -c "$(curl -sL https://github.com/telekom-security/tpotce/raw/master/install.sh)"
指示に従い、メッセージを読み、ポートの競合の可能性を確認して再起動します。
T-Pot - オールインワンのマルチハニーポットプラットフォーム
TL;DR
免責事項
技術コンセプト
技術アーキテクチャ
サービス
ユーザーの種類
システム要件
VM 内で実行する
ハードウェア上で実行する
クラウドでのランニング
必要なポート
システムの配置
インストール
標準 / HIVE
分散型
ディストリビューションを選択してください
Raspberry Pi 4 (8GB) のサポート
T-Pot を入手してインストールする
macOS と Windows
インストールの種類
T-Pot をアンインストールする
ファーストスタート
計画と証明書
センサーの導入
スタンドアロンの初回起動
分散展開
コミュニティデータの提出
オプトイン HPFEEDS データ送信
リモートアクセスとツール
SSH
T-Pot ランディングページ
キバナダッシュボード
攻撃マップ
サイバーシェフ
Elasticvue
スパイダーフット
構成
T-Pot設定ファイル
T-Pot ハニーポットとサービスをカスタマイズする
メンテナンス
輸出
輸入
Docker イメージのダウンロードに失敗する
T-Pot ネットワークが失敗する
一般的なアップデート
スクリプトを更新する
毎日の再起動
既知の問題
T-ポットを開始する
ストップTポット
T-Potデータフォルダー
ログの永続性
工場出荷時設定にリセット
コンテナを表示する
ブラックホール
Nginx へのユーザーの追加 (T-Pot WebUI)
Kibana オブジェクトのインポートとエクスポート
トラブルシューティング
ログ
RAMとストレージ
接触
問題
ディスカッション
ライセンス
クレジット
の開発者と開発コミュニティ
お客様の声
T-Pot のインストールと実行は、お客様の責任の範囲内で行います。システムの侵害は決して排除できないため、展開を賢明に選択してください。
問題やディスカッションを調べてすぐに解決できるようにします。
ソフトウェアはベストエフォートを念頭に置いて設計され、提供されています。コミュニティおよびオープン ソース プロジェクトとして、他の多くのオープン ソース ソフトウェアを使用しているため、バグや問題が含まれている可能性があります。責任を持って報告してください。
ハニーポットは設計上、機密データをホストすべきではありません。何も追加しないように注意してください。
デフォルトでは、データは Sicherheitstacho に送信されます。これを構成 ( ~/tpotce/docker-compose.yml
) でewsposter
セクションを削除することで無効にできます。しかし、この場合、共有することは本当に思いやりです。
T-Pot の主要コンポーネントはtpotinit
Docker イメージに移動され、T-Pot が macOS や Windows を含む複数の Linux ディストリビューションをサポートできるようになりました (ただし、どちらも Docker Desktop の機能セットに限定されます)。 T-Pot は docker と docker compose を使用して、できるだけ多くのハニーポットとツールを同時に実行し、ホストのハードウェアを最大限に活用するという目標を達成します。
T-Pot は、次のハニーポットの Docker イメージを提供します。
アドホニー、
シコアサ、
シトリックスハニーポット、
コンポット、
カウリー、
ddospot、
ディコンポット、
ディオネア、
エラスティックポット、
エンドレス、
食いしん坊、
地獄の壺、
告げる、
ハニーポット、
ハニートラップ、
いっぽう、
ログ4ポット、
メイロニー、
メディポット、
レディオニーポット、
セントリーピア、
スネア、
タンナー、
ワードポット
...次のツールと並行して ...
Autoheal ヘルスチェックに失敗したコンテナを自動的に再起動するツール。
Cyberchef は、暗号化、エンコード、圧縮、データ分析のための Web アプリです。
T-Pot によってキャプチャされたすべてのイベントを美しく視覚化する Elastic Stack。
Elasticvue は、Elasticsearch クラスターを参照および操作するための Web フロントエンドです。
Fatt は、pcap ファイルおよびライブ ネットワーク トラフィックからネットワーク メタデータとフィンガープリントを抽出するための pyshark ベースのスクリプトです。
T-Pot- Attack-Map は、T-Pot の美しくアニメーション化された攻撃マップです。
P0f は、純粋に受動的なトラフィック フィンガープリンティングのためのツールです。
Spiderfoot は、オープンソースのインテリジェンス自動化ツールです。
Suricata はネットワーク セキュリティ監視エンジンです。
...すぐに使える最高のエクスペリエンスと使いやすいマルチハニーポット システムを提供します。
ソース コードと構成ファイルは、T-Pot GitHub リポジトリに完全に保存されています。 Docker イメージは、T-Pot 環境用に構築され、事前構成されています。
個々の Dockerfile と構成は docker フォルダーにあります。
T-Pot は、基本的に 5 つのグループに分類される多数のサービスを提供しています。
OSが提供するシステムサービス
SSH による安全なリモート アクセス。
弾性スタック
イベントを保存するための Elasticsearch。
イベントを取り込み、受信し、Elasticsearch に送信するための Logstash。
美しくレンダリングされたダッシュボードにイベントを表示するための Kibana。
ツール
NGINX は、Kibana、CyberChef、Elasticvue、GeoIP AttackMap、Spiderfoot への安全なリモート アクセス (リバース プロキシ) を提供し、T-Pot センサーがイベント データを T-Pot ハイブに安全に送信できるようにします。
CyberChef は、暗号化、エンコード、圧縮、データ分析のための Web アプリです。
Elasticvue は、Elasticsearch クラスターを参照および操作するための Web フロントエンドです。
T-Pot Attack Map T-Pot の美しくアニメーション化された攻撃マップ。
Spiderfoot は、オープンソースのインテリジェンス自動化ツールです。
ハニーポット
選択されたdocker-compose.yml
に基づく 23 個の使用可能なハニーポットの選択。
ネットワークセキュリティ監視 (NSM)
Fatt は、pcap ファイルおよびライブ ネットワーク トラフィックからネットワーク メタデータとフィンガープリントを抽出するための pyshark ベースのスクリプトです。
P0f は、純粋に受動的なトラフィック フィンガープリンティングのためのツールです。
Suricata はネットワーク セキュリティ監視エンジンです。
T-Pot のインストール中および使用中には、2 つの異なるタイプのアカウントを使用します。これは認証エラーの最も一般的な理由であるため、さまざまなアカウントの種類の違いを必ず理解してください。
サービス | アカウントの種類 | ユーザー名 / グループ | 説明 |
---|---|---|---|
SSH | OS | <OS_USERNAME> | OS のインストール時に選択したユーザー。 |
Nginx | 基本認証 | <WEB_USER> | T-Pot のインストール時に選択した<web_user> 。 |
サイバーシェフ | 基本認証 | <WEB_USER> | T-Pot のインストール時に選択した<web_user> 。 |
Elasticvue | 基本認証 | <WEB_USER> | T-Pot のインストール時に選択した<web_user> 。 |
Geoip 攻撃マップ | 基本認証 | <WEB_USER> | T-Pot のインストール時に選択した<web_user> 。 |
スパイダーフット | 基本認証 | <WEB_USER> | T-Pot のインストール時に選択した<web_user> 。 |
T-ポット | OS | tpot | tpot このユーザー/グループは常に T-Pot サービスによって予約されています。 |
T-ポットログ | 基本認証 | <LS_WEB_USER> | LS_WEB_USER は自動的に管理されます。 |
サポートされている Linux ディストリビューション イメージ、ハイブ/センサー、実際のハードウェア、仮想マシン、またはその他の環境へのインストールに応じて、T-Pot を正常にインストールするには、OS、RAM、ストレージ、ネットワークに関して満たさなければならないさまざまな種類の要件があります (これらの要件を克服するために、いつでも~/tpotce/docker-compose.yml
と~/tpotce/.env
ニーズに合わせて調整できます)。
Tポットタイプ | ラム | ストレージ | 説明 |
---|---|---|---|
ハイブ | 16ギガバイト | 256GB SSD | 経験則として、センサーとデータが増えるほど、より多くの RAM とストレージが必要になります。 |
センサー | 8GB | 128GB SSD | ハニーポット ログは 30 日間保存されるため (~/tpotce/data)、ストレージは攻撃量によって異なります。 |
T-Potには必要なものがあります...
DHCP 経由または静的に割り当てられた IPv4 アドレス
正常にインストールおよび操作するには、プロキシを使用しない正常なインターネット接続が必要です。
プロキシ サポートやその他の非標準機能が必要な場合は、サポートされている Linux ディストリビューション イメージのドキュメントや Docker ドキュメントを確認する必要があります。
サポートされているすべての Linux ディストリビューション イメージは VM 内で実行されます。つまり、T-Pot は問題なく実行されます。以下はテストされ、動作することが報告されています。
UTM (インテル & Apple シリコン)
バーチャルボックス
VMWare Fusion および VMWare ワークステーション
KVM も同様に動作すると報告されています。
構成/セットアップのヒント:
Intel バージョンは安定して動作しますが、Apple Silicon (arm64) のサポートには既知の問題があり、UTM では、OS の初期インストール中にDisplay
Console Only
に切り替え、その後Full Graphics
に戻す必要がある場合があります。
fatt、suricata、および p0f が正しく動作するために、設定中にネットワーク インターフェイスの無差別モードを有効にする必要がある場合があります。
Wi-Fi カードを T-Pot のプライマリ NIC として使用する場合は、すべてのネットワーク インターフェイス ドライバーがすべてのワイヤレス カードをサポートしているわけではないことに注意してください。たとえば、VirtualBox では、NIC の「MT SERVER」モデルを選択する必要があります。
T-Pot は、サポートされている Linux ディストリビューション イメージのハードウェア サポートによってのみ制限されます。専用ハードウェアに投資する前に、HCL (ハードウェア互換性リスト) を確認し、サポートされているディストリビューションを T-Pot でテストすることをお勧めします。
T-Pot はテストされており、動作することがわかっています...
インストール後の方法を使用する Telekom OTC ...他のものは機能する可能性がありますが、テストされていません。
一部のユーザーは、他のクラウドやホスティング会社 (Azure や GCP) でインストールが動作していると報告しています。ハードウェア要件は異なる場合があります。不明な場合は、問題とディスカッションを調査し、いくつかの機能テストを実行する必要があります。 T-Pot 24.04.0 以降では、クラウド ベースのインストールを妨げる既知の設定を確実に削除するようにしました。
OS が通常必要とするポート (DHCP リース、DNS などの取得) に加えて、T-Pot は受信/送信接続用に次のポートを必要とします。視覚的に表現するには、T-Pot アーキテクチャを確認してください。また、一部のポートは重複として表示されますが、異なるエディションで使用されているため問題ありません。
ポート | プロトコル | 方向 | 説明 |
---|---|---|---|
80、443 | tcp | 発信 | T-Pot 管理: インストール、アップデート、ログ (OS、GitHub、DockerHub、Sicherheitstacho など) |
64294 | tcp | 入ってくる | T-Pot 管理: ハイブへのセンサー データ送信 (NGINX リバース プロキシ経由) 127.0.0.1:64305 |
64295 | tcp | 入ってくる | T-Pot 管理: SSH へのアクセス |
64297 | tcp | 入ってくる | T-Pot 管理 NGINX リバース プロキシへのアクセス |
5555 | tcp | 入ってくる | ハニーポット: ADBHoney |
5000 | udp | 入ってくる | ハニーポット: CiscoASA |
8443 | tcp | 入ってくる | ハニーポット: CiscoASA |
443 | tcp | 入ってくる | ハニーポット: シトリックハニーポット |
80、102、502、1025、2404、10001、44818、47808、50100 | tcp | 入ってくる | ハニーポット:コンポット |
161、623 | udp | 入ってくる | ハニーポット:コンポット |
22、23 | tcp | 入ってくる | ハニーポット: カウリー |
19、53、123、1900 | udp | 入ってくる | ハニーポット: Ddospot |
11112 | tcp | 入ってくる | ハニーポット: ディコンポット |
21、42、135、443、445、1433、1723、1883、3306、8081 | tcp | 入ってくる | ハニーポット: ディオネア |
69 | udp | 入ってくる | ハニーポット: ディオネア |
9200 | tcp | 入ってくる | ハニーポット: エラスティックポット |
22 | tcp | 入ってくる | ハニーポット: エンドレス |
21、22、23、25、80、110、143、443、993、995、1080、5432、5900 | tcp | 入ってくる | ハニーポット: ヘラルディング |
21、22、23、25、80、110、143、389、443、445、631、1080、1433、1521、3306、3389、5060、5432、5900、6379、6667、8080、 9100、9200、11211 | tcp | 入ってくる | ハニーポット: qハニーポット |
53、123、161、5060 | udp | 入ってくる | ハニーポット: qハニーポット |
631 | tcp | 入ってくる | ハニーポット: IPPHoney |
80、443、8080、9200、25565 | tcp | 入ってくる | ハニーポット: Log4Pot |
25 | tcp | 入ってくる | ハニーポット: マイロニー |
2575 | tcp | 入ってくる | ハニーポット: メドポット |
6379 | tcp | 入ってくる | ハニーポット: レディオニーポット |
5060 | TCP/UDP | 入ってくる | ハニーポット:セントリーピア |
80 | tcp | 入ってくる | ハニーポット: スネア (タナー) |
8090 | tcp | 入ってくる | ハニーポット: ワードポット |
SaaS サービスのポートと利用可能性は、地理的位置によって異なる場合があります。
一部のハニーポット (Cowrie または Log4Pot) が完全な機能に達するには、攻撃者のマルウェアをダウンロードするために発信接続も必要です。詳細については、リポジトリへのリンクをクリックして、個々のハニーポットのドキュメントを参照してください。
インターネットに公開し始める前に、T-Pot とハニーポットがどのように機能するかをよく理解しておくことをお勧めします。クイックスタートとして、仮想マシンで T-Pot インストールを実行します。
物事がどのように機能するかを理解したら、侵入者が出入りしていると思われるネットワーク (つまり、インターネット) を選択する必要があります。そうしないと、T-Pot は攻撃を捕らえられない可能性が高くなります (要点を証明したい場合を除く)。まず、T-Pot をフィルタリングされていないゾーンに配置し、すべての TCP および UDP トラフィックが T-Pot のネットワーク インターフェイスに転送されるようにすることをお勧めします。 T-Pot の管理ポートのプローブを回避するには、T-Pot をファイアウォールの内側に置き、ポート範囲 1 ~ 64000 のすべての TCP / UDP トラフィックを T-Pot に転送し、信頼された IP からのみポート > 64000 へのアクセスを許可する必要があります。または、ユースケースに関連するポートのみを公開します。未知のポートでマルウェア トラフィックをキャッチしたい場合は、転送するポートを制限しないでください。これは、glutton とハニートラップは、他のハニーポット デーモンによって占有されていない TCP ポートを動的にバインドするため、セットアップがさらされているリスクをより適切に表現できるからです。 。
サポートされている Linux ディストリビューション イメージの 1 つをダウンロードし、TL;DR の手順に従うか、T-Pot リポジトリをgit clone
インストーラー~/tpotce/install.sh
実行します。実行中のサポートされている Linux システム上で T-Pot を実行することは可能ですが、実行中のサービスとのポートの競合を避けるためにクリーン インストールをお勧めします。 T-Pot インストーラーには、ここで説明されているようにインターネットへの直接アクセスが必要です。
従うべき手順:
以下のリストからサポートされている Linux ディストリビューションをダウンロードします。
インストール中に、必須パッケージのみをインストールする最小バージョン、 netinstall バージョン、またはサーバーバージョンを選択します。
Gnome や KDE などのグラフィカル デスクトップ環境は決してインストールしないでください。ポートの競合により、T-Pot は動作しません。
マシンにリモートで接続できるように、必ず SSH をインストールしてください。
ディストリビューション名 | x64 | 腕64 |
---|---|---|
Alma Linux OS 9.4ブートISO | ダウンロード | ダウンロード |
Debian 12 ネットワーク インストール | ダウンロード | ダウンロード |
Fedora Server 40 ネットワーク インストール | ダウンロード | ダウンロード |
OpenSuse Tumbleweed ネットワーク イメージ | ダウンロード | ダウンロード |
Rocky Linux OS 9.4 ブート ISO | ダウンロード | ダウンロード |
Ubuntu 24.04 ライブサーバー | ダウンロード | ダウンロード |
ディストリビューション名 | 腕64 |
---|---|
Raspberry Pi OS ( 64Bit、Lite ) | ダウンロード |
GitHub リポジトリのクローンを作成します: $ git clone https://github.com/telekom-security/tpotce
または、TL;DR に従い、このセクションをスキップしてください。
tpotce/フォルダーに移動します: $ cd tpotce
インストーラーを非 root として実行します: $ ./install.sh
:
SSH ポートをtcp/64295
に変更します。
ハニーポットとのポートの競合を避けるために、DNS スタブ リスナーを無効にします。
SELinux を監視モードに設定する
パブリック ゾーンのファイアウォール ターゲットを ACCEPT に設定します。
Dockerのリポジトリを追加してDockerをインストールする
推奨パッケージをインストールする
問題の原因となることがわかっているパッケージを削除する
現在のユーザーを docker グループに追加します ( sudo
使用せずに docker との対話を許可します)
dps
およびdpsw
エイリアスを追加します ( grc docker ps -a
、 watch -c "grc --colour=on docker ps -a
)
la
、 ll
およびls
エイリアスを追加します ( exa
の場合、改良されたls
コマンド)
mi
を追加します ( micro
の場合、 vi
および/またはnano
の優れた代替品)
ホスト上の開いているポートを表示します (T-Pot に必要なポートと比較)
tpot.service
/etc/systemd/system
に追加して有効にし、T-Pot が自動的に起動および停止できるようにします。
選択した Linux ディストリビューションに応じて、インストーラーは次のことを行います。
インストーラーの指示に従ってください。ユーザー ( sudo
またはroot
) パスワードを少なくとも 1 回入力する必要があります。
インストーラ メッセージにエラーがないか確認し、ポートの競合を引き起こす可能性のあるポートを開いてください。
再起動: $ sudo reboot
場合によっては、開発、テスト、または単に楽しむために、macOS または Windows 上で T-Pot インスタンスをスピンアップできれば素晴らしい場合があります。 Docker Desktop はかなり制限されているため、すべてのハニーポット タイプや T-Pot 機能がサポートされているわけではありません。また、デフォルトでは、macOS と Windows のファイアウォールがリモートからのアクセスをブロックしているため、テストはホストに限定されることにも注意してください。運用環境では、Linux 上で T-Pot を実行することをお勧めします。
起動して実行するには、次の手順に従ってください。
macOS または Windows 用の Docker デスクトップをインストールします。
GitHub リポジトリのクローンを作成します: git clone https://github.com/telekom-security/tpotce
(Windows では、コードがCRLF
ではなくLF
でチェックアウトされていることを確認してください!)
cd ~/tpotce
に移動します。
cp compose/mac_win.yml ./docker-compose.yml
をコピーします。
~/tpotce/genuser.sh
(macOS) または~/tpotce/genuserwin.ps1
(Windows) を実行して、 WEB_USER
を作成します。
TPOT_OSTYPE=linux
mac
またはwin
に変更して、 .env
ファイルを調整します。
# OSType (linux, mac, win) # Most docker features are available on linux TPOT_OSTYPE=mac
T-Pot の起動を妨げるポートの競合がないことを自分で確認する必要があります。
T-Pot を開始します: T-Pot をバックグラウンドで実行する場合はdocker compose up
またはdocker compose up -d
実行します。
T-Pot を停止します: CTRL-C
(フォアグラウンドで実行されている場合) および/またはdocker compose down -v
実行して、T-Pot を完全に停止します。
T-Pot Standard / HIVE では、すべてのサービス、ツール、ハニーポットなどが、HIVE エンドポイントとしても機能する単一のホストにインストールされます。システム要件を満たしていることを確認してください。 ~/tpotce/docker-compose.yml
個人のユースケースに合わせて調整したり、 ~/tpotce/compose/customizer.py
使用して独自の構成を作成したりして、ニーズに合わせた T-Pot エクスペリエンスを実現することができます。インストールが完了したら、「最初の起動」に進むことができます。
T-Pot の分散バージョンには少なくとも 2 つのホストが必要です
T-Pot HIVE 、T-Pot の標準インストール (これを最初にインストールしてください)、
T-Pot SENSORは、ハニーポットといくつかのツールのみをホストし、ログ データをHIVEに送信します。
「分散展開」で説明されているように、 SENSORのインストールを完了するまで、 SENSOR は起動しません。
T-Pot のアンインストールは、サポートされている Linux ディストリビューションでのみ使用できます。
T-Pot をアンインストールするには、 ~/tpotce/uninstall.sh
を実行し、アンインストーラーの指示に従ってください。パスワードを少なくとも 1 回入力する必要があります。
アンインストールが完了したら、マシンを再起動しますsudo reboot
T-Pot インストーラーが正常に終了したら、システムを再起動する必要があります ( sudo reboot
)。再起動すると、システムのインストール時に設定したユーザーを使用してシステムにログインできるようになります。ログインはユーザー タイプに応じて異なります。
ユーザー: [ <OS_USERNAME>
]
パス: [パスワード]
SSH 経由でログインしてコマンド ラインにアクセスできます: ssh -l <OS_USERNAME> -p 64295 <your.ip>
:
ユーザー: [ <OS_USERNAME>
]
pass: [パスワード、SSH キーを推奨]
ブラウザからログインして、T-Pot WebUI とツールにアクセスすることもできます: https://<your.ip>:64297
ユーザー: [ <WEB_USER>
]
パス: [パスワード]
dps.sh
にログインしてすべてのサービスとハニーポットが正しく起動しているかどうかを確認し、Kibana や Geoip Attack Map にログインして攻撃を監視すること以外にやるべきことはあまりありません。
T-Pot Init はHIVEホストの IP の自己署名証明書のみを作成するため、分散展開には計画が必要ですが、これは通常、単純なセットアップに適しています。 logstash は接続時に有効な証明書をチェックするため、複数の IP (つまり、RFC 1918 およびパブリック NAT IP) で到達可能なHIVE を含む分散セットアップや、場合によってはドメイン名でも証明書を検証できない接続エラーが発生します。このようなセットアップには、共通名と SAN (Subject Alternative Name) を持つ証明書が必要です。
センサーを展開する前に、証明書の問題を回避するためにドメイン名と IP を適切に計画していることを確認してください。詳細については、問題 #1543 を参照してください。
この例を IP/ドメイン設定に合わせて調整し、コマンドに従ってHIVEの証明書を変更します。
sudo systemctl stop tpot sudo openssl req -nodes -x509 -sha512 -newkey rsa:8192 -keyout "$HOME/tpotce/data/nginx/cert/nginx.key" -out "$HOME/tpotce/data/nginx/cert/nginx.crt" -days 3650 -subj '/C=AU/ST=Some-State/O=Internet Widgits Pty Ltd' -addext "subjectAltName = IP:192.168.1.200, IP:1.2.3.4, DNS:my.primary.domain, DNS:my.secondary.domain" sudo chmod 774 $HOME/tpotce/data/nginx/cert/* sudo chown tpot:tpot $HOME/tpotce/data/nginx/cert/* sudo systemctl start tpot
T-Pot 構成ファイル ( .env
) では、 LS_SSL_VERIFICATION=none
を設定することで、 SENSORからHIVEへの logstash 接続の SSL 検証を無効にすることができます。セキュリティ上の理由から、これはラボまたはテスト環境にのみ推奨されます。
CA によって署名されたHIVEの有効な証明書 (つまり、Let's Encrypt) を使用することを選択した場合、logstash、したがってSENSOR は問題なく接続してログをHIVEに送信できます。
インストーラーの指示に従ってSENSOR を再起動したら、 HIVEにログインしてcd ~/tpotce
フォルダーに移動することで、分散展開を続行できます。実際の展開を続行する前に、計画と証明書を理解していることを確認してください。
SENSORに安全にログインし、 Ansible
センサー上で Playbook を実行できるようにするための SSH キーをまだ生成していない場合は、次のようにします。
ssh-keygen
を実行し、指示に従ってパスフレーズを空のままにしておきます。
Generating public/private rsa key pair. Enter file in which to save the key (/home/<your_user>/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/<your_user>/.ssh/id_rsa Your public key has been saved in /home/<your_user>/.ssh/id_rsa.pub
ssh-copy-id -p 64295 <SENSOR_SSH_USER>@<SENSOR_IP>)
を実行して、キーを SENSOR にデプロイします。
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/home/<your_user>/.ssh/id_rsa.pub" The authenticity of host '[<SENSOR_IP>]:64295 ([<SENSOR_IP>]:64295)' can't be stablished. ED25519 key fingerprint is SHA256:naIDxFiw/skPJadTcgmWZQtgt+CdfRbUCoZn5RmkOnQ. This key is not known by any other names. Are you sure you want to continue connecting (yes/no/[fingerprint])? yes /usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed /usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys <your_user>@172.20.254.124's password: Number of key(s) added: 1 Now try logging into the machine, with: "ssh -p '64295' '<your_user>@<SENSOR_IP>'" and check to make sure that only the key(s) you wanted were added.
推奨されているように、指示に従って接続をテストしますssh -p '64295' '<your_user>@<SENSOR_IP>'
。
キーが正常にデプロイされたら、 ./deploy.sh
を実行し、指示に従います。
$HOME/tpotce/.env
構成内の SENSOR のTPOT_HIVE_USER
ENV を特定します (これは、base64 でエンコードされた文字列です)。ここで、 $HOME/tpotce/.env
構成内の HIVE 上のLS_WEB_USER
ENV で同じ文字列を特定します。紐を外してT-Potを再起動してください。
これで、SENSOR マシンを安全に削除できます。
T-Pot は、ハニーポットに興味があるすべての人がアクセスできるようにするために提供されています。デフォルトでは、キャプチャされたデータはコミュニティ バックエンドに送信されます。このコミュニティ バックエンドはデータを使用して Sicherheitstacho にフィードします。次の手順に従って、 ~/tpotce/docker-compose.yml
から# Ewsposter service
を削除することで、送信をオプトアウトできます。
T-Pot サービスを停止します: systemctl stop tpot
~/tpotce/docker-compose.yml
を開きます: micro ~/tpotce/docker-compose.yml
次の行を削除し、保存して micro を終了します ( CTRL+Q
)。
# Ewsposter service ewsposter: container_name: ewsposter restart: always depends_on: tpotinit: condition: service_healthy networks: - ewsposter_local environment: - EWS_HPFEEDS_ENABLE=false - EWS_HPFEEDS_HOST=host - EWS_HPFEEDS_PORT=port - EWS_HPFEEDS_CHANNELS=channels - EWS_HPFEEDS_IDENT=user - EWS_HPFEEDS_SECRET=secret - EWS_HPFEEDS_TLSCERT=false - EWS_HPFEEDS_FORMAT=json image: ${TPOT_REPO}/ewsposter:${TPOT_VERSION} pull_policy: ${TPOT_PULL_POLICY} volumes: - ${TPOT_DATA_PATH}:/data - ${TPOT_DATA_PATH}/ews/conf/ews.ip:/opt/ewsposter/ews.ip
T-Pot サービスを開始します: systemctl start tpot
データ送信はコミュニティ アプローチの主な目的であるため、データ送信を無効にしないことをお勧めします。ご存知のとおり、共有は思いやりです。
オプトインとして、T-Pot データをサードパーティの HPFEEDS ブローカーと共有することができます。
ここの手順に従って T-Pot サービスを停止し、 ~/tpotce/docker-compose.yml
を開きます。
ewsposter
セクションまで下にスクロールし、必要に応じて HPFEEDS 設定を調整します。
CA 証明書を追加する必要がある場合は~/tpotce/data/ews/conf
に追加し、 EWS_HPFEEDS_TLSCERT=/data/ews/conf/<your_ca.crt>
を設定します。
T-Pot サービスを開始します: systemctl start tpot
。
ホスト / T-Pot へのリモート アクセスは SSH ( tcp/64295
上) で可能であり、一部のサービスとツールには T-Pot が付属しており、研究タスクの一部をはるかに簡単にします。
ユーザー タイプに応じて、SSH 経由でログインしてコマンド ラインにアクセスできます: ssh -l <OS_USERNAME> -p 64295 <your.ip>
:
ユーザー: [ <OS_USERNAME>
]
パス: [パスワード]
ユーザー タイプに応じて、ブラウザからhttps://<your.ip>:64297
経由で T-Pot ランディング ページを開くことができます。
ユーザー: [ <WEB_USER>
]
パス: [パスワード]
T-Pot ランディング ページでKibana
をクリックするだけで、Kibana に転送されます。 T-Pot がサポートするハニーポットに合わせて調整された、さまざまなダッシュボードとビジュアライゼーションから選択できます。
T-Pot ランディング ページで、 Attack Map
をクリックするだけで、攻撃マップに転送されます。攻撃マップは Web ソケットを利用するため、 <WEB_USER>
認証情報の再入力が必要になる場合があります。
T-Pot ランディング ページでCyberchef
をクリックするだけで、Cyberchef に転送されます。
T-Pot ランディング ページでElasticvue
をクリックするだけで、Elasticvue に転送されます。
T-Pot ランディング ページでSpiderfoot
をクリックするだけで、Spiderfoot に転送されます。
T-Pot は、Docker サービス (つまり、ハニーポットやツール) だけでなく、Docker compose 環境の変数も提供する構成ファイルを提供します。設定ファイルは~/tpoce/.env
に隠されています。デフォルト設定を保持するサンプル ファイル ( env.example
) もあります。
最初の開始前に~/tpotce/genuser.sh
を実行するか、ここで説明されているようにWEB_USER
手動でセットアップします。
~/tpotce/compose
には、T-Pot Standard / HIVE インストールを調整するために必要なものがすべてあります。
customizer.py mac_win.yml mini.yml mobile.yml raspberry_showcase.yml sensor.yml standard.yml tpot_services.yml
.yml
ファイルは docker compose ファイルであり、それぞれが異なるハニーポットとツールのセットを表しており、 tpot_services.yml
はカスタマイズされた docker compose ファイルを作成するためのcustomizer.py
のテンプレートです。
構成ファイルをアクティブにするには、次の手順に従います。
systemctl stop tpot
を使用して T-Pot を停止します。
docker compose ファイルcp ~/tpotce/compose/<dockercompose.yml> ~/tpotce/docker-compose.yml
をコピーします。
systemctl start tpot
で T-Pot を起動します。
カスタマイズされた docker compose ファイルを作成するには、次の手順を実行します。
cd ~/tpotce/compose
に移動します。
python3 customizer.py
を実行します。
このスクリプトは、独自のdocker-compose.yml
作成するプロセスをガイドします。一部のハニーポットとサービスは同じポートを占有しているため、ポートの競合が存在するかどうかを確認し、競合しているサービスについて通知します。その後、 docker-compose-custom.yml
を調整するか、スクリプトを再実行することで、手動で問題を解決できます。
systemctl stop tpot
を使用して T-Pot を停止します。
カスタム docker compose ファイルをコピーします: cp docker-compose-custom.yml ~/tpotce
およびcd ~/tpotce
。
docker-compose -f docker-compose-custom.yml up
を実行して、すべてが機能するかどうかを確認します。エラーが発生した場合は、Docker Compose 仕様に従って軽減してください。おそらく、これは単なるポートの競合であり、docker compose ファイルを編集することで調整できます。
すべてが正常に動作する場合は、 CTRL-C
押してコンテナを停止し、 docker-compose -f docker-compose-custom.yml down -v
を実行します。
docker compose ファイルを、テストが成功した新しいカスタマイズされた docker compose ファイルmv ~/tpotce/docker-compose-custom.yml ~/tpotce/docker-compose.yml
に置き換えます。
systemctl start tpot
で T-Pot を起動します。
T-Pot はメンテナンスの手間がかからないように設計されています。ほとんどすべてが docker イメージを通じて提供されるため、基本的には実行する以外に何もする必要はありません。セキュリティ侵害のリスクを軽減するために、Docker イメージを定期的にアップグレードします。ただし、このセクションをよく読む必要があります。
アップデートが失敗した場合は、問題を報告したりディスカッションしたりすることで、将来の状況を改善することができますが、失われたデータについては一切のサポートを提供できないため、提供される解決策は常に新規インストールを実行することになります。
T-Pot のセキュリティは、サポートされている Linux ディストリビューション イメージに提供されるアップデートに依存します。必ず OS のドキュメントを参照し、OS によって更新が定期的にインストールされていることを確認してください。デフォルト ( ~/tpotce/.env
) TPOT_PULL_POLICY=always
により、T-Pot を開始するたびに Docker が新しい Docker イメージを確認し、コンテナーを作成する前にダウンロードするようになります。
T-Pot リリースは GitHub を通じて提供され、 ~/tpotce/update.sh
を使用してプルできます。
T-Pot 設定ファイルに関連する変更を加えた場合は、必ず最初にバックアップを作成してください。
アップデートにより予期せぬ影響が生じる可能性があります。作業にとって最も重要なマシンまたはファイルのバックアップを作成してください。
更新スクリプトは...
T-Pot マスター ブランチと同期するためにローカルの変更を容赦なく上書きします。
~/tpotce
フォルダーの完全バックアップを作成します
~/tpotce
内のすべてのファイルを更新して、T-Pot マスター ブランチと同期するようにします。
~/tpotce/data/ews/conf
からカスタムews.cfg
と T-Pot 設定 ( ~/tpotce/.env
) を復元します。
デフォルトでは、T-Pot はクリーンアップを含む毎日の再起動を追加します。この行はsudo crontab -e
で調整できます。
#Ansible: T-Pot Daily Reboot 42 2 * * * bash -c 'systemctl stop tpot.service && docker container prune -f; docker image prune -f; docker volume prune -f; /usr/sbin/shutdown -r +1 "T-Pot Daily Reboot"'
次の問題が既知です。説明されている手順に従って問題を解決してください。
少し前に、Docker はダウンロード速度制限を導入しました。単一または共有 IP を介して Docker イメージを頻繁にダウンロードしている場合、その IP アドレスが Docker のダウンロード速度制限を超えている可能性があります。レート制限を延長するには、Docker アカウントにログインします。
sudo su - docker login
T-Pot は、単一の NIC を備えたマシンでのみ実行されるように設計されています。 T-Pot はデフォルト ルートでインターフェイスを取得しようとしますが、これが常に成功するという保証はありません。 T-Pot は、NIC が 1 つだけ搭載されたマシンでのみ使用してください。
T-Pot サービスは、再起動するたびに自動的に開始および停止します (インストール中にsudo crontab -l
でのセットアップとして 1 日に 1 回実行されます)。
T-Pot サービスを手動で開始したい場合は、 systemctl start tpot
介して開始し、 dpsw
を介してコンテナの起動を観察できます。
T-Pot サービスは、再起動するたびに自動的に開始および停止します (インストール中にsudo crontab -l
でのセットアップとして 1 日に 1 回実行されます)。
T-Pot サービスを手動で停止したい場合は、 systemctl stop tpot
介して停止し、 dpsw
を介してコンテナのシャットダウンを監視できます。
ハニーポット、ツール、および T-Pot 関連サービスからのすべての永続ログ ファイルは~/tpotce/data
に保存されます。これには、Elastic Stack に送信されない収集されたアーティファクトが含まれます。
T-Pot データ フォルダーに保存されているすべてのログ データは、デフォルトで 30 日間保存されます。
Elasticsearch インデックスは、Kibana で直接調整できるtpot
インデックス ライフサイクル ポリシーによって処理されます (必ず「管理対象システム ポリシーを含める」ようにしてください)。
デフォルトでは、 tpot
インデックス ライフサイクル ポリシーはインデックスを 30 日間保持します。これにより、ストレージと速度のバランスが取れます。ただし、ニーズに合わせてポリシーを調整できます。
T-Pot データ フォルダーに保存されているすべてのログ データ (もちろん Elasticsearch インデックスを除く) は、 clean.sh
実行することで消去できます。場合によっては修復不可能なほど故障する可能性があり、T-Pot を工場出荷時のデフォルトにリセットするのがこれまでになく簡単になります (必ずcd ~/tpotce
と入力してください)。
systemctl stop tpot
を使用して T-Pot を停止します。
~/tpotce/data
フォルダーを安全な場所に移動/バックアップします (これはオプションです。念のため)。
sudo rm -rf ~/tpotce/data
を使用して~/tpotce/data
フォルダーを削除します。
T-Pot を最後にフェッチされたコミットにリセットします。
cd ~/tpotce/ git reset --hard
これで、 ~/tpotce/install.sh
実行できるようになります。
dps
またはdpsw [interval]
を実行すると、T-Pot 関連のコンテナをすべて表示できます。このinterval (s)
定期的にdps.sh
が再実行されます。
Blackhole は、公に知られているスキャナーを常時訪問することなく、一種のステルス モードで T-Pot を実行するため、暴露される可能性が低くなります。もちろん、これは常にいたちごっこですが、ブラックホール機能は、既知のマス スキャナーからのすべてのリクエストをヌル ルーティングしながら、引き続き Suricata を通じてイベントをキャッチします。
この機能は~/tpotce/.env
でTPOT_BLACKHOLE=DISABLED
設定し、 systemctl stop tpot
およびsystemctl start tpot
またはsudo reboot
実行することでアクティブになります。
この機能を有効にすると、攻撃者の可視性が大幅に低下し、その結果、アクティビティが減少します。ただし、すでに述べたように、完全にステルスであることを保証するものではなく、一部のハニーポット サービスのフィンガープリンティングを防止するものでもありません。
Nginx (T-Pot WebUI) では、(ユーザー タイプに応じて) <WEB_USER>
アカウントを必要な数だけ追加できます。
新しいユーザーを追加するには、 ~/tpotce/genuser.sh
を実行します。
ユーザーを削除するには、 ~/tpotce/.env
を開き、 WEB_USER
見つけて、対応する Base64 文字列を削除します (デコードするには: echo <base64_string> | base64 -d
、または CyberChef を開いて「From Base64」レシピをロードします)。
変更を有効にするには、 systemctl stop tpot
およびsystemctl start tpot
またはsudo reboot
を使用して T-Pot を再起動する必要があります。
一部の T-Pot 更新では、Kibana オブジェクトを更新する必要があります。新しいハニーポットをサポートするため、または既存のダッシュボードやビジュアライゼーションを改善するためです。調整内容が失われないように、必ず最初にエクスポートしてください。
キバナへ行く
「スタック管理」をクリックします。
「保存されたオブジェクト」をクリックします
「<番号> 個のオブジェクトをエクスポート」をクリックします。
「すべてエクスポート」をクリックすると、すべてのオブジェクトを含む NDJSON ファイルがエクスポートされます。必ず完全なエクスポートを実行して、すべての参照が含まれていることを確認してください。
NDJSON ファイルをダウンロードして解凍します。
キバナへ行く
「スタック管理」をクリックします。
「保存されたオブジェクト」をクリックします
Kibana オブジェクトに個人的な変更を加えていない場合は、[インポート] をクリックしてデフォルトのままにしておきます (既存のオブジェクトを確認し、競合を自動的に上書きします)。
NDJSON ファイルを参照します。「オブジェクトがすでに存在する場合、それらを自動的に上書きしますか?」と尋ねられたら、あなたは「はい、すべて上書きします」と答えます。
通常、T-Pot はサポートに関する約束なしで現状のまま提供されます。問題やディスカッションを公開することはできますが、コミュニティがサポートできるように、基本的な必要な情報を含めるように準備してください。
コンテナが正しく実行されているかどうかを確認します: dps
システム リソースが枯渇していないか確認します: htop
、 docker stats
ポートの競合があるかどうかを確認します。
systemctl stop tpot grc netstat -tulpen mi ~/tpotce/docker-compose.yml docker-compose -f ~/tpotce/docker-compose.yml up CTRL+C docker-compose -f ~/tpotce/docker-compose.yml down -v
個々のコンテナーのログを確認します: docker logs -f <container_name>
tpotinit
ログを確認します: cat ~/tpotce/data/tpotinit.log
Elastic Stack は RAM、特にlogstash
とelasticsearch
大量に消費します。 Elastic Stack が利用できない場合、ログを受信しない場合、または単にクラッシュし続ける場合は、RAM またはストレージの問題である可能性が高くなります。
T -Potはサービス /コンテナを再起動しようとしていますが、 docker logs -f <container_name>
( logstash
またはelasticsearch
のいずれか)を実行し、RAMを含む警告または障害があるかどうかを確認します。
ストレージの障害は、 htop
介して簡単に識別できます。
T-potは、サポートに関するコミットメントなしにオープンソースと同様に提供されます(免責事項を参照)。
あなたがセキュリティ研究者であり、責任を持って問題を報告したい場合は、私たちの証明書に連絡してください。
GitHubの問題に関する問題(エラー)を報告してくださいが、最初にトラブルシューティングを行います。エラーに対処するための情報を提供しない問題は、閉じられるか、議論に変換されます。
最初に検索関数を使用してください。同様の問題がすでに対処または議論されている可能性があります。ソリューションは検索だけです。
一般的な質問、アイデア、ショー、テルなどは、GitHubの議論で説明できます。
検索関数を使用してください。同様の議論がすでに開かれており、回答が検索だけである可能性があります。
T-POTが構築されているソフトウェアは、次のライセンスを使用します。
gplv2:コンポット、ディオナイア、ハニートラップ、スリカータ
GPLV3:Adbhoney、ElasticPot、Ewspotter、Log4Pot、Fatt、Heralding、Ipphone、Redishoneypot、Sentrypeer、Snare、Tanner
Apache 2ライセンス:Cyberchef、Dicompot、Elasticsearch、Logstash、Kibana、Docker
MITライセンス:Autoheal、Ciscoasa、Ddospot、ElasticVue、Glutton、Hellpot、Maltrail
無効:Endlessh
その他:Citrixhoneypot、Cowrie、Mailoney、Elastic License、Wordpot
AGPL-3.0:ハニーポット
パブリックドメイン(CC):Harvard Dataverse
オープンソースと開発コミュニティがなければ、私たちが参加していることを誇りに思っています。Tポットは不可能だったでしょう!私たちの感謝は延長されていますが、次の人々と組織に限定されません。
Adbhoney
シコアサ
Citrixhoneypot
コンポット
カウリー
ddospot
dicompot
ディオネア
港湾労働者
弾性ポット
弾性検索
ElasticVue
Endlessh
ewsposter
太った
食いしん坊
ヘルポット
告げる
ハニーポット
ハニートラップ
Ipphoney
キバナ
ログスタッシュ
log4pot
Mailoney
マルトレール
Medpot
P0F
redishoneypot
Sentrypeer
クモの足
わな
皮なめし業者
スリカタ
ワードポット
次の企業と組織
港湾労働者
Elastic.io
ハニーネットプロジェクト
...そしてもちろん、コミュニティに参加してくれました!
遊んでくれてありがとう?
これまでに得た最大のフィードバックの1つは、コンポット開発者の1人によるものです。
「[...] T-potを強くお勧めします...それは正確にスイスの陸軍ナイフではありません。それは、スイスの陸軍ナイフを装備したスイスの兵士のようなものです。タンク内。 ...] "
@robcowart(Elastiflowの作成者)から:
「#Tpotは、ターンキーのハニーポットソリューションを最もよくまとめたものの1つです。それは、悪意のある俳優の行動と彼らがあなたの組織にもたらす脅威を分析して理解したい人にとっては必須です。」