MASTG-TECH-0074 情報収集 - ネットワーク通信 (Information Gathering - Network Communication)

遭遇する可能性のあるアプリのほとんどはリモートエンドポイントに接続します。動的解析 (トラフィックのキャプチャと解析など) を実行する前でも、アプリケーションが通信することにことになっているドメインを列挙することで、初期入力やエントリポイントを取得できます。

通常、これらのドメインはアプリケーションのバイナリ内に文字列として保存されます。(前述のように) 文字列を取得するか、Ghidra のようなツールで文字列をチェックすることで、ドメインを抽出できます。後者の方法には明らかな利点があります。相互参照をチェックすることで、各ドメインがどのようなコンテキストで使用されているかを確認できるため、コンテキストを提供できます。

ここからは、この情報を使用して、後の解析に役立つ可能性のあるより多くの洞察を導き出すことができます。たとえば、ドメインをピン留めした証明書と照合したり、ドメイン名をさらに偵察してターゲット環境についてさらに詳しく知ることができます。

安全な接続の実装と検証は複雑なプロセスになる可能性があり、考慮すべき要素が多くあります。たとえば、多くのアプリケーションは、XMPP やプレーン TCP パケットなどの HTTP とは別のプロトコルを使用したり、MITM 攻撃を阻止するために証明書のピン留めを実行します。

多くの場合、静的解析の頼るだけでは十分ではなく、より信頼性の高い結果が得られる (たとえば、傍受プロキシを使用する) 動的な代替手段と比較して、非常に非効率的になる可能性があることを覚えておいてください。このセクションでは、表面的なことしか触れていません。"iOS セキュリティテスト入門" の章の 基本的なネットワークモニタリング/スニッフィング (Basic Network Monitoring/Sniffing) を参照し、詳細については "iOS のネットワーク通信" の章のテストケースを確認してください。

Last updated