
暗号化されたピアツーピアのメッシュVPNで、リモートモバイルフォレンジックを実現。ワイヤレスADBおよびlibimobiledeviceの取得、ネットワーク監視、侵入検知をNATやファイアウォールを越えて可能にします。
MESHは、モバイルデバイス上でのリモート論理フォレンジック取得をサポートするネットワーキングツールです
MESHは、アナリストにモバイルデバイスへの直接的な暗号化パスを提供し、ワイヤレスデバッグ、ネットワーク監視、フォレンジック取得を可能にします。デバイスがNAT、ファイアウォール、または制限の厳しいモバイルネットワークの背後にある場合でも機能します。プライベートオーバーレイを構築するため、リモートデバイスはあたかも同じローカルサブネット上にあるかのように動作します。中央VPNサーバーやポートフォワーディング、維持・防御するための恒久的なインフラストラクチャは必要ありません。これにより、MVTやAndroidQFなどを使用した、インターネット経由でのシームレスで簡単なリモートネットワーク監視と取得が可能になります。
メッシュは一時的であり、アナリストが制御します。デバイスをオンラインにし、データを収集し、その後ネットワークを切断します。何も実行状態のまま残らないため、アクティビティのフィンガープリンティングを回避できます。
[!IMPORTANT] 公開アルファ版:現在公開アルファ版であり、活発に開発中です。完全なサードパーティによるペネトレーションテストが完了し、主要な脆弱性はすべて修正済みです。変更が発生する可能性があり、破壊的な変更が予想されます。現在、ある程度の技術的専門知識が必要です。バグやセキュリティ上の懸念は、GitHub Issuesを介して報告してください。
完全なドキュメントはこちら:
https://docs.meshforensics.org/
docker composeを使用し、レガシーなdocker-composeは使用しない)。インストール手順sudo snap install task --classicbrew install go-task[!NOTE] ほとんどのランタイム操作はプレーンな
docker composeで動作しますが、インタラクティブなセットアップタスク(.env管理、設定テンプレート、認証キーのローテーション)にはgo-taskが必要です。
git clone https://github.com/BARGHEST-ngo/mesh.git
cd MESH
task build
task controlPlane
task controlPlaneは、セットアップをインタラクティブにガイドし、必要なすべてのサービスを起動します。ほとんどのユーザーには、Ephemeral(一時的)とAutomatic(自動)ドメインの組み合わせが推奨されます。サーバーやDNSの設定は必要ありません。
デプロイメントタイプを選択。 一時的コントロールプレーンはワークステーション上で実行され、セキュアトンネルを介してインターネット経由でアクセス可能です。永続的コントロールプレーンは、管理下の専用インターネット接続サーバー上で実行されます。
ドメインを選択。 Automaticを選択すると、MESHが公開HTTPSアドレスをプロビジョニングします。Manualを選択すると、独自のドメインを使用できます。
APIキーを入力。 Automaticドメインを選択した場合、APIキーの入力を求められます。これはBarghestチームから提供されます。アクセスをリクエストするにはお問い合わせください。
設定を確認。 MESHが起動する前に生成された設定を確認します。
これらの設定が正しくない場合、またはセットアップが中断された場合は、.envを削除し、task controlPlaneを再実行して最初からやり直してください。
CONTROL_PLANE_TYPE=Ephemeral
PROXY_DOMAIN_TYPE=Automatic
MESH_SUBDOMAIN=<ランダム10文字のスラッグ>
FRP_AUTH_TOKEN=<シークレットトークン>
CONTROL_PLANE_URL=https://<スラッグ>.tunnels.meshforensics.app
LOGIN_URL=https://<スラッグ>.tunnels.meshforensics.app
コンテナが起動し、APIキーが生成されます。 すべてのサービスが正常になると、MESHはWeb UIにログインするためのワンタイムAPIキーを表示します。
Control plane API key (enter this in the web UI to log in):
<シークレットAPIキー>
コントロールプレーンのURLにアクセスし、プロンプトが表示されたらAPIキーを入力してログインします。
https://<スラッグ>.tunnels.meshforensics.app
Web UIはHTTPS経由で提供され、Let's Encryptによって自動的に発行された証明書が使用されます。
[!IMPORTANT] デフォルトのACLでは、各ネットワーク内のノードが相互に通信できます。 本番環境では制限的なポリシーを使用してください。ACLタブで変更できます。
MESHネットワークの準備が整い、ノードを受け入れる準備ができました。
ノードの登録とフォレンジックワークフローについては、ドキュメントを参照してください。
task downはMESHネットワークを破棄し、すべてのユーザーを切断します。EphemeralデプロイメントとAutomaticドメインを選択した場合、これらとすべての痕跡は削除され、アクセスできなくなります。
MESHはTailscaleプロトコルを大幅に改変したフォークですが、Tailscaleインフラストラクチャは必要ありません。
ピアツーピアのエンドツーエンド暗号化チャネルを確立するために、UDPホールパンチングが使用されます。UDPが利用できないかブロックされている場合は、E2EE HTTPsリレー(DERPリレー)にフォールバックします。DERP(Designated Encrypted Relay for Packets)DERPプロトコルサーバーは、直接ピアツーピア接続が確立できない場合にノード間のトラフィックを中継します。
MESHも同じモデルに従います。デフォルトでは、オペレーターが独自のDERPインフラストラクチャを設定していない場合(MESHのコントロールプレーンを使用して設定可能)、MESHはTailscaleの公開DERPサーバーを使用して、特に制限の厳しいネットワーク環境でも信頼性の高い接続性を確保します。ただし、MESHはTailscaleインフラストラクチャを必要としません。オペレーターはコントロールプレーン(組み込みのDERP実装を含む)を介して独自のDERPサーバーをデプロイおよび使用できます。これにより、必要に応じてMESHを完全にセルフホストできます。
DERPサーバーは純粋にトランスポートリレーとして機能します。デバイス間の接続性を促進しますが、交換されるデータ(エンドツーエンドで暗号化されたまま)を可視化することはできません。
機能強化には以下が含まれます(ただしこれらに限定されません):
コントロールプレーンは、ピア発見と鍵交換のみを担当します。 フォレンジックトラフィックは、可能な限りエンドポイント間で直接流れます。
従来のVPNやハブアンドスポークアーキテクチャには次のような問題があります:
MESHは調整とデータ転送を分離します:
MESHは、恒久的なエンタープライズネットワーキングではなく、一時的でリスクの高い環境向けに最適化されています。
android-client — AndroidエンドポイントAPKcontrol-plane — 調整サーバーanalyst — アナリストCLIクライアントワークフロー:
mesh-analyst-clientにミラーリングします。mainではなく明示的なバージョンタグに依存する必要があります。MESHはGNU Affero General Public License v3.0以降(AGPL-3.0-or-later)の下でライセンスされています。
本ソフトウェアの一部はTailscaleの派生作品であり、TailscaleはBSD 3-Clause Licenseの下でライセンスされています。元のTailscaleの著作権表示およびライセンスは、BSD-3-Clauseの要件に従って保持されます。AmneziaWG/WireguardコードはMITライセンスの下でライセンスされています。詳細は.licenses/を参照してください。
BARGHESTによるすべての修正および追加は、Copyright(c)BARGHESTであり、AGPL-3.0-or-laterの下でライセンスされています。
WireGuardはJason A. Donenfeldの登録商標です。