
ブルーチーム向けのモジュラーOSINTハニーポット
Manukaは、脅威アクターによる偵察活動を監視し、ブルーチーム向けの実用的なインテリジェンスを生成するオープンソースインテリジェンス(OSINT)ハニーポットです。ソーシャルメディアプロフィールや漏洩した認証情報など、偽装されたOSINTソースで構成されるシミュレート環境を作成し、攻撃者の関心の兆候を追跡します。これはMITREのPRE-ATT&CKフレームワークに密接に対応しています。Manukaはブルーチームに攻撃前の偵察フェーズにおける追加の可視性を提供し、防御側に早期警戒信号を生成します。
従来のハニーポットは規模や洗練度はさまざまで、ほとんどがネットワークに焦点を当てています。これらのハニーポットは、攻撃者がすでにネットワークを調査しているという前提で、サイバーキルチェーンのステージ2(武器化)からステージ7(目標に対する行動)までの攻撃者を明らかにします。

Manukaはサイバーキルチェーンのステージ1(偵察)でOSINT脅威検出を行います。組織はネットワーク防御に数百万ドルを投資しているにもかかわらず、単一のGoogle検索で簡単に侵害される可能性があります。最近の例として、ハッカーが公開ウェブ上に放置されたZoom通話を通じて、企業の会議、セラピーセッション、大学の授業を暴露した事件があります。企業は境界上のこれらのOSINT脅威を検出する必要がありますが、そのためのツールが不足しています。
Manukaはスケーラブルに構築されています。ユーザーは新しいリスナーモジュールを簡単に追加し、Docker化された環境にプラグインできます。複数のキャンペーンとハニーポットを同時に調整して、ハニーポットの表面を広げることが可能です。さらに、ユーザーはManukaを迅速にカスタマイズしてさまざまなユースケースに合わせてデプロイできます。Manukaのデータは、組織のワークフロー内の他のサードパーティ分析・可視化ツールに容易に移植できるように設計されています。
OSINTハニーポットの設計は、OSINT技術の複雑さと広範さのために新しい課題をもたらします。しかし、そのようなツールがあれば、ブルーチームはサイバー脅威インテリジェンス戦略において「左方向にシフト」できるようになります。

Manukaは以下の主要な用語とプロセスに基づいて構築されています。


フレームワーク自体は、単一のホストにデプロイできる複数のDockerコンテナで構成されています。
これらのコンテナは、単一のdocker-composeコマンドでオーケストレーションされます。
開発時には、各コンポーネントはそれぞれのコンテナ内の以下のポートで動作します。
manuka-client: 3000manuka-server: 8080manuka-listener: 8080CORSの問題なしにクライアントとサーバーが通信できるように、追加のnginxレイヤーが localhost:8080 で /api/ を manuka-server に、/ を manuka-listener にプロキシパスします。
さらに、manuka-listener は以下のポートで動作します。
8081 - 偽装されたログインページ用8082 - 偽装されたメールとのインタラクション用各コンポーネントのリポジトリを参照して、それぞれの要件を確認してください。
docker >= 19.03.8docker-compose >= 1.25.4ngrok >= 2.3.35docker/secrets/postgres_password にPostgreSQLのパスワードを記述したファイルを作成します。docker/secrets/google_credentials.json にプロジェクトの認証情報を保存します。docker/secrets/google_topic に追加します。docker/secrets/google_oauth2_token.json に保存します。docker-compose -f docker-compose.yml -f docker-compose-dev.yml up --build --remove-orphansmanuka-listener のGmailプッシュサービスを初期化します:
./ngrok http <manuka-listenerポート> でHTTPS URLをメモします。ngrok コンソールに POST /notifications 200 OK が表示され、Dockerコンソールに Received push notification が表示されるはずです。本番環境では、以下のポートが各サーバーにマッピングされます。
8080: manuka-client が / に、manuka-server が /api に80: manuka-listener-login が / に、manuka-listener-social が /notifications にこれにより、サーバーを指す任意のドメインが偽のログインページとして表示され、管理ダッシュボードはポート 8080 で利用可能になります。さらに、管理ダッシュボードは nginx レイヤーでのHTTPベーシック認証によって保護されています。
各コンポーネントのリポジトリを参照して、それぞれの要件を確認してください。
docker >= 19.03.8docker-compose >= 1.25.4ngrok >= 2.3.35http://DOMAIN/notifications にする必要があります。docker/nginx/nginx.prod.conf.example を docker/nginx/nginx.prod.conf にコピーし、examplecompany.com を本番環境のドメインに置き換えます。init-letsencrypt.sh を実行してSSL証明書を生成します。COMPANY_NAME='Next Clarity Financial' NGINX_USERNAME=username NGINX_PASSWORD=password docker-compose -f docker-compose.yml -f docker-compose-prod.yml up --build --remove-orphans -d
NGINX_USERNAME と NGINX_PASSWORD はダッシュボードのベーシック認証に使用されます。COMPANY_NAME は偽のログインページの会社名になります。ソーシャルリスナー
FacebookおよびLinkedInでのソーシャル活動を監視します。現在、ネットワーク接続試行の通知をサポートしています。監視対象のソーシャルメディアアカウントではメール通知が有効になっている必要があります。ソーシャルメディアプラットフォームからのメール通知を受信する対応するメールアカウントは、これらのメールを中央のGmailアカウントに転送するように設定する必要があります。
ログインリスナー
ハニーポットサイトで漏洩した認証情報を使用したログイン試行を監視します。
OSINT - オープンソースインテリジェンス