未知もしくは未修正のソフトウェアの脆弱性に直面した場合、皆さんはどのようにして企業や個人のデジタル資産を守りますか?
** 1 つの解としては、脆弱性の悪用を阻止してしまう (“悪用緩和技術“ を導入する) ことがあげられます。
2011 年 7 月 12 日 (US 時間)、米マイクロソフトが「Mitigating Software Vulnerabilities」というホワイトペーパーを公開しました。これ、何?と見てみると、そのタイトルの通り “ソフトウェアの脆弱性を緩和する” ことを推進するガイダンスです。
マイクロソフトは数年に亘り “悪用を緩和する” ことの実効性を謳い、導入を推進してきました。例えば DEP や ASLR、/GS などの緩和技術としてマイクロソフト製品に実装したり、Security Development Lifecycle (SDL) としてセキュリティに重点を置いた開発プロセスを採用したりしています。これにより、攻撃者による脆弱性の悪用を困難かつコストの高いものにします。
今回ホワイトペーパーを公開した理由は、SDL に基づく製品開発の概念がなかなかソフトウェア開発者に浸透していないことや、マイクロソフトで提供している “緩和技術” の導入が、互換性やパフォーマンス等の理由から企業管理者にとって容易でないことを受け、この状況を変えたいという想いからガイダンスを公開したと SRD ブログ (英語情報) で述べています。
ホワイトペーパーをダウンロードして見てみると、内容は、各緩和技術の詳細説明、導入時の注意事項、マイクロソフト製品における各緩和技術の実装状況 (マトリクス)、最後に、開発者や企業管理者、個人ユーザーが取れる対策についてまとめられています。
折角なので、お!と思った箇所を一部抜粋しました。マイクロソフト製品における各緩和技術の実装状況マトリクスですが、これだけまとまったものは過去に公開されていない (はず) です。
図 1: Windows OS (クライアント) のバージョン毎の各緩和技術の実装状況 (n=実装なし、y=実装ありで有効、OptIn=実装ありだが既定では無効、OptOut=実装ありで既定で有効、AlwaysOn=実装ありで無効にできない)
図 2: 各 OS 上の Internet Explorer における緩和技術の実装状況 (赤は実装なし、緑は既定で有効)
図 3: 各 OS 上の Office における緩和技術の実装状況 (赤は実装なし、緑は既定で有効)
ガイダンス最後 “Call to Action” では、開発者には MSDN の参考情報や開発時に使えるツール、管理者や個人ユーザーには、以前こちらのブログ等で何度か紹介した Enhanced Mitigation Experience Toolkit (EMET) を使っての緩和技術の導入を推奨しています。
未知もしくは未修正のソフトウェアの脆弱性は、人間がソフトウェアを開発する限り存在するものだと思います。1 つの安心材料としても、緩和技術の導入は推奨したいです。