プログラミング言語Rustの人気が高まってきているなか、Microsoftはその可能性を見極めようとしている。
Microsoftは、RustがCやC++などの代替となり、同社や他社のアプリのセキュリティを強化するうえでの方策になるかどうかを調査しようと計画している。
この情報は、Microsoft Security Response Center(MSRC)の主席セキュリティエンジニアリングマネージャーであるGavin Thomas氏が米国時間7月16日に同組織のブログ上で明らかにしたものだ。
Thomas氏は「MSRCがインシデントや脆弱性への対応組織だと考えている人もいるだろう」と述べたうえで、「われわれは対応組織でもあるが、積極的な役割も担っている。このため、ブログ上の新シリーズではより安全なシステムプログラミング言語に向けたMicrosoftの探求を取り扱っていきたい。手始めはRustだ」と続けた。
その目標は、誕生から時間が経っているCやC++といったプログラミング言語から「メモリーセーフな言語」と呼ばれるものに移行していくための道を開発者らに示すことにある。
Rustのようなメモリーセーフな言語は、バッファーオーバーフローや競合状態、メモリーリーク、解放後の使用、メモリーポインター関連のバグといった、メモリー破壊の脆弱性からの保護を目的としてゼロから設計されたものだ。
Microsoftが開発したC#というプログラミング言語も、メモリーアクセスに関してある程度の改善がなされているが、Rustほど高度なレベルには達していない。
Microsoftがリリースしたパッチのうちの70%はメモリー関連の問題修正
MicrosoftのセキュリティエンジニアであるMatt Miller氏は、2月にイスラエルで開催したセキュリティカンファレンス「BlueHat IL」で、過去12年にわたって同社が毎年公開してきたパッチのうち、およそ70%はメモリーの安全性に関するものだったと報告している。
提供:Matt Miller氏
その割合の高さは、「Windows」をはじめとするMicrosoftの製品群がCやC++で記述されているためだ。こういったプログラミング言語によって、開発者はメモリーアドレスや実行場所をきめ細かく制御できるようになるものの、言語自体は「メモリーセーフではない」のだ。
メモリーまわりの実行コードで開発者が1カ所でもミスをおかすと、リモート環境からのコード実行や特権の昇格を許してしまう脆弱性といった破壊的な結果を引き起こすために攻撃者が悪用できる、メモリーの安全を脅かすおびただしい数のエラーが生み出されることになる。
Rustのようなメモリーセーフな言語の利用を検討することで、より安全なMicrosoftアプリを開発するための新たな道が開かれるだろう。