【保存版】格安Android端末を買ったら最初にやるセキュリティ確認(Mac+ADBコマンド集)

chinese-tablet-security-adb Uncategorized
chinese-tablet-security-adb

安い(中華)タブレット、“用途を割り切るなら”使えます。
ただし、メイン端末として安心して使えるか?と言われると話は別で、「不安の正体」を潰していく必要があります。

よくある不安はだいたいこのへん。

「裏で何か動いてそう」
「消せないアプリが気持ち悪い」
「カメラが勝手に撮影されてるとか、データが抜かれてるとか…そういう噂もあるし」

先に言っておくと、外から見て「本当に撮られているか」「本当に抜かれているか」を100%証明/否定するのは難しいです。
でも、だからといって“雰囲気で怖がるだけ”ももったいない。

危険度が上がるパターンはだいたい決まっています。
そして、こちら側でできる対策も意外とあります。


  1. この記事の結論
  2. 1) 中華タブレットの懸念点(現実に効くやつだけ)
    1. 懸念1:プリインストール(消せないアプリ)が常駐・通信する
    2. 懸念2:セキュリティアップデート(パッチ)が止まりやすい
    3. 懸念3:カメラ/マイクが怖い(“噂”を現実の対策に落とす)
  3. 2) “ヤバい兆候”を先に潰す(ここで危険度の上限が決まる)
    1. 2-1) 端末が改変状態じゃないか(Verified Boot / Bootloader)
    2. 2-2) セキュリティパッチ日付
  4. 3) “強い支配”が入ってないか確認(入ってたら優先度MAX)
    1. 3-1) 端末管理(Device Owner / Profile Owner)
    2. 3-2) アクセシビリティ(操作権限)
  5. 4) 本丸:プリインストール(消せないアプリ)を棚卸しする
    1. 4-1) システム領域の一覧を取る
    2. 4-2) “怪しそうなワード”で候補抽出(まずは雑でOK)
  6. 5) 怪しい判定の“鉄板シグナル”
  7. 6) 対策の鉄則:いきなり削除しない。まず停止(無効化)
    1. 6-1) 停止(無効化)
    2. 6-2) 無効化されたか確認
    3. 6-3) 戻す(復元)
    4. 触ると壊れやすいもの(ここは基本触らない)
  8. 7) “カメラが怖い”問題の現実解(技術+運用)
    1. 7-1) 技術でできる範囲(権限を締める)
    2. 7-2) 最後は運用で逃がす(ここが一番効く)
  9. 8) 作業が終わったらやること(やらないと入口が残る)
  10. 付録:MacでADBを使う最小セット
  11. まとめ:安い端末は「割り切り」と「止め方」がすべて

この記事の結論

  • 絶対安全は言えない(特にノーブランド端末はブラックボックスが多い)
  • ただし、危険度が跳ね上がるパターンは決まっている
  • 見える化 → 止められるものは止める(まず無効化)運用で重要情報を載せないで、リスクはかなり下げられる

私は「信用する」ではなく、“信用しない前提で運用設計する”派です。少人数運用だとこれが一番ラク。


1) 中華タブレットの懸念点(現実に効くやつだけ)

懸念1:プリインストール(消せないアプリ)が常駐・通信する

不安の本命はここです。
安価端末だと、メーカー側が載せた「おすすめ」「独自ストア」「アップデータ」みたいなものが、起動した瞬間から動くことがある。

懸念2:セキュリティアップデート(パッチ)が止まりやすい

OSが新しく見えても、パッチ日付が古いと普通に不利。
この時点で「重要情報を載せる端末じゃないな」という判断になることも多いです。

懸念3:カメラ/マイクが怖い(“噂”を現実の対策に落とす)

ここは温度感が分かれるところ。
ただ、「もし本当に覗かれていたら致命的」なのは事実なので、私は技術でできる範囲は潰して、最後は運用で逃がすのが現実解だと思っています。


2) “ヤバい兆候”を先に潰す(ここで危険度の上限が決まる)

2-1) 端末が改変状態じゃないか(Verified Boot / Bootloader)

目安はこんな感じ。

  • Verified Boot:green
  • bootloader:locked
  • debuggable:0
adb shell getprop ro.boot.verifiedbootstate
adb shell getprop ro.boot.vbmeta.device_state
adb shell getprop ro.debuggable

orange / unlocked / 1 が出たら即アウト断定ではないけど、前提が変わるので慎重運用が無難です。

2-2) セキュリティパッチ日付

adb shell getprop ro.build.version.security_patch

ここが古いなら、「全部を信用して運用」はやめた方がいい。
このあと出す「運用で逃がす」が効いてきます。


3) “強い支配”が入ってないか確認(入ってたら優先度MAX)

3-1) 端末管理(Device Owner / Profile Owner)

adb shell dpm list-owners

no owners なら、少なくともMDM的な強支配は見当たりにくい。

3-2) アクセシビリティ(操作権限)

adb shell settings get secure enabled_accessibility_services

null なら、有効化されているアクセシビリティサービスはありません。

