なんとなく綴ってみた

アクセスカウンタ

zoom RSS 既存のx86/ARMほぼ全てに通用するJavaScript攻撃手法・・・分かり難くない?

<<   作成日時 : 2017/02/18 09:43   >>

なるほど(納得、参考になった、ヘー) ブログ気持玉 1 / トラックバック 0 / コメント 0

この記事の本質は、ASLRとは何かが分かっていないとただ怖いだけになるが、分かっていれば、焦ることもないだろう。必要に応じて、対処をするかしないかを決めればよいだけだ。

ということで、内容をまとめた。本当は昨日(2017/02/17)の段階で載せる予定だったが、ちょっと説明法を考えるのに時間が掛かった。セキュリティを誰でも分かる様に簡略化するのは難しいなと改めて感じた。内容は相当、端折っている。

<ASLRとは何か?>

ASLR(アドレス空間配置のランダム化/address space layout randomization)は、メモリー上のアドレスを隠蔽するソフトウェア技術であり、Windowsで言えば、Windows Vista頃からOS側へのサポート導入が始まった。アプリケーションレベルで利用されることが増えたのは、この数年である。ちなみに、iOSは4.3以降、Androidは4.0以降でブラウザにも採用されている。
http://pc.watch.impress.co.jp/docs/news/1044822.html


では、ASLRは具体的にどんな事をするのか?というと単純にメモリー上に大事なデータを配置するときに、来た順番に1,2,3と順番にこれまで配置していたデータをランダム化(順番をごちゃにする技術)を利用して、順不同に配置するということである。まあ、簡単に言えばくじ引きのようなものだ。これまでは、
「来た順に前から座ってくださいそして、来た順に名前を入り口に残してくださいね。」だったが、
来た人にくじを引いて貰い、その番号の席に座って貰う。引いたくじに名前を書いて貰い、担当者に渡し場所を把握させる訳だ。重要なのは担当者という点だ。

担当部署の人だけがそこに居る人が誰かを知っている。入り口を監視して彼らがいつ入ったかを監視していても、座った場所は分からないため、その人を特定してちょっかいを出すのは難しくなる。


まあ、それをプログラムで考えると、
その番号を、データを必要とするプログラムだけが把握していれば、外や入り口からそのデータが置かれている場所を把握するのは困難というそういう訳だ。

これが完成したことで、桁あふれ(バッファオーバーフロー)を使った攻撃や、アクセス違反を逆手に取る攻撃は激減した。まあ、全く無いとはいえない。脆弱性はいくらでもあるのだから・・・。今回のケースは、あくまでJavascriptを使えば、OSを問わず多くのブラウザ環境でインターネットを経由して攻撃が成立する可能性を示唆した。


<対象となる範囲>

今回示されたのは、今ではWeb上のほぼ全てのサイトで使われているJavascriptのコード記述を使って、このASLRで隠蔽しているアドレスを特定するというものだ。ASLRが無効化されているわけでは無く、ASLRが機能していても外のプログラムから、ランダム化して送った先の椅子に誰が座っているか分かると思って欲しい。
要は、迂回してくじに書かれた番号を担当者の後ろからこっそり覗くことが出来る訳だ。

内容を読む限りでは、CPUのメモリー管理装置(MMU/Memory Management Unit)が持つアクセス権に起因する問題としているようだが・・・。これは既存ALSRの実装限界(脆弱性)にも見える。

ちなみに、ここではテストしたプラットフォーム(CPU)環境が列挙され22種類中22種類全部で攻撃が出来たことを発表している。これを読んで自分は対象では無いと安心した人は気をつけて欲しい。ここに書かれているのは、あくまで試験環境として試したプロセッサである。そして、プラットフォームアーキテクチャ名が書かれているが、そのアーキテクチャ(ほぼ同一の技術を使ったプロセッサ)の製品はPentium/Celeron/Atom/Core i3/i5/i7、AMD A、AMD E問わず攻撃が通る可能性が高い事を意味する。

