Windows 8 に関してよく話題になることの一つは、どうすれば Windows を安全で堅牢な、信頼性の高いコンピューティング環境にできるかということです。Windows ではこれまでもこの目標に向けて幅広い種類のソリューションを提供してきており、業界のさまざまなパートナー企業と密接な協力関係を築いています。Windows 8 でもこうした機能を強化し続けると同時に、どのように PC を保護するかはユーザー自身が判断し、管理できるようにします。また、Defender の保護機能を拡張し、より幅広い種類の脅威に対応します。この記事は、この課題に取り組む複数のチームを代表して、信頼性とセキュリティ担当チームのグループ プログラム管理者である Jason Garms が執筆しました。--Steven

悪意のあるソフトウェア ("マルウェア") の日々変化する動向に対応して、より完全な保護機能をお届けするために、Windows 8 で私たちが行っているいくつかの取り組みについて、ここで紹介できることを嬉しく思います。この記事では、マルウェアが利用するエクスプロイトへの対策となるリスク軽減機能の強化、あらゆる種類のマルウェアに対するリアルタイムの保護を実現する Windows Defender の改良点、そして URL およびアプリに対する評価を利用したソーシャル エンジニアリング攻撃への対策についてお話しします。

現在の状況

犯罪者による攻撃は進化を続けており、マルウェアは彼らの標準的な武器として、インターネットを利用するすべての人にとっての脅威となっています。これは従来からのフォーム ファクター デバイスでも、タブレットや携帯電話のようなモバイル デバイスでも同様です。マルウェアはすべてのオペレーティング システムとブラウザーをターゲットとしており、近年ではアプリケーションに対する違法な攻撃も大幅に増加しています。

また、ユーザーを騙して危険な行動をさせるソーシャル エンジニアリングの手法も使われています。ソーシャル エンジニアリングの戦略として広まってきているのが、オンラインの広告キャンペーン (英語) を使って、コンピューターにマルウェアをインストールするサイトへとユーザーを誘導する方法です。

脆弱性を利用した確実なエクスプロイトが構築され、それを犯罪者が自分のマルウェアを拡散させるために購入するという図式で、ある種の経済 (英語) さえ形成されています。犯罪者はマルウェアから収益を得ているため、マルウェアの有効性を保つためにさまざまな投資を行います。たとえばマルウェアの数を増やしたり、マルウェアを高い頻度で (たとえば 1 日に何度も) 更新したり、サイズを大きくしてより複雑にしたりしています。一部のマルウェアは、商業アプリケーション並みに複雑なものとなっています。

堅牢な設計

私たちは Windows の構築においてセキュリティ開発ライフサイクル (SDL) (英語) を採用し、セキュリティ面の設計、開発、テストにおいて最良のプラクティスを適用しています。たとえば、次のようなものです。

  • 脅威のモデリングとセキュリティ設計のレビュー。設計プロセスでは、機能やシナリオに対して犯罪者がどのような攻撃を行う可能性があるかを検討し、その分析を設計に組み込みます。
  • 安全なコードの記述。トレーニングとコード品質チェック ツールにより、Windows のソース コードではコーディングの一般的な問題が発生しないようにします。
  • 侵入テスト。シナリオを構成する機能セットが完成したら、セキュリティ エンジニアが攻撃者の視点からレビューを行います。
  • セキュリティ コード レビュー。特に重要なコンポーネントについては、セキュリティ エンジニアがセキュリティ本位のコード レビューを追加で行います。
  • セキュリティ ツール。ソフトウェアを検索して活用するための最先端の技術を常時取り込んでいるツールによって、既存のコードを改良するためのスケーラブルなソリューションを利用できます。

Windows 8 におけるエクスプロイトの作成を困難にする

