Windows10が「史上最も安全」な理由

上田欣典氏(以下、上田):みなさま、初めまして。日本マイクロソフト株式会社のWindows&デバイス本部で、Windows10のマーケティングを担当しております、上田と申します。本日は、お忙しいなか、ご参加いただきまして誠にありがとうございます。

本テックサミットでは新しいテクノロジーが、非常にめじろ押しとなっています。とくに、Windows Server 2016のローンチであったり、私の担当しておりますWindows10は、非常に注力してセッションを作っておりますので、ぜひご参考にしていただければと思います。

新しいテクノロジーとして、1つご紹介します。「Microsoft HoloLens」が、日本でついに発表になりました。この中身では、Windows10が動いてます。

それでは、本題に入っていきます。本日は「なぜWindows10は史上最も安全といわれるのか?」。レッドチームのアプローチ、ということで、ふだんあまりご紹介することのない、Windows10の開発において、我々マイクロソフトがいかに安全性を高めているのか。そして、そのなかでレッドチームが、一体どういう役割を果たしているのか。そのあたりを、ご紹介していきたいと思っております。

ここではとくに、開発や運用をいかに効率的にするかといったDevOps、そのなかにセキュリティを取り込んだDevSecOpsなど、そういったキーワードに関連する内容になっております。

本日は、「Windows10の開発において、いかに我々がセキュリティの向上に取り組んでいるか」を知っていただくことをゴールにさせてください。

1つ、残念なお知らせがあります。本セッションでは、新機能や非常に派手な見栄えのするデモは行いません。いかにWindows10が安全かということ、また、Windows10の開発を見て、我々がどういう取り組みを行っているかをご紹介させていただきます。そしてぜひ、みなさまの日々の開発の現場など、なにかしら取り入れていただけるようなものを目指していきたいと思っております。

では、本日のアジェンダです。

まずは「レッドチームとはなにか?」をご紹介します。そして、Windows10のWindows自体の開発におけるセキュリティの戦略をご紹介します。Windows10の開発で、いかにその戦略にのっとってセキュリティを向上していくか。この流れで進めていきます。

攻めのレッドチーム、守りのブルーチーム

このなかでレッドチームをご存知の方、いらっしゃいますでしょうか? 挙手をお願いします。

(会場挙手)

ありがとうございます。だいたい1〜2割くらいかなと思います。これ、なかなか聞きなれない言葉だと思います。

「レッドチーム」とは、ひと言でいうと「自ら製品を攻撃して、安全性を高める概念」に基づいて活動しているチームです。もともとはアメリカの海軍などで用いられていた概念で、実際に攻撃をして、守る。そして、シミュレーションを行う。そういった概念を、最近ではソフトウェアの開発現場にも持ち込んでいます。

レッドチームと、ブルーチームがあります。

レッドチームは、攻撃する側です。脆弱性を悪用した攻撃を、モデル化して実際に攻撃をシミュレーションするチームなんですね。ブルーチームとは、防御を行う側です。レッドチームに実際に攻撃されて侵入されることを前提にしています。その攻撃をいかに検出して封じ込め、対応して復旧するかに徹するチームです。

弊社では、レッドチームの概念を「Office365」「Azure」といったオンラインサービスで、先行導入していました。

とくに、オンラインサービスはパブリッククラウドなので、常に攻撃にさらされやすい。そのため、こういった概念を先行して、実際に攻撃をしてセキュリティを高めていくことを、オンラインのサービス側で取り込んできました。その考えをWindowsの開発、Windows製品にも持ち込んだのです。

バグを100パーセント取り除くのは不可能

では、Windowsの開発におけるセキュリティ戦略の変遷について、ご紹介していきたいと思います。まずは、これまでのセキュリティ戦略についてお話します。

マイクロソフトは、過去10年に渡ってセキュリティの重要性を認識し、重点的に投資を行ってきました。そのベースとなるのが、予防、プリベンティブという考えです。

ひと言でいうと「いかにして脆弱性を少しでも減らすか」「出荷前のバグや脆弱性をいかにして発見するか」といった戦略です。つまり、自分自身の防御を高めて、守って守って守り抜く。この考えを中心にした戦略なんですね。実際にこの戦略は非常に重要で、効果もあげています。

実は、マイクロソフトは、あらゆるソフトやカンパニーのなかでも、脆弱性の数自体は少ない会社と言われています。ただ、長年の取り組みのなかで、いくつか課題も見えてきています。この予防的なセキュリティの課題について、3つ挙げています。

1つ目は、これまで脆弱性をすべて取り除くことに注力していましたが、これ、実は非常にタフな戦いなんですね。なぜなら、1か0の戦いだからです。仮に、100個ある脆弱性のうち、99個の脆弱性を取り除いたとしても、たった1つでも残っているだけで攻撃されてしまうんです。

