ドコモスマホのセキュリティについて調べてみた
<2017/11/14追記> 本日確認したところ、ドコモのサイトが更新されていましたので、内容を更新しました。
背景
先月、Bluetoothの脆弱性が公表されました。Bluetoothが有効になっていると、リモートから乗っ取られる可能性のあるかなり深刻な脆弱性です。
私自身は、昨年からiPhoneを使っており、上記の記事の中でも、
iOS 10搭載機器については CVE-2017-14315 の影響を受けません。
と書かれているので、大丈夫そうです。
ちなみに、息子に春頃からもたせているAndroidもNexus5Xにしていたので、アップデートしないとな、ぐらいに思っていたのですが、ついでにNexus5X以外がどうなのかについても調べてみたので、記載しておきます。
ちなみにドコモについて調べてみたのは、ドコモに悪意があるわけではなく、auやソフトバンクは使ったことがないので調べるのが面倒だったからです。むしろ、どっぷりドコモユーザ(15年以上)で決してアンチドコモではありません。
Nexus5Xでの調査
Nexus5Xについて
Nexus5XはGoogle謹製なので、Googleが脆弱性に対応すればまだ最新版までアップデートすることができます。 発売が2015年10月19日ということなので、約2年前ですね。この端末のパッチはGoogleで管理されており、ドコモが介在しないので配信が早いというメリットがあります。デメリットとしては、おサイフケータイ、ワンセグなどの日本仕様には対応していません。
下記のサイトによると、Nexus5Xは2018年11月まではセキュリティパッチを保証してくれているそうです。
Android のバージョンを確認して更新する - Nexus ヘルプ
Blueborneの脆弱性について
上記のトレンドマイクロ社の記事によるとAndroidで該当するのは以下の4つのようです。
- CVE-2017-0785:Android の情報開示の脆弱性
- CVE-2017-0781:Android のリモートコード実行の脆弱性
- CVE-2017-0782:Android のリモートコード実行の脆弱性
- CVE-2017-0783:Android の中間者攻撃の脆弱性「Bluetooth Pineapple」
これらがいつ対応したのかについて、開発元で確認してみました。
https://source.android.com/security/bulletin/2017-09-01?hl=ja
ありました。2017年9月1日版で修正されているようです。
まだアップデートしていなかったので、Android 7.1.2、セキュリティパッチレベル 2017-08-01だったのですが、アップデートすると、Android 8.0.0、セキュリティパッチレベル 2017-09-05になりました。これで、Blueborneに対する対応は大丈夫そうです。
ドコモスマホ(Android)に関する調査
ドコモスマホのセキュリティパッチ
私が以前使っていたXperia Z1f(2013年12月発売)はAndroid 4.4(Kitkat)で止まってしまっていたのもあって、若干の誤解がありました。 誤解というのは、セキュリティパッチも含めてドコモのAndroidのパッチは年に一度ぐらいしか出ていないと思ったいた点です。
Xperia(TM) Z1 f SO-02Fの製品アップデート情報 | お客様サポート | NTTドコモ
サイトを確認してみたところ、計5回出ていたようですが、発売後約半年たった2014年8月12日以降は2回しか出ておらず、発売後2年を経過して2016年1月21日 に出たのを最後に出ていないので、印象はあっていたようです。
- 2014年3月31日
- 2014年6月26日
- 2014年8月12日
- 2015年6月24日
- 2016年1月21日
現状、どうなっているかというと、Android 6.0以降はドコモも原則すべてのセキュリティパッチを適用できるようになっているようです。
ドコモでは、お客様に、より安心してスマートフォン・タブレットをご利用いただくため、セキュリティ更新を行っております。セキュリティ更新を行うことで、Google社が公開しているAndroidTM OSのセキュリティパッチ(いわゆる脆弱性(ぜいじゃくせい)を対処するためのソフトウェア)を、原則として全て適用することが出来ますので、スマートフォン・タブレットをより安心してお使いいただくことができます。
ドコモスマホはBlueborne対策ができているのか?
ということは、遅かれ早かれ、Android 6.0以降のものはセキュリティパッチが適用されるということのようです。あとはタイミングの問題でしょうか。特に、最後に駆け込みでAndroid 6.0に対応したXperia Z3 CompactやXperia A4がどうなのか興味があります。
セキュリティ更新の実施状況は、各製品の「製品アップデート情報」でご確認いただけます。また、お持ちのスマートフォン・タブレットの設定画面から、何月時点のセキュリティパッチが適用されているかを、お客様ご自身でご確認いただくこともできます。
と書かれているのが気になります。「製品アップデート情報」で確認すると、Xperia Z3 Compactの最新アップデートは2017年5月31日のようです。これで2017年5月時点のものまでしか更新されていないのか、そのあともセキュリティパッチだけは毎月出ているのか、私には確認する方法がありませんでした。周りの人に聞いてみようかな。
最新のスマホの状況は?
最近(2017年10月3日)アップデートが出ていたArrows Be F-05Jで確認してみました。
arrows Be F-05Jの製品アップデート情報 | お客様サポート | NTTドコモ
- セキュリティ更新(設定メニューのセキュリティパッチレベルが2017年9月になります。)
9月までは更新されるそうです。ただし、どうもGoogleの9月パッチとは少し定義が違うようです。
https://www.nttdocomo.co.jp/support/utilization/product_update/about03/index.html
下記4点のいずれも9月にも10月にも見当たりません。
- CVE-2017-0785:Android の情報開示の脆弱性
- CVE-2017-0781:Android のリモートコード実行の脆弱性
- CVE-2017-0782:Android のリモートコード実行の脆弱性
- CVE-2017-0783:Android の中間者攻撃の脆弱性「Bluetooth Pineapple」
ということは、ドコモの9月パッチが当たっていても、Blueborne対策はできていないのではないかと思われます。そうだとすると、当面Bluetoothはオフにしておくしかなさそうです。
<2017/11/14追記> 本日確認してみたところ、上記のパッチが9月分に含まれていました。しかし、この記事を当初書いたときに含まれていなかったものが9月分で配信されていたのか、Googleから9月にリリースされていたものが11月分で追加されたのかは判別できませんでした。
まとめ
Webdavをubuntuから使う
WebdavにアップされるファイルをUbuntuでダウンロードしたい
最初にやろうとしたこと
アップロードされてくるファイルを、pythonで自動ダウンロードしたい。
webdav client
こんな感じでいけるかと思ったが、どうにも上手くいかない
結果的にダイジェスト認証に対応していないことが問題っぽい
import webdav.client as wc options = { 'webdav_hostnema': "https://hostname/path", 'webdav_login': "user", 'webdav_password': "password", 'verbose': True } client = wc.Client(options) client.list()
cadaver
インタラクティブに接続できる。
これとexpectとか組み合わせればなんとかなりそうだが、あまりスマートではない
# cadaver https://hostname/path Authentication required for hostname on server Username: user Password: dav:/path/>
requests
それっぽく動く。この辺でDigest認証がないと動かないことがわかった。
import requests from requests.auth import HTTPDigestAuth url = 'https://hostname/path/file' requests.get(url,auth=HTTPDigestAuth('user','password'))
curl
# curl --user 'user:pass' https://hostname/path --digest # curl -X PROPFIND --user 'user:pass' https://hostname/path --digest
tinydav
ダイジェスト認証に対応していないようだ
tinydav 0.7.5 : Python Package Index
別の方法(NFS)の状況を確認する
davfs2
普通にマウントできる。
# sudo mount -t davfs -o uid=$UID,gid=$(id -g) https://hostname/path /mnt/dav Please enter the username to authenticate with server https://hostname/path or hit enter for none Username: user Please enter the password to authenticate with server https://hostname/path or hit enter for none Password: /sbin/mount.davfs: https://hostname/path on /home/sbin/
AndroidからiPhoneに乗り換えて困っていたこと
困っていたこと
XperiaからiPhone7に機種変更して半年ちょっとたちました。
概ね満足していたのですが、どうにもしっくりこず、いつAndroidに戻そうかと思っていました。 そのしっくりこないポイントが解決して満足したお話です。
- 文字入力
- 電話アプリに電話番号が貼り付けられない
先日、Galaxy Feelを見て、iPhoneとそっくりな外見、サイズでAndroidというのにすっかり気を取られてしまったのですが、あらためて調べ直して見たら、サクッと解決したので、同じ悩みを持っている方がいたらと思い書いておきます。
電話アプリに貼り付けられない件
これは、完全に私の調査不足でした。テンキーの上部の何もないところでロングタップするとサクッと貼り付けられました。
キーボード
もしかしたら、Atokとかでも解決したのかもしれません。Shimejiはどうにも信用できず、導入に踏み切れませんでした。
今回私が導入したのは、ワードライトというアプリです。
有料ですが、240円なので大して気になりません。
まず横カーソルキーがつきました。代わりに3Dタッチができなくなったので、微妙ですが、もともとカーソルが欲しかったので良しとします。
変換精度もgoogle変換のエンジンを使っているということで、特に精度が悪くなったとは思いません。
また、qwertyキーボードの上部に数字を表示することができます。厳密には切り替えなので、数字じゃないこともあるのですが、やりたいことは満たせました。
おまけで、顔文字の入力補助もあるし、いい買い物でした。
まとめ
上記の二点の問題が解決したことで、すっかりiPhone7が気に入ってAndroidに戻る気も無くなってしまいました。
熱くならないし、立ち上げているアプリが増えてきても安定して動くのはいいですね。
Androidのゲストモード禁止
概要
やりたいこと
Nexus5Xにおいて、Android 5.X以降で利用可能となったゲストモードを禁止したい
- ゲストモードは利用者が初期化でき、制限アプリが効かずなんでもできてしまうため
当初やろうとしたこと(うまくいかなかったこと)
- USBデバッグを使って、ゲストモードをオフにしようとした android.stackexchange.com
- 最終的にやったこと
- 使用者(子供)のアカウントを別に作って、元のアカウント(管理者)にロックをかけた
経緯
- 子供(小6)に持たせているNexus5Xはほとんどアプリを削除してから持たせていたが、勝手にゲストモードで別Googleアカウントを設定して、自由に使っていたことが判明した。
- しかも、「ゲストを削除」すると、どのアプリを使っていたのかも削除されるため、追跡ができない
- 追加対策でノートンアプリロックを設定したが、ユーザの切り替えは画面上からのスワイプから実施できるため、アプリロックもかからない
しらべたところ、ゲストモードを禁止するにはSDKからadbコマンドをたたかないといけないらしいので、実施して記録を残してみる- 参考情報は、Lollipop(Android5)に関するものであったが、Nougat(Android7)では動作しなかった
- いろいろ試しているうちに、マルチユーザ機能で作った別アカウントからはゲストに移行できないことがわかったため、方針転換をして、アカウントの整理をすることで対策を行った。
つまり
- Android 5.X移行のスマホを子供に持たせるとき、できることを制限したければ、ゲストモードを残しておいてはいけない
- ゲストモードを使えなくするためには、初期ユーザを使わせず、追加ユーザを使わせて、初期ユーザにはアクセスできないようにする必要がある
- 追加ユーザ側に動作制限アプリを導入し、初期ユーザへの変更を制御することで、ある程度制御することができる
やったこと
利用者アカウント(制限付きアカウントの作成)
- 初期ユーザ(管理者)アカウントで、設定 -> ユーザから、利用者ユーザを追加する
利用者アカウントでの設定
- 利用者ユーザに切り替えて、初期設定を行う
- googleアカウントの登録
- 必要アプリのインストール
- 制限ソフトをインストール
管理者アカウントの制限
- セキュリティで画面ロックをPINコードに設定
- こうしておくことで、利用者が管理者アカウントには移れないようにする
- 管理者アカウント側には、制限ソフトは不要
(参考情報) adbでの作業
準備したもの
設定
adb shell settings put global guest_user_enabled 0
確認
adb shell settings get global guest_user_enabled