Windows XP SP2 以来、私たちはリスク軽減 (英語) と呼ばれる防御策の開発を進めてきました。これは、セキュリティ上の脆弱性に基づく確実なエクスプロイトの開発を困難にするものです。その後のバージョンの Windows でも、リスク軽減機能の拡張と改良を進めてきました。1 つのリスク軽減策で、類似のエクスプロイトをまとめて排除できるためです。Windows 8 でもリスク軽減機能は強化されており、一般的な攻撃の可能性をさらに低下させています。改良点には、次のようなものがあります。

  • ASLR (Address Space Layout Randomization)。ASLR は Windows Vista で導入された機能 (英語) で、メモリ内のほとんどのコードやデータの位置をランダムに入れ替え、コードやデータがすべての PC で同じアドレスにあるという前提を無効化するものです。Windows 8 では、ASLR の保護機能を Windows の他の部分にも拡張したほか、ランダム性の強化などの改良を加えて、既知の ASLR 回避技術の多くを使用できなくしています。
  • Windows カーネル。Windows 8 では、従来はユーザー モードのアプリケーションにしか適用されていなかったリスク軽減策の多くを、Windows 8 カーネルにも導入します。これによって、最も一般的なタイプの脅威に対する防御力が高まります。たとえば、Windows 8 ではユーザー モードのプロセスがプロセス メモリの下位 64 KB を割り当てることができなくなったので、カーネル モードでの NULL 逆参照による脆弱性の悪用を防ぐことができます。また、カーネル プールを破壊する攻撃に対する軽減策として、カーネル プール メモリ アロケーターに整合性チェックを加えています。
  • Windows ヒープ。アプリケーションは Windows ユーザー モード ヒープから動的にメモリを割り当てられます。Windows 8 のヒープの大幅な再設計により、新しい整合性チェックという形で強力な保護が加わり、多くのエクスプロイト技術を防ぐことができます。さらに、新しい Windows ヒープは割り当ての順序をランダム化するようになっており、オブジェクトの配置の予想に頼ったエクスプロイトが不可能になっています。既に成功を収めている ASLR と同じ方針を導入しました。また、一部の種類のヒープ割り当てにはガード ページを追加し、ヒープのオーバーランを利用したエクスプロイトを防いでいます。
  • Internet Explorer。過去 2 年間に Internet Explorer で報告された脆弱性の 75% 近くが、"解放後使用" によるものでした。Windows 8 では Internet Explorer にガードを導入して、攻撃者が無効な仮想関数テーブルを作成することを防ぎ、こういった攻撃を困難にしています。Internet Explorer は、Windows 8 が提供する ASLR の改良点もフルに活用します。

PC へのマルウェアの侵入を防ぐ

効果的なマルウェア対策は、インターネットに接続するすべてのデバイスにとって重要であり、今日販売されている Windows PC にも従来型のマルウェア対策ソリューションが搭載されていることがほとんどですが、その多くは期間限定版や試用版です。

遠隔測定データによれば、2009 年 10 月に Windows 7 が一般提供されて間もなくの段階では、ほぼすべての Windows 7 PC に最新の状態のマルウェア対策ソフトウェアが導入されていました。しかしその数か月後から、おそらくマルウェア対策の試用期限終了に伴って、この割合は月ごとに減少していきました。1 年後には、少なくとも 24% の Windows 7 PC が、更新されたマルウェア対策を施されていない状態になっていました。また、私たちのデータによれば、保護されていない状態になった PC は、その後も長期間保護されないままになる傾向があります。そしてマルウェア対策ソフトウェアは、更新が 1 週間遅れるだけで、新しいマルウェアに対する防御能力が大幅に低下 (英語) します。

私たちは、すべての Windows 8 ユーザーが、効果的で業界に認められたレベルの保護を提供する、従来型のマルウェア対策ソフトウェアによって守られるべきだと考えています。Windows 8 PC 向けに更新されることが期待される優れたマルウェア対策ソリューションは多数ありますし、多くの PC メーカーは今後もこういったソリューションをインストールした状態で Windows PC を出荷するでしょう。

Windows Defender

別のソリューションをインストールしない場合、Windows 8 では大幅に改良された Windows Defender が保護機能を提供します。