また、日々の開発現場でみなさんもご存知の通り、ソフトや開発において、バグを100パーセント取り除くのは不可能に近いのです。限界がある、そういった課題認識をしています。

2つ目は、個別のセキュリティです。

これは、例えばWindows10の開発現場では、あるコンポーネントとなるなど、機能単位でチームを構成し、開発しています。それぞれのコンポーネントや機能単位では、セキュリティを完璧に高めているんですね。

ただ、実は横の連携ができていないなど、横串全体のセキュリティは、あまり重視されていませんでした。もう1点。Windows10で動作するサードウェアパーティのソフトウェア会社との連携も、実はあまりとれていませんでした。個別のセキュリティは高めたけれど、全体的には見ることができていなかった。そういった課題があります。

そして3つ目は、脆弱性をなくして守りを固めることに注力してきました。先ほどから、スライド上でも脆弱性、脆弱性、脆弱性と書いていますけど。

実際の攻撃方法では、攻撃を受けた後に研究するなど、アドホックな対応しか取れていなかった部分があります。世のなかの攻撃状況を見てみると、やはり1つの脆弱性あれば、攻撃できたりします。

攻撃者は、ありとあらゆる手を使って攻撃します。個別のセキュリティをいくら高めても、彼らには関係なく、全体のなかでいかに欠点を見つけ、使えるものを使って攻撃をする。そういった状況があります。

大事なのは、敵を知ること

重要なのは、攻撃者の世界では、脆弱性よりも攻撃方法のほうが、金銭的な価値が高い。攻撃手法は脆弱性の10倍くらいお金の値段がすると言われています。裏のブラックマーケットでは、そういった値段で取引がされているのです。

そのため、攻撃者は攻撃手法を重点的に投資し、あらゆるツールやライブラリを開発しています。攻撃が今、非常に高度化し、ものすごいスピードで進化しています。

脆弱性を悪用した攻撃をゼロにするのは、けっこう難しい。そういうことに気付いたわけなんですね。

Windowsにバグがいっぱいあります。脆弱性、バグがあるところを見て、これを今までは「すべて潰す」と対応してきました。ただ、たった1つでもバグがあると、攻撃者はそこを突いてきます。そして、攻撃し、成功します。

さらに、仮にWindowsのコンポーネントとA、B、C、D、Eがあるとして。このコンポーネントや機能の単位でのセキュリティを高めてきました。仮に、攻撃者がコンポーネントBを攻撃したとしても、コンポーネントB自体は、守り固めているので崩せないです。

例えば、コンポーネントCからコンポーネントBを攻撃すると、成功してしまうことがあったり、サードパーティのソフトウェアの脆弱性を突いてWindowsを攻撃したりすると、実は成功してしまいます。最近ですと、Flashあたりが例として挙げられます。

今、個のセキュリティでは「全体を完全に防ぐのは難しいよね」に気付いた。さらには、脆弱性そのもの自体より、攻撃方法のほうが価値が高く、弊社は、「敵を知るところが重要なんだ」というところに注目をしました。

マイクロソフトの「リスク軽減戦略」

今現在のマイクロソフトでは、これまでの予防の戦略に加えて、リスク軽減の戦略を取り入れています。この戦略とは、攻撃され、侵入されていることを前提に、いかに「攻撃しにくくするか」「被害を軽減するか」。つまり、予防というセキュリティ方針に加えて、リスク軽減も行い、さらに強化する戦略です。

リスク軽減戦略のポイントには、2点あります。

1点目は、我々のビッグデータを駆使していること。そして2点目は、実際に攻撃を行って、それを安全かどうかを評価することです。ここで、先ほどのレッドチームが出てきます。

まず、ビッグデータを駆使する点について、見ていきたいと思います。ここには3つのプロセスがあります。

1つ目は、分析、そして構築、評価です。分析では、我々が持っている世のなかのデータを包括的に分析して、戦術的に攻撃を防止しています。例えば、将来的にセキュリティ強化ができそうなところを特定する。そして、実際に強化していく。

そして、構築です。これは、セキュリティのエンジニアが開発チームの各オーナーとともに、リスク軽減策のコンセプトを検討して、リスク軽減策をプロトタイプ化するというものです。今までできていなかった、横串でのセキュリティといったところを見ていきます。

最後に、評価。これは、セキュリティチームがリスク軽減策を評価して、回避方法や抜け穴がないかを確認し、実際に意味のあるものになっているかを見ていくわけですね。

昔は、この各フェーズがバラバラと個別に動いていて、タイミングも遅かったんですね。でも、今は違います。各フェーズが、同じタイミングで動いて、はやいサイクルでこの3つを回して、世のなかの脅威に迅速に対応していく。

これが冒頭でご紹介した、DevSecOpsに関係していきます。