JPCERT/
今回の報告に先立ち、JPCERT/
JPCERT/
アプリの配布ファイルを解析し、APIの脆弱性を探る
Androidアプリは、APIを通じてサーバーとデータをやり取りする。攻撃者は、アプリの配布ファイルであるAPKを解析し、アプリの接続先や通信処理を調べる。こうしたアプリ解析を手がかりとするサーバーへの攻撃については、NICTも10月13日に注意を呼びかけている。
調査対象のサーバーの一つには、日本以外の地域向けアプリが保存されていた。そこには、攻撃者がAPKを解析し、関連するAPIにSSRFなどの脆弱性がないか調べた痕跡が残っていた。SSRFでは、攻撃者がURLの内容を取得する機能などを悪用し、サーバーに意図しない宛先へアクセスさせる。
同じサーバーでは、HTTPステータスコード302のリダイレクト応答を返すPythonスクリプトも見つかった。この応答は別のURLへのアクセスを促すもので、外部URLを読み込むサーバーが従うと、最初に指定されたURLとは異なる宛先へアクセスする。JPCERT/
Flutterアプリでも、埋め込まれた秘密情報を抽出される恐れ
別のサーバーからは、複数のAPKとともに、アプリ解析に使うBlutterやjadxに関連するファイルが見つかった[1]。
Blutterは、アプリ開発フレームワークFlutterで作られたアプリに含まれる、コンパイル済みのDartコードを解析する。JPCERT/
アプリに共通の秘密鍵やAPI認証用の秘密情報が入っていると、攻撃者がそれらを抽出し、正規アプリを介さずにAPIリクエストを生成する恐れがある。
アプリ内の秘密情報を見直し、サーバー側で権限を確認
こうしたリスクに対し、JPCERT/
サーバー側での認証・
APIの不正利用対策としては、一定時間内に受け付けるリクエスト数を制限し、異常なリクエストを監視する。外部URLの内容を取得するAPIについては、アクセス先を制限するとともにリダイレクト後の宛先も検証するよう呼びかけている。
先行する10月8日の注意喚起では、非公開APIを含む各APIエンドポイントでアクセス制御を行い、API利用者やトークンの権限を必要最小限にするよう案内している。トークンには有効期限を設け、不要になったものや漏えいが疑われるものは速やかに失効できるようにする。
点検対象は一般利用者向けサービスに限らない。同注意喚起によると、従業員向けシステムやBIツールなどでも被害が起きている。JPCERT/