国立研究開発法人情報通信研究機構(NICT)は10月13日、国内で相次いでいる個人情報などの大量漏えいについて、その原因の一つとして、一般に公開されているAndroidアプリを解析し、得られた情報をもとにアプリの接続先のサーバを攻撃する手法を特定したと発表した。NICTの脅威情報分析チーム「LETTICE(レティス)」がこの手法を「A2B攻撃(App-to-Backend Attack)」と名付け、アプリを公開している事業者に向けて3種の対策をまとめた注意喚起を出した。総務省も同日、事業者や関係団体に対策の徹底を呼びかけた。
NICTは、アプリそのものに脆弱性(セキュリティ上の弱点)が無くても、裏側で動くサーバの認証や入力値の検証に不備があれば、不正アクセスや個人情報の漏えいにつながるおそれがあると指摘している。
アプリを「設計図」にしてサーバを狙う
スマートフォンのアプリの多くは、ログインの認証や会員情報の管理を、端末の中ではなく裏側のサーバ(バックエンドサーバ)で処理している。アプリとサーバの間で情報をやり取りする窓口をAPIと呼ぶ。
NICTが公表した詳細な注意喚起(PDF・全7ページ)によると、今回確認された攻撃では、攻撃者がまず、Google Playの日本地域で公開されているAndroidアプリを入手し、プログラムを解析する。そこから、アプリが通信するサーバの接続先、APIの構成、個々の機能を呼び出すアクセス先(エンドポイント)、通信に使うパラメータ、応答データの構造などを調べ上げる。そのうえで、サーバごとの構成やAPIの仕様に合わせた要求を送り、脆弱性を探して悪用するという。
NICTは、この攻撃の特徴を「不特定多数のサーバに同一の攻撃を試みるのでなく」、解析で得た情報をもとに標的ごとに攻撃内容を変えている点にあると説明する。事業者から見れば、公開していないつもりのサーバの内部仕様が攻撃者に知られ、自社システムの弱点を「ピンポイントで狙った攻撃」を受けることになる。
狙われるのは、ログインせずに使えるAPIだけではない。利用者アカウントで認証した後に使えるAPIも対象になる場合があるとしている。一般の利用者向けに公開している機能であっても、サーバ側のアクセス制御に不備があれば悪用されうるということだ。
主に狙われる4種類の脆弱性
注意喚起は、今回の攻撃で主に探索・悪用の対象になっている脆弱性として次の4種類を挙げた。
1つ目は「SSRF(サーバー・サイド・リクエスト・フォージェリ)」で、外部からの要求によってサーバに本来意図しない通信をさせるもの。外から直接入れない内部のシステムや、クラウド環境の設定情報(メタデータ)に到達され、機密情報を取られるおそれがある。2つ目の「RCE(リモート・コード・エクセキューション)」は、サーバ上で不正なコマンドやプログラムを実行できてしまう脆弱性で、情報の窃取やデータの改ざんにつながる。
3つ目の「SQLインジェクション」は、APIへの入力を通じてデータベースに不正な命令を実行させるもので、保存された個人情報の不正取得や認証の回避につながる。4つ目の「IDOR」(BOLAとも呼ぶ)は、利用者IDなどの識別子を指定する際に、要求した人にそのデータを見る権限があるかを確かめていないことで起きる。NICTは例として、自分の情報を取得するAPIで、要求に含まれる識別子を書き換えるだけで他人の情報が取れてしまうケースを挙げ、識別子が推測しやすい連番などの場合は「大量の情報漏洩につながるおそれ」があるとした。
NICTはさらに、AIを使ったプログラム解析や脆弱性探索の効率化によって、こうした攻撃が「より多くのシステム」に及ぶ可能性にも注意を促している。
事業者に求めた3種の対策
対策は「侵害の確認」「脆弱性の点検」「暫定的な緩和策」の3種に分けて示した。
侵害の確認では、アプリが使うAPIに加え、サブドメイン、旧バージョンのAPI、検証環境、クラウド上の公開サービスまで含めて、インターネットに公開しているものを洗い出すよう求めた。そのうえで、2026年8月以降のアクセスログやAPIのログ、認証ログを調べ、可能であればそれ以前の記録も確認するよう勧めている。認証なしでの大量取得、連番IDを使ったアクセス、他の会員の情報の閲覧・変更といった通常と異なる操作が無いかも点検項目に入れた。注意喚起には、攻撃に関連する「侵害指標(IoC)」として、IPアドレス3件も掲載されている。
脆弱性の点検では、前述の4種類に加え、認証トークンの不正発行や偽造といった認証・セッション管理の不備、クラウドのストレージなどに本来許されない権限でアクセスできてしまう設定不備も重点項目とした。
暫定的な緩和策としては、国外や不要なアクセス元からの通信の一時制限、不要なAPIや検証環境の停止、アクセス頻度の監視とレート制限、漏えいが疑われる認証情報の無効化・再発行を挙げた。脆弱性をすぐに直せず、制限をかけてもリスクを十分に下げられない場合は、該当するAPIや機能、必要に応じてサービス全体の一時停止も検討するよう求めている。
恒久的な対策については、攻撃者はアプリを介さずにAPIを直接操作できることを前提に、アプリ側の制御だけに頼らず、サーバ側で認証・認可や入力値の検証を行うことが重要だとした。NICTは「公開アプリが解析されること自体を完全に防ぐことは困難」とも明記している。
10月9日の注意喚起からの続報
今回の発表は、国が10月上旬に相次いで出した注意喚起の延長線上にある。総務省は10月9日、大量の個人情報を扱う事業者のシステムが侵入されデータが窃取される事案が相次いでいるとして、内閣官房国家サイバー統括室の注意喚起と同じ内容を所管事業者と関係団体に伝えていた(経緯は「大規模漏えい相次ぎ、国と専門機関が3日で注意喚起 委託先の点検や不要データの消去を要求」)。
9日の段階では、迅速な脆弱性対応や多要素認証の導入など一般的な対策の徹底を求める内容だった。今回のNICTの発表は、一連の漏えいについて具体的な攻撃手法の一つを示した点が異なる。NICTも発表の背景として、漏えい事案の攻撃手法には「不明な点も多く」、実態の解明が急務だったと説明している。
総務省は13日付の注意喚起で、アプリ利用者側からの通信は「信頼できるものとは限らない」ことを前提に、サーバ側で適切な認証・認可や入力値の検証を行うことが重要だと強調した。同様の問題はAndroidアプリに限らず、iOSアプリやWebサービスでも起こりうるとして、幅広い事業者に対策を求めている。
LETTICEは、NICTのサイバーセキュリティネクサス(CYNEX)で2024年2月に発足した脅威情報の共同分析チームで、CYNEXに参画する組織の有志で構成される。今回の注意喚起は、同チームが独自に実施した調査・分析に基づくものだという。
なお、NICTの発表は攻撃手法を特定したことを明らかにしたもので、どの組織の漏えい事案がこの手法によるものかは示していない。
