Google、「メモリ安全性」に関する見解と対策をまとめたホワイトペーパーを公開「既存の全てのC++コードを別のメモリ安全な言語に書き換えることは非常に困難」

Googleは、「セキュアバイデザイン:メモリ安全性に関するGoogleの見解」と題したホワイトペーパーを公開した。

» 2024年03月07日 08時00分 公開
[@IT]

この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。

 Googleは2024年3月4日(米国時間)、「Secure by Design: Google’s Perspective on Memory Safety」(セキュアバイデザイン:メモリ安全性に関するGoogleの見解)と題したホワイトペーパーを公開した。

 このホワイトペーパーは、以下の内容で構成されている。

  • メモリ安全性バグの定義
  • 厳密なメモリ安全性の定義
  • データに見るメモリ安全性バグの影響
  • メモリ安全性バグの種類と理解の難しさ
  • メモリ安全性バグへの対処と課題
  • メモリ安全性の確保に向けた安全なコーディング
  • メモリ安全性を保証するアプローチとそのトレードオフ
  • 本番環境で使用される言語の安全性

 Googleは、ホワイトペーパーの公開を発表したブログ記事で、メモリ安全性の脆弱(ぜいじゃく)性(プログラムがメモリにアクセスする方法に関連する微妙なコーディングエラーによるセキュリティ上の欠陥)が過去数十年間、広く存在しており、エンドユーザー、IT業界、社会を危険にさらしていると指摘している。ホワイトペーパーの公開により、この問題に対処してきたGoogleの洞察と経験を共有することで、メモリ安全な慣行と技術の採用へのヒントを広範なコミュニティーと業界に提供し、技術の安全性向上につなげたい考えだ。

 Googleは、自社のセキュリティチーム「Project Zero」の調査結果を引き合いに出し、実際に検知されたゼロデイエクスプロイト(攻撃コード)の3分の2が、メモリ破損の脆弱性を悪用していると述べ、この脆弱性は以前から、最もよく悪用されている脆弱性の一つだと指摘している。

 またGoogleは、米国国家サイバー長官室が2024年2月、サイバー攻撃の根本原因への対処を呼び掛けたレポート

「Back to the Building Blocks: A Path Toward Secure and Measurable Software」(ビルディングブロックへの回帰:安全で測定可能なソフトウェアへの道)を公開し、「Future Software Should Be Memory Safe」(将来のソフトウェアはメモリ安全でなければならない)とのプレスリリースを出したことにも言及し、メモリ安全性の確保に取り組むことの重要性を強調している。

メモリ安全な言語への移行と既存C++コードの安全性改善

 Googleは、「安全なコーディング」のアプローチの下でメモリ安全性の問題に取り組んできた経験から、「高保証のメモリ安全性は、厳密なメモリ安全性を保証する言語を包括的に採用することを中心とした『セキュアバイデザイン』のアプローチによってのみ達成できる」と認識している。そのため、Java、Go、Rustのようなメモリ安全な言語に段階的に移行することを考えている。

 だがGoogleの場合、過去数十年、大規模なJavaやGoのメモリ安全なコードベースに加え、数億行のC++コードも開発、蓄積してきた。こうした膨大な既存コードベースがあるため、メモリ安全性への移行には、以下のような大きな課題を抱えている。

  • C++を、厳密なメモリ安全性を保証する言語へと進化させる現実的な道筋は見えない
  • 既存の全てのC++コードを別のメモリ安全な言語に書き換えることは非常に困難であり、今後も現実的ではないと考えられる

 そこでGoogleは、新しいコードや、特にリスクの高いコンポーネントをメモリ安全な言語に移行するとともに、これを既存C++コードの安全性改善によって、補完することが重要だと考えている。

 部分的にメモリ安全なC++言語のサブセットに徐々に移行し、可能な場合にはハードウェアセキュリティ機能で補強することで、大幅な改善が達成できるとの見通しを示している。

メモリ安全な言語への投資

 Googleは、ホワイトペーパーの公開を発表したブログ記事で、メモリ安全な言語への最近の投資実績も以下のように紹介している。

  • モバイルプラットフォームの「Android」ではここ数年、UWB(Ultra-Wideband)モジュールなど幾つかのコンポーネントがRustで開発され、セキュリティの改善につながっている
  • 「Chrome」ブラウザは、Rustで作成された機能を提供し始めている。Rustベースのライブラリを採用したQRコードジェネレータもその一つだ
  • Googleは2024年2月、C++コードとRustの相互運用性向上を目的としたRust Foundationへの100万ドルの助成を発表した
  • Googleは、ISRG(Internet Security Research Group)の「Prossimo」プロジェクトと、OpenSSFの「Alpha-Omega」プロジェクトを通じて、メモリ安全なオープンソースのエコシステム構築に投資している。これらのプロジェクトでは、メモリ安全な言語による主要なオープンソースソフトウェアやライブラリへの移行やアップグレードが行われている

Copyright © ITmedia, Inc. All Rights Reserved.

スポンサーからのお知らせPR

注目のテーマ

Microsoft & Windows最前線2025
AI for エンジニアリング
ローコード/ノーコード セントラル by @IT - ITエンジニアがビジネスの中心で活躍する組織へ
Cloud Native Central by @IT - スケーラブルな能力を組織に
システム開発ノウハウ 【発注ナビ】PR
あなたにおすすめの記事PR

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。