Core i3とi5、i7とブランド名は違っても、同じ時期に発売されるCPUは同じアーキテクチャを使った同一プラットフォームである。ARMも同じでSnapdragon 410というSoCはARM Cortex-A53を搭載している。


そして、ASLRが実装された年月から考えると、これはほぼ”全て”のプロセッサファミリーを網羅している訳だ。
それに加えて、ARM系のCortexプロセッサも対象となってなっており、”ASLRだけで見れば”、PCを越える可能性もあるわけだ。(”ASLRだけ”という意味は後述)

尚、攻撃可能となるのは、Linux、BSD and Mac OS XとMicrosoft Edge(Windows)である。


<全てのセキュリティが無効になるのか?>

この攻撃は先に述べたように、ASLRを無力化するための迂回方法が見つかったという話である。
そのため、ASLR以外のセキュリティ手段も付与している場合には、それによってすぐさま情報が漏れたりするということはない。くじ引きして決めた椅子の番号と名前の相対表があっても、それ以外の警備があるなら、そもそも簡単にちょっかいはかけられないというのと同じであり、相対表を見られる状況にあっても、それを見るだけでは、攻撃にはならない。Aさんは43番の席だってと知っても、知っているだけならAさんに迷惑は掛けないのだから・・・。


ただ、一つの防御が無効化される可能性が出たことで、攻撃される可能性は格段に上がり、ASLRがあるが故に使われにくくなった攻撃手法が、再び復活する可能性が出たという点で、今後の攻撃に警戒が必要であることを示す。

要は43番のAさんに直接、「Aさんですね。」と会場の関係者にでもなりすまして、話しかけて何か悪い企みをみたいなことも出来るかもしれない。そういう裏パイプが見つかったのだ。

−攻撃は起きているの?−

攻撃が始まったのではない。あくまで、攻撃の手段が見つかったというだけである。この迂回手段を使った攻撃は、簡単なものではないため、少なくとも数週間(数だから2週間〜1ヶ月だろうか?)は猶予があると思われる。そのため、今の段階ですぐに危険とはいえないが、情報が開示されそういう手法があると攻撃者は知ったことになるため、早まる恐れもある。

−どうすればよいか?−

絶対的な安全を確保するなら、ブラウザのJavascript実行を無効にすれば、それだけで攻撃は受けないが・・・これを無効にすると、動画サイトで映像は見られない。認証画面でログイン画面が表示されない・・・ログインに入れない、サイトの書式が崩れるといった症状が多くのサイトで出るはずだ。

そのため、ブラウザの拡張機能(プラグイン)としてNo Script(Firefoxで提供)などを使って、日頃回らないようなサイトを閲覧するときには、意識的に停止するのが望ましいよとしているわけだ。
https://addons.mozilla.org/ja/firefox/addon/noscript/

まあ、これを見つけた人が、無効化しているかどうかは分からないが、なんとなくだが、やっていない気も・・・・。これはちょっとした冗談だが、見つけた人は、結構注意喚起している割に、やらない人も多い。まあ、そういう傾向があるというだけで、対処しているかもしれない。


<今後のメーカー対応は>

既に、OSメーカーやCPUメーカー、ブラウザメーカー向けの対策に関する情報も開示されている。そのため、比較的早い内に、何らかの対策が講じられるのは確かだろう。まあ、既存CPUに対策を講じるのは難しい。よほどならマイクロコード用のファームをOS側のアップデートに加えるだろうが・・・対応はOSとブラウザ側になると考えられる。

というのが、この記事が示す内容である。


<対策判断の基準>

この問題において対策が必要かどうかは、自分自身がWebサイトの閲覧に際して、どういうサイトを閲覧するかに掛かっている。例えば、Youtubeしかアクセスしない人が、No ScriptやJavascriptの停止をしたら何も出来なくなるかもしれない。そもそも、そこが書き換わり標的プログラムが入るほどになると、世界中のユーザーが攻撃にさらされる訳だ。そう考えると、自分が被害に遭う率は低いとみてよい。

しかし、頻繁に海外の信頼性が低いサイトや、国内にしても放置されたような個人Blog(特にWordPressやOlive Blog)などを閲覧することが多いならNo Scriptなどを使って、サイト毎にScriptの実行権限を変えるのがよい。

