セキュリティ分野における最大の成果はSDLプロセスの確立にある
|
――Microsoftはここ数年来、積極的にセキュリティ強化戦略を推進しているが、それにもかかわらず、相変わらず世間からは厳しい目で見られている。こうした状況にフラストレーションを感じるようなことはないのか。
それは、非難の内容にもよる。セキュリティの強化に関しては、他社も努力しているとは思うが、当社ほどではないはずだ。現実に、たくさんの人が、公正な立場に立って、それを評価してくれている。
確かに、Microsoftは、これまでセキュリティ分野で物笑いの種になってきた部分がある。しかし、最近の記事やアナリストのレビューを見ると、そのどれにも「Microsoftに追随すべきだ」ということが書いてある。その意味では、現在のわれわれの課題は、むしろ非現実的な期待にどう対応するかということにあると言える。
その点で、まずご理解いただきたいのは、当社のコードには脆弱性があり、それをゼロにするのは不可能だということだ。脆弱性が発見されると、すぐに、「結局、Microsoftがセキュリティの脆弱性を減少させるために採用した『セキュリティ開発ライフサイクル(Security Development Lifecycle:SDL)』は失敗したわけか」といった非難がなされるが、決してそうではない。SDLでは、すべてのバグを除去するという目標が掲げられているが、それはあくまでも1つの願望だ。
ここで、少し現実的に考えてみていただきたい。そうすれば、「すべてのバグを除去する」ことがいかに大変であるかがわかろうというものだ。こういうことを言うと、「SDLにこれだけの資金と労力を注ぎ込み、あれほど宣伝をしておきながら、まだそういうことを言っているとは……」との指摘を浴びることになるのは十分に承知している。だが、私には、それが公正な非難であるとはどうしても思えないのだ。
例えば、先ごろ起きたミネソタ州の橋の崩落事故を思い浮かべてもらいたい。人間が橋を作り始めてから、これまで、どれくらいの歳月がたっただろうか(少なくとも2000年はたっているだろう)。その歳月の長さからして、当然、人類は橋の作り方を熟知しているはずだ。だが、それでも崩れることがある。このように、人は往々にして、他人に非現実的(で過大)な期待をかけたがるものなのだ。
――Microsoftが「Trustworthy Computing」(TwC:信頼できるコンピューティング)の戦略を掲げてから6年近くたつが、その最大の成果は何か。
セキュリティ分野における最大の成果は、やはりSDLだ。これにより、製品の設計時に文書化された“脅威モデル”を構築するプロセスが確立された。つまり、コードをビルド/構造化する段階で、脅威を軽減する手段が講じられることになるわけだ。
脅威モデルは開発の過程でアップデートされ、常に最新の状態が保たれる。SDLプロセスの最後の段階では、最終的なセキュリティ検査を行い、製品および除去したバグをチェックし、セキュリティの観点から出荷できる状態にあるかどうかを審査する。
ここが、これまでとは最も大きく異なる点だ。当社の製品を時系列に沿って見てもらえれば、年を追うごとに脆弱性の数が著しく減ってきていることにお気づきいただけるだろう。
――では、SDLプロセスを採用して開発された初のOSであるVistaのセキュリティには満足しているか。
どちらとも言えない。まず、一定期間における脆弱性の数をXPと比較すると、確かにVistaのほうが少ない。これには満足している。だが、同時にわれわれは、人間が書いた複雑なコードに脆弱性がまったく存在しないなどということはありえないのも知っている。問題は、“スイートスポット”がどこで、われわれがそこに到達できたかどうかということだ。
私自身の答えは、「まだ到達していない」だ。1つには、バグを自動検知するツールをもっと強化する必要がある。そしてこれは、業界全体が抱える課題でもある。当社は確かに数多くのツールをそろえてはいるが、これらが完全に成熟の域に達しているとは考えていないし、業界全体にしても、まだできうるかぎりの努力を尽くしたとは言い難い。
Microsoftでも人間の手によるコード・レビューを数多く行っており、それを通じて問題の検知に努めている――それはそれですばらしいことだと思う。ただ、人間であるからには、問題を的確に処理することもあれば、見落とすこともある。それに、コード・ベースが膨大になれば、人間の能力では解決しきれなくなることもある。
その点、ツールは改良しながら使い続けることができるし、バグの問題を効率的に改善することもできる。そういう観点から、われわれは、Vista全般の進歩において、特に自動化ツールを強化する必要があると考えている。
