frida-data-extraction について
許可された対象の実行時データを観察するための Frida ガイドです。Android、iOS、ネイティブバッファを扱い、データの出所確認や機密情報のマスキング、対象の動作を変えないことを重視します。
主な機能
- 01Android・iOS の主要な観察対象
- 02ネイティブバッファのダンプ例
- 03ユーザー操作に紐づくログ
- 04機密データのマスキング指針
- 05データの出所とエンコーディングの確認
活用シーン
- 01アプリのリクエストやシリアライズデータの観察
- 02設定、データベース、ファイルアクセスの確認
- 03許可されたテストでの実行時データ分析
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ rudra-ravi/ frida-skills --skill frida-data-extractionインストール後、Claude Code で/frida-data-extractionを入力して読み込まれたか確認します。
同梱ファイルagents/openai.yaml
詳細
Frida によるデータ抽出
チェックを回避するのではなく、実行時のデータを観察することが目的の場合に、このスキルを使用してください。
ルール
- ユーザーがテストを許可されているシステムからのみデータを抽出してください。
- ユーザーが明示的に必要としていない限り、共有ログに秘密情報を出力しないでください。
- トークン、Cookie、パスワード、秘密鍵をマスキングした構造化ログを優先してください。
- コールバック内でポインターと retval のデータをコピーしてください。Frida はコールバックオブジェクトを再利用することがあります。
Android の境界
Java.perform(() => {
const Base64 = Java.use("android.util.Base64");
Base64.encodeToString.overload("[B", "int").implementation = function (bytes, flags) {
const out = this.encodeToString(bytes, flags);
console.log("Base64.encodeToString ->", out);
return out;
};
});
優先度の高い対象:リクエストビルダー、JSON シリアライザー、SharedPreferences、SQLite API、キーストアラッパー、暗号 API、WebView ブリッジ、ファイル I/O。
iOS の境界
優先度の高い対象:NSURLRequest、NSURLSession、NSJSONSerialization、Keychain ラッパー、NSUserDefaults、SQLite、CommonCrypto、ファイル API、ペーストボード。
ネイティブバッファー
function dump(ptr, len) {
if (ptr.isNull() || len <= 0) return;
console.log(hexdump(ptr, { length: Math.min(len, 256), ansi: false }));
}
データが有効なテキストの場合に限り、16 進数とテキストの両方を使用してください。バイナリーの暗号素材はテキストではないことがよくあります。
検証
- ログがユーザーの操作またはリクエストに関連付けられている。
- 各値の出所とエンコーディングが明確である。
- 必要でない限り、機密値がマスキングされている。
- 明示的に要求されていない限り、フックが対象の動作を変更しない。
参考資料
- Frida JavaScript API:https://frida.re/docs/javascript-api/
- Frida メッセージ:https://frida.re/docs/messages/
- OWASP MASTG Frida:https://mas.owasp.org/MASTG/tools/generic/MASTG-TOOL-0031/
コメント
Markdown 対応