そういった形になる。

まあ、最近はセキュリティソフトがブラウザに常駐する形で、危険なJavascriptの実行を抑止してくれるケースもある。そういうソフトが入っているなら、No Scriptが無くてもある程度守られるかもしれない。

その前に、メーカー側がこの脆弱性を埋めてくれるならその限りではないだろう。


<防御が迂回させるのはよくある・・・問題は、何が危険か分からないこと>

これは、たまたまPC Watchで記事になったが、ある種の防御に対する欠陥が見つかることは、年に何度かある。ただ、その全てが記事になるとは限らない。非公開のままで対応され、パッチが出てから詳細が分かるものもある。そのため、過度に恐れる物でもない。

しかし、じゃあ心配しなくてもよいかというとそうでもない。それが、難しいところだ。
万が一攻撃が今日始まれば、心配するなと言って安心させれば、それはミスリードになるし、一方で、攻撃がないのに、過度に心配しろというのも違う。

この手の記事は、正直そういう点では、専門的過ぎて判断が出来なくなりがちなのだ。

本来攻撃者からユーザーが身を守るというのは、その脆弱性をどんなものだと認識させること、理解することから始まる。要は、自分のやっている作業、使っていることに対して、これなら、対処は要らないよねとか、ちょっと警戒しようかと決める要素が必要な訳だ。

この場合は、技術的な手法が書かれているが、攻撃への寄与度と、どこが危険になるかまでは、明確に示されていない。だから多くの人は不安になる。場合によっては、自分は大丈夫、自分こそ危険だと下手なミスリードを起こすわけだ。

私個人としては、主要なサイト巡りしかしない人が、これを心配しても今の段階では実証された攻撃も見つかっておらずリスクは低いのではと思う。よほど、大事な情報を扱っている人なら知らないが・・・それでも、これはランダム攻撃に使う手段としてはよいが、特定個人を狙う物として使うのは難しい。よほどDNSサーバーアドレスを自宅のルータにでもセットするか、不正メールを使うかされない限りは・・・・。即ち、今までの危険性と実は余り変わらないのだ。

まあ、一般的にリスクが高まるのはOlive Blogや、WordPressの脆弱性が問題視されたが、管理が不行き届きのそういうサイトをよく回る人は、十分注意した方がよい。そういう話であり、これもやはり変わらない。

後は、数週間でメーカーが対応するかどうかだろう。しなければ、スクリプト実行抑止の対策を検討した方がよいだろうが、これが、現実的な対処かというと、現実的ではない。

結局何も変わらない。本当にこの攻撃が対策が施される前に、ゼロデイで始まるかどうかと、始まったと仮定して、自分がそれを踏んで被害に遭うかという運の問題だろう。その確率が低くともリスクだと思うなら、対策をすべきだろう。

正直、ここまで多くの環境に影響する話なら、発表を対策がいつ頃に出来そうというのがある程度確定するか、またはメーカーが全く動かないから動かすためにみたいな時にしてほしいものだ。


カスペルスキー セキュリティ 2017 3年5台版
KasperskyLabs Japan
2016-10-13

amazon.co.jpで買う
Amazonアソシエイト by カスペルスキー セキュリティ 2017 3年5台版 の詳しい情報を見る / ウェブリブログ商品ポータル







テーマ

関連テーマ 一覧


月別リンク

ブログ気持玉

クリックして気持ちを伝えよう!
ログインしてクリックすれば、自分のブログへのリンクが付きます。
→ログインへ
気持玉数 : 1
なるほど(納得、参考になった、ヘー)

トラックバック(0件)

タイトル (本文) ブログ名/日時

トラックバック用URL help


自分のブログにトラックバック記事作成(会員用) help

タイトル
本 文

コメント(0件)

内 容 ニックネーム/日時

コメントする help

ニックネーム
本 文
既存のx86/ARMほぼ全てに通用するJavaScript攻撃手法・・・分かり難くない? なんとなく綴ってみた/BIGLOBEウェブリブログ
文字サイズ:       閉じる