質問: Windows8.1の強制ASLRでどれぐらいウィルス感染を防げるでしょうか? Slashdotでは、64bit版にすればほぼASLR回避不可能というタレコミもありましたが、攻撃側としてはもう対策を取っていたりするのでしょうか。Windows7を使用していますが、感染の確率を下げられるのであれば購入しようかなぁと思っています。
回答: slashdot でのタレコミ、というのはこれのことかな? ASLR を簡単に回避する方法が公開される | スラッシュドット・ジャパン セキュリティ 簡単に回避できる、と言っていたけど、結局、最後にはアクセス可能なメモリ空間を片っ端から調べないと、実行させようとしているコードを実行する事ができないことには変わりなく、それだと、32bit ならまだしも、64bit になったら、アドレス空間が広すぎ(32bit に比べて 2 の 32 条倍の大きさ)て、全く現実的じゃない、という話です。 ざっと調べた感じだと、メモリ空間を片っ端から調べる必要が無くなる、といった類の発見は見つかりませんでした。 で、基本的には、ソフトウェアに脆弱性があって、その脆弱性を利用すれば、原理的に任意のコードをできる場合に、その実行したいコードがあるアドレスがわからないようにする、というのが ASLR の原理で、そういった脆弱性を利用したマルウェアの実行を防ぐ効果はあります。 ただ、そのような脆弱性を利用するマルウェアが多いかというと、単純に人を騙してインストールさせる(例えば、URL 付きのメールを送って、クリックするとマルウェアがダウンロードされる、とか)方が多いように思います。一時期、世間を賑わせた遠隔操作ウィルス事件も、感染経路は被害者自らがダウンロードして実行しています。 また、そもそもソフトウェアをきちんと更新していれば、悪用できる脆弱性が塞がれるので、そもそも、ASLR の出番の前に悪用が失敗に終わります。 ASLR は未知の脆弱性が悪用された時に、その悪用を困難にするための技術で、特に 64bit 環境においては、任意のコードの実行は事実上不可能になる、という物になります。「未知の脆弱性を悪用したマルウェア」というものが存在しないわけでは無いですが、少なくとも一般の人がそういったマルウェアに遭遇する可能性は極めて低いと思います。 なので、 ・ウィルス対策ソフトを正しく利用する。 ・ソフトウェアを最新に保つ。 が最優先で、そこに更に対策を追加するのであれば、Windows であれば、 ・AMET を利用する。 という事になります。で、その時に、OS 及び アプリケーションが 64bit 版だったら、なお良い、という事になります。