出典: Artemis Diana via Alamy Stock Photo
マイクロソフトは過去25年間のセキュリティの教訓を振り返っています。世界で最も標的にされるデジタル資産の一つとして、同社は毎日その製品に対する脅威を間近で見ています。
2000年代初頭のサイバー攻撃、例えばコードレッドやSQLスラマーなどにより、マイクロソフトはWindowsオペレーティングシステムとコードベースのセキュリティを優先するようになりました。そして、些細なメモリ破損バグのカテゴリー全体が排除されました。マイクロソフトのレッドチームのシニアディレクターであるマイケル・ハワードは、先週のマイクロソフトのBuild開発者会議で述べました。安全なコーディングの取り組みにより、バッファオーバーフローを引き起こす危険なCライブラリ関数に対する保護策が設けられました。残っているメモリ破損の脆弱性は非常に複雑で見つけにくいものです。
「25年間で実際に進展があったのか?その答えは絶対的に、断固として、そして強くイエスです」とハワードは述べました。
ハワードは、SQLスラマーのワームが警鐘を鳴らしたと述べました。この脆弱性は2002年末に発見され、パッチが適用されましたが、未パッチのシステムが十分にあったため、2003年初頭に拡散しました。スラマーはわずか10分で世界中に広がり、10億ドルの損害を引き起こしましたと、ヒューストン大学の研究者による分析が示しています。
そのバグは今日のマイクロソフトでは決して現れず、ファジングのようなテスト技術で簡単に見つけることができるとハワードは述べました。
Loading...
関連記事:Picus、CVEsの優先順位を安全に下げるためのエクスポージャー検証を開始
セキュリティマインドセットの採用
ハワードは、インターネットインフォメーションサービスのバージョン3、4、5、6のセキュリティプログラムマネージャーとして、マイクロソフトでの初期の日々を過ごしました。Windows 2000と共に出荷されたIIS 5には、PKI統合、サーバーサイド証明書統合、サーバーベースの証明書失効などのセキュリティ機能がありましたが、製品自体は安全ではありませんでしたとハワードは述べました。
「それは私にとって火の洗礼でした。私はセキュリティ機能に取り組むために雇われましたが、結局は機能のセキュリティを確保するために働くことになりました」とハワードは述べました。
ハワードは2000年11月にビル・ゲイツと会い、脆弱性がどのように現れるか、攻撃者がそれをどのように見つけ、システムに侵入し、脆弱性を利用するかを説明しました。2年後、ゲイツは製品のセキュリティを優先するようにマイクロソフトチームに呼びかけるメモを発表しました。
その後、結果が現れ始めました。Windows Server 2003と共に2003年に出荷されたIIS 6.0は、絶対的に「堅牢で安全なプラットフォーム」でしたとハワードは述べました。
それ以来、マイクロソフトは安全なコードを確保するために、ファジングやコンパイラの保護など、多くの取り組みを実施してきました。
技術的負債がセキュリティを悩ませる
しかし、問題は残っています。同社の数十年前のコードベースはCとC++で書かれており、技術リーダーたちはこれを安全でないとし、多くのセキュリティ脆弱性の原因と特定しています。
関連記事:新しいテストフレームワークがサンドボックスの評価を支援
昨年、マイクロソフトはSecure Future Initiativeを導入し、より安全なコードを書くことに焦点を当てた要素を持っています。その一つの要素はRustへの移行を推進しています。メモリ安全なプログラミング言語を使用することで、コード内のバッファオーバーフローの可能性を減らすことができます。Googleや米国政府もCとC++を放棄し、Rustに移行するという広範な呼びかけに参加しています。
「CとC++の使用を再考する時が来ました…マイクロソフトで修正するセキュリティ脆弱性の約70%がメモリ安全性の問題です」とハワードは述べ、マイクロソフトは既にシステムファームウェアやPCハードウェアを管理するソフトウェアをC++からRustに移行したと指摘しました。
「コードを書き直すのであれば、メモリ安全性、正確性、スレッド安全性を確保するように設計されたもので書くべきです」とハワードは述べました。