証明書ピンニング
多くのアプリは自分が同梱した証明書しか信頼しません。プロキシ証明書に差し替えると、アプリは即座に気づいてエラーで落ち、何も復号できません。
証明書を差し替えることはしません。代わりにアプリ内部から平文を読むので、厳格なピンニングでも止められません。
キャプチャの難しさは、いつも普通のケースではなく、証明書ピンニング、プロキシを無視するアプリ、HTTP/3、独自プロトコルなどにあります。Trace Eagleにできることを紹介します。
多くのアプリは自分が同梱した証明書しか信頼しません。プロキシ証明書に差し替えると、アプリは即座に気づいてエラーで落ち、何も復号できません。
証明書を差し替えることはしません。代わりにアプリ内部から平文を読むので、厳格なピンニングでも止められません。
一部のアプリはシステムプロキシを完全に無視します。設定しても経由しないので、プロキシツールでは何も捕れません。
代わりにNICで捕まえます。アプリがプロキシを尊重するかどうかに関係なくトラフィックはそこにあり、自動で復号されます。
より多くのサービスが、異なるハンドシェイクでUDP上のHTTP/3を使うようになり、古いプロキシやキャプチャ専用のスニファでは扱えません。
ダウングレードキャプチャ、高再現パススルー、あるいは本物のH3復号で、QUICトラフィックを平文で表示します。
Android 7以降はユーザー証明書を信頼しなくなり、Android 14はシステムストアを書き込めない場所へ移したため、証明書のインストールはますます難しくなっています。
証明書不要のキャプチャ方式が複数。iOSは脱獄不要、Androidは証明書のインストール不要。
これらは独自のトラストストアを同梱し、システムに追加した証明書を無視するので、一般的なプロキシではやはり復号できません。
プロセス内部から平文を読むので、システムのトラストストアは関係ありません。
カスタムのバイナリプロトコルは、構造の見えない生バイトとして流れてきて、一般的なツールはただ眺めるだけです。
短いスクリプトでフレーミングを宣言すれば、フレーム単位で構造化されたフィールドに復元されます。
システムアプリや深く埋もれたプロセスは、プロキシもアプリ内部の読み取りも同じくブロックし、通信路には暗号文しか残りません。
システムレベルキャプチャが下層から平文を読み、他のツールが届かないところに届きます。
キャプチャは第一歩にすぎません。一日中やっていること、書き換え、差分、再送、負荷試験、サーバーの調査は、すべてツール内で完結します。
リクエストにブレークポイントを設定。飛行中に捕まえ、編集して通すか破棄し、サーバーの反応をその場で観察します。
コードに触れずにリクエストとレスポンスを変更。転送、ローカルへのマッピング、データのモック、ヘッダーと本文の編集で、結合テストやエッジケースのテストに。
任意のリクエストを手で組み立てるか編集して送信。動的な値が署名やタイムスタンプを再計算するので、署名付きAPIも本物として再送できます。
一連のリクエストを順に再送するか、1つを右クリックして負荷試験。QPS、並列数、そして低く偽らないp99末尾レイテンシ。
2つのリクエストやレスポンスを並べて表示。片方が成功し片方が失敗するとき、違いがひと目でハイライトされます。
独自や社内のバイナリプロトコルは、短いスクリプトでフレーミングを宣言すれば、読める構造化フィールドに復元されます。
JSON、フォーム、gRPCを認識して整形。gzip、brotli、チャンク転送は瞬時に展開され、意味不明な文字列が読めるようになります。
ホストをクリックすれば、所有者、位置、A〜Fの証明書グレード、技術スタック。IPとドメイン以上のすべてが、ひとつの場所に。
リクエストをcURL、Python、Goなどに変換。セッション全体をOpenAPI仕様に変換し、HARのインポートとエクスポートにも対応。
ネットワーク診断、プロセス特定付きのコネクション表、ポートスキャン、サブドメイン探索、DNSリーク検査、TLS監査を、いつでも手元に。