“de:code 2017”レポート

Windows 10はプログラムを異常終了させて発症や活動を抑止する

Windows 10時代の最新セキュリティ対策状況について説明

日本マイクロソフト セキュリティレスポンスチーム セキュリティプログラムマネージャー 村木由梨香氏

 日本マイクロソフトが2017年5月23日から2日間、都内で開催した開発者/IT技術者向けイベント“de:code 2017”。本稿では138におよぶセッションを披露したが、最後に“パッチ待ちはもう古い! Windows 10最新セキュリティ技術とゼロデイ攻撃攻防の実例”の概要をご報告する。

 スピーカーを務めた日本マイクロソフト セキュリティレスポンスチーム セキュリティプログラムマネージャー 村木由梨香氏は、『Windows 10はマルウェアを異常終了させる仕組みを備えている』と、Windows 10時代の最新セキュリティ対策状況について詳しく説明した。

『ランサムウェアのキットやWebサービスが販売されている』

 2015年から急速に被害を拡大させているランサムウェアは、感染するとストレージ上のファイルなどを暗号化し、ユーザーに匿名性の高いビットコインなどを用いた身代金を請求する。昨日は「WannaCry(WannaCrypt)」が世間を騒がせたばかりだが、『最近はランサムウェアとは思えないサービスサイトを用意し、“今支払うなら300ドルだが1週間後は倍の600ドル”とユーザーに支払いを求める』(村木氏)という。その金額もランサムウェアの競合増加から価格競争が発生し、サイバー攻撃者はユーザーの手間を省くためにWebサイトをわかりやすく構築して、PCの修理費用を上回らない程度の金額請求を行っていると村木氏は現状を説明する。

 金銭の取得をゴールに定めるサイバー攻撃者たちだが、必ずしも技術に長(た)けた人物だけに限らないという。『ランサムウェアのキットやWebサービスが販売されている』(村木氏)からだ。小銭稼ぎを目的とするサーバー攻撃者はこれらのベースキットを購入し、コピー&ペーストで多言語化や暗号化に用いるCPUコア数のカスタマイズなど、気軽にランサムウェアを作っているという。

Microsoftは“サイバー攻撃者の攻撃コストを高める”戦略を選択

 そして彼らはランサムウェアの開発コストを下げて楽に稼ぎ、大きく儲けようと考える傾向が強い。一般的なソフトウェアの開発現場でもコストダウンが求められるが、それはサイバー攻撃者も一緒。SNS経由で情報が広まると、あっという間にテイクダウンされてしまうため、ランサムウェアに関しては薄利多売的なアプローチが強まっていると村木氏は説明する。寄せ集めのコードを使って、Windows 7など古いOSやアプリケーションを標的とし、早期対策を回避するため解析環境では動作せずに実機上でのみで動作する“キルスイッチ”を供えるマルウェアも増えているそうだ。

サイバー攻撃者はランサムウェアで「楽に稼ぐ戦略」に移行しつつある

 結果としてMicrosoftは“サイバー攻撃者の攻撃コストを高める”戦略を選択している。下図はセッションで紹介されたスライドだが、青色の部分はWindows 7時代、そして緑色がWindows 10時代の防御戦略だ。多くのマルウェアはWebサイトやメール経由でPCに侵入し、資格情報などを取得してサーバーへのアクセスし、情報の取得や破壊などを行うが、実行ファイルのハッシュ値をもとにしたマッチングでマルウェアを検出しても、マルウェアジェネレーターによる亜種が多く“いたちごっこ”となる。

Windows 7時代とWindows 10時代のセキュリティ防御戦略

Windows 10はプログラムを異常終了させて発症や活動を抑止する

 『(マルウェアへの)対策機能を用意し、利用者への啓蒙活動を行っても(サイバー脅威が蔓延する)現実に追いついていない』(村木氏)と語り、Windows 8やWindows 10の開発時にセキュリティ戦略の変更を強く感じていたという。Windows 10ではマルウェアの発症や活動を抑止するため、OS側でマルウェアの動作を研究・分析し、プログラムを異常終了させるなどのアプローチを取り込んだ。例えば“振る舞い分析”は通常のプログラムでは希なAPI呼び出しや、メモリー確保方法などを判断して、プログラムの実行を抑止する。

Windows 10が供えるセキュリティ多層防御壁。緑色の項目が新たに加わった

 その結果、発見された脆弱性の悪用件数および悪用の可能性がある件数は、Windows 8.1の88件からWindows 10の74件に減少した。例えば2016年11月の「STRONTIUM」による米国シンクタンク、同月の「Henkray」による韓国、2017年3月の「Zirconium」による標的型攻撃はWindows 7/8.xこそ被害を受けたが、Windows 10は防御に成功している。その理由はWindows 10が供える悪意のあるコードの実行を緩和する施策だ。

Windows 7およびWindows 10における悪意のあるコードへの緩和施策

 一例を挙げればバッファオーバーフロー攻撃(メモリースタック領域以上のデータを格納させ、異なる部分にジャンプコードを埋め込むなどして感染や攻撃といったアクションを行う)も、Windows 10の標準環境であれば改変検知や推察防止機能を用いて、マルウェアの実行を未然に抑止できるという。この他にもASLR(アドレス空間配置のランダム化)やDEP(データ実行防止)なども可能。つまり、Windows 7/8.x時代に提供されていたEMET(Enhanced Mitigation Experience Toolkit)の機能を標準装備することで、『ゼロデイ攻撃を防ぎ、セキュリティ対策を講じなくてもマルウェアが異常終了し、危険を回避できるケースが増える』(村木氏)のだ。

代表的なコード実行緩和施策。Windows 10は標準で備えている
Windows 10の標準緩和策と追加可能な緩和策

 これらの仕組みはアプリケーションやプラグインにも適用され、OS側で悪用手法の検出や実行のブロックが可能となる。また、開発者向けには「Visual Studio」の緩和策オプションの有効化、システム管理者にはWindows Defender ATP(Advanced Threat Protection)による運用対策を推奨しつつ、『攻撃者は効率よく攻撃を仕掛ける。マルウェアが侵入しても発症を抑えればよい。OSやアプリケーション保護機能を有効活用してほしい』(村木氏)と述べて、最新OSへの移行を聴講者にうながした。

アプリケーションに対する標準緩和策と追加可能な緩和策
開発時に利用すべき代表的な緩和策
こちらも開発者向けの緩和策。「Visual Studio」の“GS”オプションなどが確認できる(記事初出時より画像を差し替えました)
「Visual Studio 2015」以降でサポートする制御フローガードも紹介された
こちらはユーザー側で対応できる緩和策。EMETの設定も「Windows PowerShell」でインポートできる

お詫びと訂正:記事初出時、「Visual Studio」で利用できるオプションを説明した画像に記載された情報に誤りがございました。画像を差し替えるとともに、お詫びいたします。