数ヶ月前、悪意のある数独問題ファイルを読み込むことの危険性について注意喚起を行いましたが、昨今の標的型攻撃の手口は悪質化、巧妙化の一途をたどり、ソーシャルエンジニアリングを駆使した攻撃手法も洗練され、もはや「悪意があるかどうかを事前に判断」することが困難になりつつあります。つまり、「不審な数独問題ファイルを開かない」というのが対策として機能しなくなってきたのです。

そこで近年注目されているのが、マイクロソフトが提供するEMETに代表されるような脆弱性防御(緩和)ソフトウェアです。
早速、EMETを有効にした状態で数独マルウェア(正確に言うと数独Exploit)を使って攻撃してみましょう。
デフォルトで3つのセキュリティレベルが用意されていますので、最高レベルの「Maximum security settings」を選択して実験を開始します。

SudokuExploitWithEmet52

なるほど、確かに攻撃を検知して防御してくれました。

では次に、EMETによる防御をバイパスしてみましょう。EMETの解説を読む限りでは、攻撃に使われる典型的な振る舞いをパターン化しているようです。そこで、一直線に攻撃に向かうのではなく、わざわざ遠回りをして攻撃してみます。例えて言うと、スタート地点Aから目的地Bに向かいたいが、途中に検問がある。だったら一度経由地Cを通ってから目的地Bに向かおうという、いたってシンプルな作戦です。
要するに
A -> B
という命令は
A -> C
C -> B
という二段階の命令に置き換えます。

完成した攻撃コードを実行した動画です。



脆弱性防御ソフトウェアは、あわてんぼうの攻撃者にとっては有効ですが、精巧に攻撃されるとまだまだバイパスが可能、という段階のようです。

また今回の実験はEMETだけでなく他の標的型攻撃対策ソフトに対しても同様にバイパスが可能でした。

「不審な数独問題ファイルを開かない」という自信の無い方は、業務用PCと数独用PCを分けることをおすすめします。

2015/10/06追記: EMET 5.5 Betaでも結果は同じでした。