あらゆる種類のマルウェアに対応する、改良された保護機能。改良された Windows Defender は、Microsoft マルウェア プロテクション センター (英語) からのマルウェア シグネチャの完全なセットを利用して、ウイルス、ワーム、ボット、ルートキットなど、あらゆる種類のマルウェアからユーザーを保護します。このシグネチャは、最新のマルウェア対策エンジン (英語) と共に、Windows Update によって定期的に提供されます。この拡張されたシグネチャのセットは、スパイウェア、アドウェア、望ましくない可能性のあるソフトウェアのみをカバーしていた従来のものと比べて、大幅に改善されています。

さらに、新しい Windows Defender は、ファイル システム フィルターを使ってマルウェアの脅威に対するリアルタイムの検出と保護を提供し、Windows 8 のもう一つの新しい保護機能である "安全な PC の起動" とのインターフェイスも実現しています。

UEFI ベースのセキュア ブート (UEFI 2.3.1 仕様で定義) をサポートしている PC の場合、Windows の "安全な PC の起動" 機能により、ファームウェアおよびファームウェアの更新プログラムが安全であり、マルウェア対策ドライバーに至るまでの Windows ブート パス全体が改ざんされていないことを確認できます。これは、ブート パス内の適切に署名されて検証されたコード以外は読み込まないことによって実現されています。こうすることで起動や再開時に悪意のあるコードの読み込みを防ぐことができ、ブート セクターやブート ローダーのウイルス、ドライバーとして読み込まれようとするブートキットやルートキットなどに対する保護策となります。

Windows Defender が使用する "安全な PC の起動" と同じインターフェイス、および Windows Defender が使用する各 API は、Windows ユーザーに追加の保護を提供するために、マルウェア対策パートナーも利用できます。

  • ユーザー エクスペリエンスの向上。Windows Defender は普段の使用では干渉的な動作をしないように設計されており、なんらかのアクションが必要な場合や、注意を要する重要な情報がある場合にのみ、ユーザーに対する通知を行います。また、Windows Defender は Windows 8 の新しいメンテナンス スケジューラを利用して、割り込みを最低限に抑えます。
  • パフォーマンスの向上。従来のマルウェア対策テクノロジは、システムのパフォーマンスを圧迫することで知られていました。マルウェア対策ソフトウェアを実行しているために、ファイル コピーや起動といった主要なシナリオの所要時間が倍増してしまうことも珍しくありませんでした。先週のブログ記事でお読みいただいたとおり、システムのパフォーマンスの問題には多くの人員を割いて取り組んでおり、Windows Defender も、強力な保護を実現しつつ、主要なすべてのシナリオでのパフォーマンスは Windows 7 の一般的なマルウェア対策ソリューションと比べて劇的に改善されたものとなっています。たとえば、Windows Defender の保護機能をすべて有効にした状態でも、システム起動にかかる時間はわずか 4% しか延びず、しかもシステム起動中の CPU 時間を 75%、ディスク I/O を約 50 MB、ピーク時の作業セットを約 100 MB、それぞれ削減しています。

これらの改良は電力効率面でのメリットにもつながり、Windows Defender の消費電力はより少なくなったため、バッテリーの寿命が長くなります。

Windows 8 の開発プロセスを通じてマルウェア対策パートナーとの連携は続けていきますので、どのマルウェア対策ソリューションを選んでも、最良の Windows PC エクスペリエンスを得ることができるはずです。パートナーに対しては、Windows Defender のパフォーマンス改善を計画した際の技術的な詳細など、必要なリソースを提供し、パートナーの製品でも同様の改良を施すことができるようにしています。

Internet Explorer の Microsoft SmartScreen を Windows にも

従来型のマルウェア対策ソフトウェアは、攻撃に対する防御と修復において重要な役割を果たします。しかし、評価ベースのテクノロジを利用すると、ソーシャル エンジニアリング攻撃に対して、従来型のマルウェア対策シグネチャが利用可能になる前に、効果的な保護を行うことができます。正当なソフトウェアを装うマルウェアに対しては特に有効です。

