mitmproxyによるトラフィック分析:デバッグとセキュリティのための完全ガイド
この記事では、HTTP/HTTPS トラフィックを分析するための Mytemproxy ツールと、セキュリティおよびデバッグにおけるそのアプリケーションについて説明します。.

mitmproxyによるトラフィック分析:デバッグとセキュリティのための完全ガイド

この記事では、HTTP/HTTPSトラフィックの分析とデバッグに使用されるmitmproxyツールをレビューします。インストールと設定からセキュリティのヒントや実用的な使用方法まで、このガイドはトラフィックを効果的に管理するのに役立ちます。.
0 株式
0
0
0
0

 

導入

mitmproxy は、トラフィックを検査、操作、分析するための強力かつ柔軟なツールです。 HTTP/HTTPS 開発環境では、モバイルアプリケーションやWebアプリケーションのセキュリティテストとデバッグに使用されます。このガイドでは、ステップバイステップの実装、実用的な例、一般的な設定( 透過プロキシ)、セキュリティのヒント、スケーラビリティの方法について説明します。.

この記事は、サイト管理者、開発者、DevOps、セキュリティ チームを対象に書かれており、例と実行可能な Linux コマンドを提供します。.

 

mitmproxy を使用してトラフィックを分析する理由は何ですか?

mitmproxy ローカル証明書をインストールすることで、TLS 暗号化されたリクエストとレスポンスを表示する機能 (MITM CA) を実行します。この機能は、API のデバッグ、アプリケーションの動作の分析、セキュリティ テスト、トラフィックの記録/再生に最適です。.

セットにはツールが含まれています mitmproxy (相互の作用)、 mitmdump (スクリプトとバックエンド用)と ミットウェブ (Web インターフェース)。.

Pythonスクリプトはフィルタリング、ログ記録、ペイロードの変更を自動化できます。このツールは ドッカーシステムドiptables/nftables 互換性があり、 明示的な または 透過プロキシ そうです。.

 

実用的なユースケース

 

APIとモバイルのデバッグ

JSON の問題、CORS エラー、または OAuth 認証に異議を唱えるには、モバイルとサーバーの間に mitmproxy を配置し、リクエスト/レスポンスを監視できます。.

簡単な方法: クライアントをmitmproxyサーバーのIPアドレス(デフォルトポート)に設定します 8080) にアクセスし、デバイスに CA 証明書をインストールします。.

 

侵入テストとセキュリティ評価(法的原則に準拠)

ペンテストでは、mitmproxy は論理攻撃、トークン リーク チェック、TLS 分析を可能にします。. 必ず書面による契約と許可を得てください。 また、許可なく機密データを収集することは避けてください。.

 

交通記録と再生

エラーを再現したり負荷テストを行うには、キャプチャしたトラフィックを サーバーリプレイ 再生してサーバーまたはクライアントの動作を再評価します。.

 

インストールとツール

 

Debian/Ubuntuへの基本インストール

pip でインストールします (最新バージョンの場合は推奨):

pip3 install mitmproxy

パッケージからのインストール(簡単ですが古いです):

sudo apt update
sudo apt install mitmproxy

 

高速実行

3つの主なツール:

  • mitmproxy — コンソールインタラクティブインターフェース

  • mitmdump — スクリプトやバックエンドの記録に適しています

  • ミットウェブ — グラフィカルUIを備えたWebインターフェース

実行例:

mitmweb --listen-port 8080 --showhost

 

Dockerで実行

docker run --rm -p 8080:8080 -p 8081:8081 -v $(pwd)/certs:/home/mitmproxy/.mitmproxy mitmproxy/mitmproxy mitmweb --web-host 0.0.0.0

 

明示的なプロキシとして設定する(クライアント構成)

一般的な手順:

  1. mitmproxyを実行します:

    mitmproxy --listen-port 8080
  2. CA 証明書の生成とインストール:

    mitmproxyを実行した後、CAは ~/.mitmproxy/ が配置されます(ファイル mitmproxy-ca-cert.pem).

    クライアントブラウザまたはオペレーティングシステムで、証明書を次のように表示します。 信頼 インストール (Windows: MMC > 証明書、macOS: キーチェーン、Android: 設定 > セキュリティ > ストレージからインストール)。.

 

透過プロキシモード(手動クライアント構成なし)

