MicrosoftはWindowsオペレーティングシステム(OS)内部にある多数の欠陥を修正する必要に迫られたとき、「スタティックソースコードチェッカー」と呼ばれる技術と、Intrinsaという企業に注目した。
Intrinsaの製品PREfixは、開発者が作成したコードを分析し、検出したエラーにフラグを立てるものだ。Microsoftはこのプログラムを非常に便利だと考え、1999年にIntrinsaを6000万ドルで買収している。現在では、同様の製品を開発している企業数社が、セキュリティの点検に自社製品を採用するよう顧客に売り込んでいる。
Microsoftにとってこうしたツールは、Windowsコンピュータの安定性を向上させるための同社の取り組みTrustworthy Computing Initiativeのなかで重要な役割を担うようになっている。Microsoftは毎年、開発者2万人にセキュリティプログラミングの研修を実施しているが、これらのツールを使いこなすには日常な訓練が必要だ、と同社のセキュリティプログラムマネージャーMichael Howardは述べる。
「われわれが抱えている(セキュリティ)問題は、5年前とは異なっている。教育の成果で、人々はこうした問題を理解しているし、ツールも大幅に良くなっている。記述するコードの質も悪くない。もとからコードの質は良かった。」(Howard)
他の企業数社も、Microsoftが採用しているスタティックソースコードチェッカーのようなツールを売り込み始めている。こうしたツールはもともと、主にソフトウェア欠陥に関するデータを収集するという学術目的で開発されたが、現在では商用アプリケーションとして利用できるレベルにまで成熟していると、これらの企業は考えている。さらに、企業のIT管理者はセキュリティ欠陥の問題にはうんざりしていることから、この技術を採用したいという企業は多い。
ここ数カ月の間に、ハイテク業界が開発改善のための計画をリリースしたほか、ソフトウェアメーカーが信頼性のある製品を構築できないことを痛烈に批判するレポートをBusiness Roundtableが発表しており、開発者に対する注目が高まっている。企業のビジネスは、オンラインでの製品販売やパートナー企業との接続、電子メールなど、インターネットに依存している。しかしComputer Emergency Response Team(CERT)のCoordination Centerによると、過去2年間連続して、それぞれ4000件近くの欠陥が報告されているという。
「ここ数年、米国の企業や消費者に被害をもたらした重大なサイバー事件のほとんどでは、すぐにでも悪用可能な欠陥が存在するソフトウェアコードに根本的な原因があった」とBusiness Roundtableは4ページにわたるレポート「Framework for the Future」に記している。また、同レポートには「今日採用されているソフトウェアの開発プロセスには、製品の脆弱性につながるコーディング上の欠陥を、効果的にテストまたは管理したり、予防措置を講じたりするための工程が含まれていない」と記されている。
広く使われるようになったWindows OSに欠陥が含まれていたことで、Microsoftほどアメリカ産業界の怒りを買った企業はないだろう。Microsoftが、ソフトウェアの欠陥を根絶すること成功していると言えば、異論を唱える人は多いかもしれない。しかし同社が、セキュリティの向上に重点的に取り組んでいることや、コードを安全にするためのツールを獲得していることについては、異論を唱える人はほとんどいないだろう。
「Microsoftに憤慨している人の言い分もわかるが、Bill Gatesはちゃんと問題を把握している。誰もこの問題を無視できない」と、ウェブアプリケーション向けのセキュリティチェックツールを開発するSanctumの最高技術責任者(CTO)Steve Orrinは述べ、「これまで、品質保証担当にセキュリティについて考えるよう強制する企業はなかった。今は、状況が一変している」と付け加えた。
多くの企業が、インターネットの闇の部分を心配して自社が利用するソフトウェアの安全性を確認する方法を模索するようになった。そのため、Sanctumのようなビジネスがにわかに景気付いている。
Sanctumはもともと、オンライン攻撃者とウェブサーバ間の防壁として機能するソフトウェアの開発に重点を置いていたが、同社のソフトウェアのセキュリティ監査機能が開発者から注目され、その注目度があまりに高かったため、この分野に注力することになった。
「昨年、会社全体の戦略を開発に向けることにした。この間に起こった(市場の)変化の速さに驚いている」(Orrin)
これまでと変わったことは、インターネットを利用する企業が、もはやバグだらけのソフトに我慢できなくなったということだ、とコード分析ツールメーカーFortify Softwareの創設者兼マーケティングバイスプレジデントMike Armisteadは述べた。
確かに現在、開発者は欠陥をなくすためにソフトウェアの検証を行っているが、一般的に動作試験は、ソフトウェアが正しく動作するかどうかのみに主眼を置いている。
Armisteadによると、ソフトウェア開発者は「どうせ全部のバグを見つけるなんてできっこない。(しかも、それで問題はない。なぜならば)製品の出荷後に、ユーザーからフィードバックをもらって直すというのが業界の慣行になっているからだ」と考えているという。
すべてのセキュリティ担当者が、自分の見つけた欠陥について情報提供するとは限らない。しかも、セキュリティ専門家の多くは、バグを検知するツールが存在する状況下では特に、開発者がソフトウェアのバグを見つけられなかった場合に法的責任を問われる可能性があると考える。
「将来的には、プログラムをコンパイラにかけるときに、みんながこれらのツールを使うべきだ。いまだにバッファオーバフローを引き起こすようなコードを書く人がいることは、業界にとって本当に恥ずかしいことだ」と、ヴァージニア大学コンピュータサイエンス学部助教授で、自らもコード分析技術を開発した経験のあるDavid Evansはコメントした。
この記事は海外CNET Networks発のニュースをCNET Japanが日本向けに編集したものです。
CNET Japanの記事を毎朝メールでまとめ読み(無料)
ZDNET×マイクロソフトが贈る特別企画
今、必要な戦略的セキュリティとガバナンス
ものづくりの革新と社会課題の解決
ニコンが描く「人と機械が共創する社会」