GIGAZINE 掲載の Android のメモリ破損のバグがどうも違うらしい件
2014/3/29 11:34:45 メモリ「破損」。これは、おそらく、読み書きされすぎて物理的に破壊されるってことだろう: Androidにメモリ破損バグが発見されデータを全消去する極悪アプリの作成が可能 - GIGAZINE http://gigazine.net/.... |
ちょっとフォロアーさんのツイッターが気になったので調べてみた。
Androidにメモリ破損バグが発見されデータを全消去する極悪アプリの作成が可能 - GIGAZINE
Balicさんが発見したのはメモリを破壊する可能性のある脆弱性で、Android 2.3、4.2.2、4.3で動作が確認されています。このバグはアプリのコード「strings.xml」でアプリの名前を示す「app_name」に38万7000字以上の文字を入力すると発動するとのこと。バグが一度発動してしまうと、端末はクラッシュし再起動が無限に繰り返され、さらにはメモリまで破損する可能性があります。 |
うん、確かにそうとも取れるね
New Android Bug Causes Bricked Devices | Security Intelligence Blog | Trend Micro
ここで、トレンドマイクロさんの原文を読んでみましょう
The system service ActivityManager is also affected due to the continuous error in the Binder transaction. This may possibly lead to a Binder driver crash, which then results in an automatic rebooting of the device. At this point, users would have no other recourse but to do a hard factory reset on the device while running the risk of erasing all of the stored data. |
翻訳
システム・サービスの ActivityManagerも影響を受け、バインダートランザクション内で連続エラーに陥ります。 これはもしかしたら、デバイスの自動再起動の結果バインダードライバのクラッシュにつながるかもしれません。この時点で、ユーザーは、格納されたデータがすべて消去されてしまう危険性のあるデバイスをハード工場出荷時設定へのリセットを行う以外の選択の余地はなくなる。 |
Binder Driverってのは多分カーネルのプロセス間通信ドライバのことだと思う・ω・(あってる?)
要するに重要なドライバが起動できないと判断して、OSが工場出荷状態に戻してしまう危険があるって話のように見える。
というわけで、「Androidのメモリ破損(バッファーオーバーフロー)を利用したバグが発見され、これを利用した極悪アプリによって工場出荷に戻される危険性があるかもしれない」
ってのが正確のような気がした・ω・
今回の件もそうですけど、Androidって脆弱性多いですよね。(まあそこまででもないやつもあるけど)
脆弱性が多いくせに多数のデバイスに導入されてるとか怖すぎる…
そんなこと言ったら、30億のデバイスで走るJav(ry
この手の、あるデータが……ある状況になったら
(フラグだったり、容量だったり)系のバグって、基本的に
システム設計者の想定が足りない(甘い)事に由来する
人為的なトラブルの様な気しか、しない……。
この記事で言うと、app_name項目には、38万7000字以上の
文字が入る事は、無い”だろう”みたいな見込みの甘さと
言うか、想定の足りなさと言うか……。
割と有名所では、かつてのY2K問題なんかと、似た感じ
ですよね。もっと最初から……ちゃんと想定して、いずれ
要る様になるだろう所は、あらかじめ確保して於けば、
この手のトラブルは、減らせるモノ……なんでしょう
けれど、人間……基本、目先しか見ない……って
いう事なんでしょうか?
そう言えば……Win32のプログラム(64でも)で、
プラグラム内で随時データを生成して、仮想メモリに
生成したデータを蓄えていくプログラムが在った、と
仮定して……その単ユーザープロセスに割り当てられた
2GB(64なら、8Tバイト?)の仮想メモリを埋め尽くして
更に蓄積しようとプログラムが働こうとするなら、
どうなるんだろう?システムからエラーを吐かれて、
プログラムが強制終了されるだけ?流石に、想定して
いない……と、いう事は無い、だろうけれど……この手の
問題って、Windowsだけが抱えている問題でも無さそう
だし……以前、8ビット機や16ビット機の頃は、そんな
事象が起きたら……どうなっていましたっけ?まぁ、
マルチタスクでも無かった時代に、仮想メモリな概念が
そもそも在ったかな?と、昔を思い出しつつ……ですが。
今のところバックアップは取ってあるので問題のアプリさえ復元しなければ(設定・アプリデータも含めて)ほとんど復元可能な状態にしてあるので今のところは初期化されたとしても問題無いですね。