Microsoftの「Project Verona」プロジェクトは、Mozillaが開発したプログラミング言語「Rust」を低水準のWindowsコンポーネントと統合するという最近の取り組みとともに、「Windows 10」をよりセキュアにすることを目指している。だたし、「Windows」のコードが捨て去られるというわけではない。
同社は、Windowsからセキュアでないコードを除去するためにCやC++ではなくRustを採用するという試験的な取り組みが一定の成果を出したことを最近明らかにした。では、なぜMicrosoftはこうした取り組みを実行したのだろうか?
同社はRustの試用に至ったセキュリティ上の動機付けを断片的に説明しただけで、詳細については語っていない。
Windowsユーザーであれば、毎月第2火曜日に何があるのかを知っているはずだ。この日は、MicrosoftがWindowsのセキュリティに影響を与える脆弱性に対処するためのパッチをリリースする日だ。同社は最近になって、このところ発見されている問題の大半がメモリー安全性に関するものであり、Rustに目を向けているのはこの状況を改善するためだと明らかにした。Rustは、開発者がこの種の問題を気にせずにコードを開発できるようにすることを念頭に置いて設計された言語だ。
「メモリー安全性」とは、マルウェアによる不正な操作からメモリー空間を保護するための武器となるコーディング上の枠組みと言える。MicrosoftのProject Veronaは、この種の攻撃ベクターを封じ込める作業を推進するという目的を有している。
Project Veronaは確固たる成果をもたらさず、単なる実験に終わる可能性もあるとはいえ、同社が英国の非営利機関であるKnowledge Transfer Networkを通じてそのアプローチの一端を明らかにした点を考えると、一定の成果を上げたと言えるだろう。
MicrosoftのリサーチャーであるMatthew Parkinson氏は、ケンブリッジ大学コンピューター研究所に在籍していたこともある人物だ。同氏は「マネージドプログラミング言語のためのメモリー管理の調査」に専念してきており、この種のメモリー問題に対処するためのMicrosoftの取り組みに関する講演を英国で現地時間11月22日に実施した。
講演では、「Internet Explorer」(IE)と「Microsoft Edge」における「Memory Garbage Collector」(MemGC)の成果についても語られた。
MemGCは、一般的なブラウザーがウェブページを解釈する際に使用するデータ表現である「Document Object Model」(DOM)の中に潜んでいる脆弱性に対処するための機能だ。Googleの「Project Zero」に所属するエリートハッカーらは、主要ブラウザーを評価した際に、MemGCの効果に感銘を受けていた。
Parkinson氏はメモリー安全性に関する問題の多さを示したグラフの前で、「われわれはDOM用のガベージコレクター(GC)を開発した。解放後の使用がこれほど多いのは基本的に、IEのDOMエンジンに搭載されているメモリー管理機能を出し抜く方法を見つけようとする人々がいるためだ」と述べた。
「このため(Microsoftは)MemGCを採用した。これはDOM用の保守的GCだ。MemGCはこの種の脆弱性の解決に的を絞っていたため、攻撃ベクターはおおむね除去された」(Parkinson氏)