サイバーセキュリティ研究者によって、KernelSUバージョン0.5.7において攻撃者がそのマネージャーアプリケーションになりすまし、ルートアクセスを取得できる脆弱性が発見されました。
ZimperiumのzLabs研究者によると、この脆弱性は、しばしば正式なセキュリティ監査なしに独立した開発者によって構築されるルート化や脱獄フレームワークの継続的な弱点を浮き彫りにしています。
水曜日に公開されたチームの分析では、攻撃者が認証の設計上の欠陥を悪用して保護機能を回避する方法が示されています。
KernelSUは、APatchやSKRootなどのツールと同様に、通常Androidカーネルのパッチ適用を通じてルートアクセスを取得し、主要なカーネル関数にフックして任意のコードを実行します。これにより強力な管理機能が可能になりますが、同時に危険な攻撃対象領域も生まれます。
ルート化フレームワークは一般的に、次の2つの認証方法のいずれかを使用します:
-
パスワードベース:パスワードが弱かったり、検証が不十分な場合があり、APatchやSKRootで見られます
-
パッケージベース:カーネルがマネージャーアプリのパッケージ名や署名を信頼する方式で、KernelSUで採用されています
KernelSUのパッケージベース方式は、プロセスのファイルディスクリプタテーブル内で最初に一致するAPKファイルをチェックする仕組みに依存していました。攻撃者はファイルディスクリプタの順序を操作し、正規のマネージャーのAPKを最初に提示することで署名チェックを回避できました。
Androidのセキュリティリスクについて詳しくはこちら:大規模な悪意のあるアプリキャンペーンがAndroidセキュリティを回避
このエクスプロイトを実行するには、攻撃者のアプリが正規のマネージャーより先に起動する必要があり、例えば再起動後などに、RECEIVE_BOOT_COMPLETEDパーミッションを利用して自動的にトリガーすることが可能です。タイミングの制約はあるものの、現実的な条件下でも攻撃は実用的でした。
Zimperiumは、同様の脆弱性が広く存在していると指摘し、よくある問題として以下を挙げています:
-
ユーザーアプリとカーネルモジュール間の認証の欠如または弱さ
-
検証されていないユーザースペースからの入力への過度な依存
-
安全でない通信チャネル
-
アプリとルートレベル機能間の権限分離の不十分さ
過去の例としては、任意のアプリが特権操作を実行できたAPatchの脆弱性や、MagiskのCVE-2024-48336(ローカルアプリがGoogle Mobile Servicesになりすまして密かにルートアクセスを取得できる)が挙げられます。
研究者らは、ほぼすべてのルート化フレームワークがそのライフサイクルの中で重大な脆弱性を経験しており、その主な理由はユーザースペースからカーネルの挙動を変更する複雑さと、構造化されたセキュリティレビューの欠如にあると結論付けました。
画像クレジット:valiantsin suprunovich / Shutterstock.com
翻訳元: https://www.infosecurity-magazine.com/news/kernelsu-flaw-android-apps-root/