コンテンツにスキップ

端末のセキュリティ機能(SELinux / dm-verity 等)の調査結果

本ドキュメントでは、対象のAndroid端末におけるシステムレベルのセキュリティ機能(SELinux、dm-verity、ブートローダーのロック状態など)の調査結果をまとめる。

1. 調査結果の概要

結論:この端末のセキュリティ機能は非常に緩く(無効化されており)、システム改造・解析を行う上で非常に自由度が高い状態である。

システム領域の改ざん検知や権限ブロックなどが働いていないため、root権限さえ確保できれば、システムファイルの直接編集、不要な標準アプリの削除、各種検証などが制限なく行える。

2. 各セキュリティ機能の詳細

adb shell経由で各種プロパティや状態を確認した結果は以下の通りである。

2.1. SELinux (Security-Enhanced Linux)

  • 状態: Permissive(寛容モード)
  • 確認コマンド: getenforce
  • 影響: 本来、ポリシーに違反するアクセスをブロックする機能であるが、Permissiveモードでは「ルール違反をログに記録するのみ」であり、実際のアクセスブロックは行われない。これにより、権限周りのエラー(Permission Deniedなど)でシステムへの操作が弾かれるケースはほぼない。

2.2. dm-verity (改ざん検知)

  • 状態: Disabled(無効)
  • 確認プロパティ: [ro.boot.veritymode]: [disabled]
  • マウント状態: /system/vendor等のマウントにdm- (device-mapper) を介したものが存在しない。
  • 影響: システム領域(/systemなど)の改ざんをブロック・検知する機能が無効になっている。そのため、mount -o rw,remount /system で書き込み可能にしてファイルを直接編集・差し替えても、次回起動時に文鎮化(ブートループ等)することはない。

2.3. ブートローダーのロック状態

  • 状態: アンロック済み(Unlocked)
  • 確認プロパティ: [ro.boot.verifiedbootstate]: [orange]
  • 影響: AndroidのVerified Boot (AVB) のステータスが orange であることは、ブートローダーがアンロックされていることを意味する。メーカーの公式署名がないカスタムイメージ(boot.imgやrecovery.img)をフラッシュして起動させることが可能な状態である。

2.4. その他のセキュリティ関連プロパティ

  • ユーザーデータ領域の暗号化: 有効 ([ro.crypto.state]: [encrypted]) ※ Android標準仕様であり、システム改造自体を妨げるものではない。
  • adbのセキュア状態: 有効 ([ro.secure]: [1]) ※ ただし、suバイナリなどが存在するか、root権限を取得できれば問題なく回避可能。

3. 今後の方針・影響

  • 開発、デバッグ、カスタマイズの障壁となるカーネル/OSレベルの制限はほぼ解除された状態である。
  • システムアプリの無効化・差し替えや、/system へのバイナリ・スクリプトの配置等が問題なく実行可能。
  • セキュリティ機能がシステムを保護していないため、誤ったファイルを書き換えた際のリスク(起動不可になるリスク)は自己責任となる。変更前には必ず対象ファイルのバックアップを取るよう留意すること。