クライアント側でプロキシ設定ができない環境(IoTデバイスや内部ネットワークなど)の場合は、 透明 このモードでは、トラフィックルーティングが必要です。 iptables/nftables/TPROXY また、カーネルで IP 転送が有効になっています。.

 

IP転送を有効にする

sudo sysctl -w net.ipv4.ip_forward=1

 

HTTP/HTTPSをポート8080にリダイレクトするiptablesの例

TCP ポート 80 と 443 を同じマシンのポート 8080 に転送します (ローカル トラフィック用)。

sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080
sudo iptables -t nat -A PREROUTING -p tcp --dport 443 -j REDIRECT --to-port 8080

 

透過モードでmitmproxyを実行する

mitmproxy --mode transparent --listen-port 8080

注: 透過モードでのHTTPSトラフィックの場合、クライアントにCAをインストールする必要があります。ネットワークエッジでのスケーラブルな実装には、 TPROXY + nftables クライアントの元の IP を保持するために使用します。.

 

ストリームを記録、保存、変換する

 

mitmdumpで記録する

mitmdump -w flows.mitm

 

記録されたファイルの読み取り

mitmproxy -r flows.mitm

 

HAR/pcapに変換する

mitmproxy/mitmdump にはエクスポート機能があります (mitmweb にはエクスポート HAR オプションがあります)。.

pcap の場合、tcpdump を同時に実行し、その後 pcap を使用して Wireshark を分析できます。

sudo tcpdump -i eth0 -w capture.pcap port 80 or port 443

WiresharkでTLSを分析する必要がある場合、ブラウザを制御できる場合は、 SSLキーログファイル クライアント側のキーを生成し、Wireshark に渡すことを有効にします。.

 

スクリプトとアドオン

mitmproxyはPythonと統合されており、プラグインを作成できます。次の例は、JSONレスポンスボディのログ記録と変更を示しています。.

from mitmproxy import http
import json

def response(flow: http.HTTPFlow):
    if "api.example.com" in flow.request.pretty_host():
        # log URL
        print(flow.request.url)
        # modify JSON response
        if "application/json" in flow.response.headers.get("content-type", ""):
            data = json.loads(flow.response.get_text())
            data["injected"] = True
            flow.response.set_text(json.dumps(data))

アドオンを実行します:

mitmdump -s modify_response.py

 

フィルターとフロー検索

フィルターの便利な例:

  • 特定のドメインへのリクエストのみを表示します。 ~d example.com

  • 5xx エラーのある応答のみを表示します: ~s 500-599

設定を使用して mitmproxy を実行する例:

mitmproxy --set stream_large_bodies=2m --showhost

 

TLS分析と技術詳細

mitmproxyは TLS クライアントHello暗号スイート、および SNI 指紋採取の手続きを支援します。.

開発環境でのTLSの完全な分析のために、CAをインストールして収集します。 JA3 または UA検出器 それは動作します。.

 

スケーラビリティとパフォーマンス

mitmproxy これは Python に基づいており、負荷の高いワークロードには適切なハードウェアまたはクラスターで実行する必要があります。.

大規模な場合: 10 Gbps ポートを備えたクラウド サーバーなど、強力なネットワークを備えた専用サーバーまたはクラウド インスタンスを使用します。.

攻撃耐性が必要な実稼働環境では、ウイルス対策サーバーを使用します。DDoS ロードバランサーです。当社は 世界85か所以上の拠点 エッジ ポイントに展開できるため、取引やゲームにおける遅延を削減するのに役立ちます。.

 

運用上のセキュリティとプライバシー

明示的な許可を得たネットワークでのみ分析を実行してください。法的同意なしにトラフィックを記録することは犯罪です。.

CA 秘密キーをハードウェアまたはキー マネージャーに保存し、アクセスを制限します。.

ログには機密データ (トークン、Cookie) が含まれる場合があります。保持ポリシーを指定して、ログに暗号化を適用します。.

機密性の高い環境(支払い、カード)の場合、ルール PCI/DSS MITM ツールはテスト段階でのみ使用してください。.

取引やゲーム分析に使用する場合は、適切な SLA と DDoS 対策を備えた専用の取引 VPS またはゲーム VPS を使用してください。.

 

実例: モバイル、API、リプレイ

 