ここが“知らないサービス名”で埋まってたら、私なら一旦その端末は仕事から外します(まず安全確保)。


4) 本丸:プリインストール(消せないアプリ)を棚卸しする

ユーザーが入れたアプリより、system/vendor/product に入ってるやつが本命です。

4-1) システム領域の一覧を取る

adb shell pm list packages -f > packages_full.txt
grep -E "/(system|vendor|product|system_ext)/" packages_full.txt > packages_sys.txt

4-2) “怪しそうなワード”で候補抽出(まずは雑でOK)

egrep -i "ota|update|updater|ad|ads|analytics|tracker|collect|push|cloud|recommend|assistant|store|market|clean|boost|security" packages_sys.txt \
  | sort -u > packages_candidates.txt

ここで出てきた候補を、次で“怪しさ判定”します。


5) 怪しい判定の“鉄板シグナル”

候補が出たら、中身をざっくり確認します。

adb shell dumpsys package <パッケージ名> \
  | egrep -i "BOOT_COMPLETED|INTERNET|requested permissions|receiver|service|versionName|codePath"

怪しさが跳ね上がる組み合わせは、これ。

  • BOOT_COMPLETED(起動時に自動起動できる)
  • INTERNET(通信できる)
  • 権限が強い(特権/BIND系が大量など)

これが独自OTA/Update系だったら、私は「対策優先度 高」にします。
理由は単純で、何が降ってくるか分からない経路を放置するのが一番怖いから。


6) 対策の鉄則:いきなり削除しない。まず停止(無効化)

ここが一番大事。

  • 削除は最後(文鎮化・機能崩れの確率が上がる)
  • まず disable(無効化)で止める
  • 1〜2個ずつ止めて、再起動して、基本機能を確認
  • ダメなら即戻す(復元)

6-1) 停止(無効化)

adb shell pm disable-user --user 0 <パッケージ名>

6-2) 無効化されたか確認

adb shell pm list packages -d | grep -i <キーワード>

6-3) 戻す(復元)

adb shell pm enable <パッケージ名>

触ると壊れやすいもの(ここは基本触らない)

ここを勢いで止めると、普通に詰みます。

  • com.android.providers.downloads / ...downloads.ui(ダウンロード基盤)
  • com.android.settings / com.android.systemui(設定・UI)
  • com.android.printspooler(印刷の中核)

7) “カメラが怖い”問題の現実解(技術+運用)

ここは正直、技術だけで完全に安心はしにくい。だから二段構えにします。

7-1) 技術でできる範囲(権限を締める)

  • カメラ/マイク/位置情報は普段は権限OFF、必要なときだけON
  • 不要アプリを減らす(特に“ブースター/最適化/独自ストア/怪しいファイルマネージャ”)

7-2) 最後は運用で逃がす(ここが一番効く)

私はこれを強く推奨します。

  • 銀行/決済/パスワード管理は載せない(別端末に分離)
  • Googleアカウントは可能なら業務専用(個人メインを入れない)
  • 重要データは「端末内に溜めない」(クラウド/サーバ側に寄せる)

結局ここが最強。端末を100%信用しなくて済む。


8) 作業が終わったらやること(やらないと入口が残る)

  • USBデバッグをOFF
  • (項目があれば)USBデバッグの許可を取り消す

せっかく塞いだのに入口を開けっぱなしにしない。これ大事。


付録:MacでADBを使う最小セット

# インストール
brew install android-platform-tools

# 接続確認(タブレット側でUSBデバッグ許可)
adb devices

# 基本チェック
adb shell getprop ro.build.version.security_patch
adb shell getprop ro.boot.verifiedbootstate
adb shell getprop ro.boot.vbmeta.device_state
adb shell getprop ro.debuggable

# 端末管理 / アクセシビリティ
adb shell dpm list-owners
adb shell settings get secure enabled_accessibility_services

# システム領域棚卸し
adb shell pm list packages -f > packages_full.txt
grep -E "/(system|vendor|product|system_ext)/" packages_full.txt > packages_sys.txt
egrep -i "ota|update|updater|ad|ads|analytics|tracker|collect|push|cloud|recommend|assistant|store|market|clean|boost|security" packages_sys.txt | sort -u > packages_candidates.txt

# 候補の詳細確認
adb shell dumpsys package <パッケージ名> | egrep -i "BOOT_COMPLETED|INTERNET|requested permissions|receiver|service|versionName|codePath"

# 停止 / 復元
adb shell pm disable-user --user 0 <パッケージ名>
adb shell pm enable <パッケージ名>

まとめ:安い端末は「割り切り」と「止め方」がすべて

安い(中華)タブレットは、用途を割り切れば使えます。
でも、メイン端末として「何も気にせず」使うのはおすすめしません。

やることはシンプルで、

  • 基本指標(boot/patch/owner/accessibility)を確認して
  • プリインストールを棚卸しして
  • 怪しいやつは “削除じゃなく停止” で安全に潰して
  • 重要情報は載せない運用で逃がす

この手順で、リスクを“気合”じゃなくて“手順”で下げられます。

コメント

タイトルとURLをコピーしました