
ブラックボックスiOS向けセキュリティプロファイリング
iOSアプリケーションが実行時に行っている動作を理解し、潜在的なセキュリティ問題の特定を支援するブラックボックスツールです。
簡単な紹介は http://isecpartners.github.io/Introspy-iOS/ をご覧ください。
これはIntrospy-iOSトレーサーのリポジトリです。
トレーサーは脱獄済みデバイスにインストールでき、デバイス上で動作するアプリケーションによって呼び出されるセキュリティ上重要なiOS APIをフックしてログに記録します。このツールは、関連するAPI呼び出しの詳細(引数や戻り値を含む)を記録し、データベースに保存します。 さらに、呼び出しはコンソールにも送信され、リアルタイム分析が可能です。
データベースはその後、Introspy-Analyzer(ログに記録された関数呼び出しのリストとアプリケーションに影響する潜在的な脆弱性のリストを含むHTMLレポートを生成するPythonスクリプト)に入力できます。Introspy-Analyzerは別のリポジトリでホストされています: https://github.com/iSECPartners/Introspy-Analyzer
ユーザーはまず、プロジェクトページのリリースセクションから最新のプリコンパイル済みDebianパッケージをダウンロードしてください: https://github.com/integrity-sa/Introspy-iOS/releases または過去のリリースについては: https://github.com/iSECPartners/Introspy-iOS/releases
トレーサーは脱獄済みデバイスでのみ動作します。Cydiaを使用して、以下のパッケージがインストールされていることを確認してください:
Debianパッケージをダウンロードしてデバイスにコピーし、インストールします:
scp <package.deb> root@<device_ip>:~
ssh root@<device_ip>
dpkg -i <package.deb>
デバイスをRespring(再起動)します:
killall -HUP SpringBoard
デバイスの設定に2つの新しいメニューが追加されます。Appsメニューではプロファイリングするアプリケーションを選択でき、SettingsメニューではフックするAPIグループを定義します。
最後に、監視したいアプリを強制終了して再起動します。
dpkg -r com.isecpartners.introspy
トレーサーは、アプリケーションによるAPI呼び出しに関するデータをデバイス上のデータベース(実際には各アプリケーションのフォルダ内に1つずつ)に保存します。このデータベースは、Introspy-Analyzerと呼ばれるPythonスクリプトに入力することで、トレーサーが収集したデータを確認しやすくするHTMLレポートを生成できます。このスクリプトは、危険なAPI呼び出しを分析してフラグを立てることで、iOSアプリケーション内の脆弱性特定プロセスを容易にします。
Introspy-Analyzerは別のリポジトリでホストされています: https://github.com/iSECPartners/Introspy-Analyzer
ほとんどのユーザーは、プリコンパイル済みのDebianパッケージをダウンロードしてインストールするだけで十分です。ただし、ライブラリの機能を変更したい場合は、自分でDebianパッケージをビルドする必要があります。
ビルドにはTheosスイートが必要です(https://github.com/theos/theos から入手可能)。Theosの一般的なインストール手順については、https://github.com/theos/theos/wiki/Installation を参照してください。
また、環境変数 $THEOS を設定し、エクスポートしてmake実行時にその値が参照されるようにする必要があります。
export THEOS=/absolute/path/to/theos
export PATH=$THEOS/bin:$PATH
その後、以下のコマンドでパッケージをビルドできます:
make package
Debianパッケージの作成に成功したら、環境変数 THEOS_DEVICE_IP にデバイスのIPアドレスを指定することで、Theosを使用してパッケージを自動的にインストールし、デバイスを再起動できます:
export THEOS_DEVICE_IP=192.168.1.127
make install
./LICENSE を参照してください。