モバイルアプリのデバッグ

  1. ラップトップで mitmproxy を実行します。

    mitmweb --listen-host 0.0.0.0 --listen-port 8080
  2. ノートパソコンを同じWi-Fiネットワークに接続します(例:IP) 192.168.1.10.

  3. 携帯電話のWi-Fi設定でプロキシを手動に設定し、IPアドレスを設定します 192.168.1.10 およびポート 8080 置いてください。.

  4. mitmproxy 証明書を電話にインストールします。.

  5. mitmweb 上のトラフィックを表示およびフィルタリングします。.

 

テスト用に API トラフィックを記録して再生する

録音:

mitmdump -w api_flows.mitm

放送:

mitmdump --server-replay api_flows.mitm --server-replay-nopop

 

他のツールとの統合(Wireshark、Burp、CI)

tcpdump を使用して pcap をキャプチャし、Wireshark で分析します。.

Mitmproxy は、Burp やその他のアナライザーのトラフィック プリプロセッサとして使用できます。.

CI/CD の場合: mitmdump を使用してトラフィック サンプルをキャプチャし、統合段階で再生して実際の状況をシミュレートすると便利です。.

 

アプリケーション別の最適な構成

取引の場合: 低レイテンシのVPS、取引所に近いサーバー、BGPネットワーク、適切なCDN。専用の取引VPSを使用してmitmproxyをテストモードで実行し、別途ログツールを使用することで、取引実行エンジンへの干渉を防ぎます。.

ゲームの場合: 低pingのゲーミングVPS。mitmproxyのみ対応。 TCP/HTTP サポートされています。UDPを分析するには、次のような他のツールを使用する必要があります。 tcpreplay/ワイヤーシャーク そして タップ 使用。.

AI/レンダリングの場合: mitmproxy はモデル API のデバッグに役立ちます。負荷の高いネットワーク処理の場合は、グラフィックス サーバー (GPU クラウド) を使用し、mitmproxy を別のコンピューティング サーバーに配置します。.

 

分析を行う前に、必ずサービス所有者またはユーザーから書面による許可を得てください。.

カード情報、パスワード、トークンなどのデータは安全に保管し、使用後は削除する必要があります。.

実稼働環境では、悪用を防ぐために保護されたサーバーと DDoS 対策ソリューションを使用します。.

 

結論と実践的な提案

mitmproxy によるトラフィック分析は、デバッグ、セキュリティテスト、トラフィック分析のための柔軟なツールです。シンプルなインストール、Python スクリプトの作成、そして記録/再生機能により、開発、QA、そして一部のセキュリティシナリオで非常に役立ちます。.

大規模な生産や分析には、強力なネットワーク、DDoS 対策を備え、ユーザーに近い場所に展開されたサーバーを使用します。.

 

よくある質問

あなたも気に入るかもしれない
cPanel の技術的および高度なトピック

技術的なトピックと高度なcPanelツール

ホスティング管理にcPanelをご利用の場合、ファイルマネージャーやメールといった一般的な機能については既にご存知でしょう。しかし、cPanelには、ウェブサイトの速度、セキュリティ、安定性を大幅に向上させる、より高度で技術的な機能も備わっています。.
アマゾン AWS ランバダ

AWS Lambda — サーバーレスコンピューティング

スピードとスケーラビリティが最優先される今日の世界において、サーバーレスサービスはソフトウェアアーキテクチャの進化において重要な役割を果たしています。AWS Lambdaは、この分野におけるAmazonの最も重要なサービスの一つであり、開発者はサーバーを管理することなくコードを実行できます。Lambdaを使えば、サーバーのセットアップ、サポート、保守は不要になります。コードを書くだけで、あとはAmazonが全て引き受けます。.
نحوه بکاپ‌گیری دستی از میکروتیک با ترمینال به‌صورت قدم‌به‌قدم

نحوه بکاپ‌گیری دستی از میکروتیک با ترمینال به‌صورت قدم‌به‌قدم

در این راهنما، نحوه بکاپ‌گیری دستی از میکروتیک به‌صورت قدم‌به‌قدم با استفاده از ترمینال آموزش داده شده است. شما با روش‌های مختلف ایجاد بکاپ، اکسپورت فایل‌های سرتیفیک و نکات امنیتی آشنا خواهید شد.