Windows 8 では、Internet Explorer でのブラウズ中だけでなく、アプリケーションを起動する際にも、評価ベースのテクノロジを活用してユーザーを保護します。

SmartScreen フィルターは、URL 評価技術によって、リリース以来 15 億回以上のマルウェア攻撃の試みと 1 億 5,000 万回以上のフィッシング攻撃の試みから、Internet Explorer のユーザーを保護してきました。アプリケーション評価 (英語) は、Internet Explorer 9 で SmartScreen に加わった新しい機能で、URL 評価と従来型のマルウェア対策だけでは攻撃を防ぎ切れない場面で、より安全な決定を下すための新たな防御レイヤーを提供するものです。遠隔測定データによれば、Internet Explorer 9 ユーザーの 95% が、SmartScreen アプリケーション評価によって警告が表示された場合、マルウェアを削除するか実行を取りやめています。

Internet Explorer を使わずにインターネットからアプリケーションをダウンロードする場合もあるので、新しい Windows では、インターネットから入手したアプリケーションを初めて起動する際に、SmartScreen がアプリケーション評価チェックを実行するようになっています。

Windows 7 では、ダウンロードしたアプリケーションを起動する際に、次のような通知が表示されます。

Windows 7 のセキュリティの警告。"発行元を確認できませんでした。このソフトウェアを実行しますか? 実行/キャンセル。このファイルには、発行元を検証できる有効なデジタル署名がありません..." と表示。

Windows 8 の SmartScreen は、評価が確立されていないためにリスクが高いアプリケーションを実行しようとした場合にのみ、通知を表示します。

Windows 8 Developer Preview のセキュリティの警告。"Windows protected your PC; Windows SmartScreen prevented an unrecognized program from starting. Running the program might put your PC at risk." というメッセージと "Run Anyway"、"Don't Run" という 2 つのボタンを表示。

評価が確立されているアプリケーションの場合、ユーザー エクスペリエンスはシンプルでクリーンです。単にクリックして実行するだけで、Windows 7 で表示されたようなメッセージは表示されません。

SmartScreen は、ダウンロード時にファイルに付加されるマーカーの有無で、評価チェックの要否を判断します。これは "Mark of the Web" (英語) として知られるもので、すべての主要な Web ブラウザーと多くのメール クライアントや IM サービスでも、ダウンロードしたファイルにこのマーカーを追加するようになっています。

一般的なユーザーに SmartScreen のダイアログが表示される頻度は年に 2 回未満と予測されており、ダイアログが表示された場合は比較的リスクの高いシナリオであることを意味します。遠隔測定データによれば、Internet Explorer 9 経由でダウンロードされるアプリケーションの 92% が既に評価の確立されたものであり、警告は表示されません。また、同じデータによれば、アプリケーション評価の警告が表示された場合、そのまま実行することでマルウェアに感染する可能性は 25% ~ 70% です。なお、SmartScreen には管理機能も備わっており、技術に詳しくない友人や子供が警告を無視してしまうのを防ぐことができます。

Internet Explorer ではこのアプローチによって劇的な効果が見られており、より幅広い Windows のシナリオにもそれを導入できるのは、私たちにとっても嬉しいことです。

次のビデオでは、Windows Defender と SmartScreen の URL およびアプリケーション評価が実際に動作するようすをご確認いただけます。


ビデオをダウンロードしてお使いのメディア プレーヤーでご覧ください。
高画質 MP4 | 低画質 MP4

結論として、Windows 8 では、マルウェア対策のレベルを向上させるためにかなり幅広いアプローチを取ったと言えると思います。SDL プロセスによる設計レベルでの安全性、マルウェアが利用するエクスプロイトへの対策として導入およびアップグレードされた各種のリスク軽減策、あらゆる種類のマルウェアからリアルタイムにユーザーを保護するための改良された Windows Defender、そして URL およびアプリケーションの評価によるソーシャル エンジニアリング攻撃対策は、その主なものです。

お読みいただき、ありがとうございました。

--Jason Garms