米ホワイトハウス「将来のソフトウェアはメモリ安全になるべき」と声明発表。ソフトウェアコミュニティに呼びかけ

2024年2月27日

米ホワイトハウスの国家サイバー局長室(The White House Office of the National Cyber Director:ONCD)は、サイバー空間における攻撃対象領域を積極的に削減する目的で、テクノロジーコミュニティやソフトウェアコミュニティに対してメモリ安全(Memory Safe)なソフトウェアの実現を積極的に呼びかけるプレスリリース「Future Software Should Be Memory Safe」(将来のソフトウェアはメモリ安全になるべき)を発表しました。

fig

プレスリリースの中で、国家サイバー局長Harry Coker氏は「私たちは国家として、サイバースペースにおける攻撃対象領域を減らし、あらゆる種類のセキュリティバグがデジタルエコシステムに侵入するのを防ぐための能力と責任を担っています。そしてそれは、メモリ安全なプログラミングへの移行という、難しい問題に取り組む必要があることを意味します」 とコメントし、テクノロジーコミュニティ全体としてメモリ安全なプログラミングへ取り組むべきという方向性を示しました。

その背景には、これまで多くの深刻な脆弱性が、メモリ安全ではないことを原因としてきたためです。

同じくプレスリリースの中で、技術セキュリティ担当国家サイバー ディレクター補佐のAnjana Rajan氏は次のように説明しています。

「歴史上最も悪名高いサイバー空間上での出来事のいくつか 〜 1988年のMorrisワーム、2003年のSlammerワーム、2014年のHeartbleed脆弱性、2016年のTridentエクスプロイト、2023年のBlastpassエクスプロイトなどはいずれも突出したサイバー攻撃であり、日々において社会が現実に依存しているシステムに対する世界的な被害が発生しました。そしてこれらすべての根底にはメモリ安全における脆弱性という共通の原因がありました」

このプレスリリースと合わせて、ONCDはメモリ安全への取り組みを促進するためにプログラミング言語とソフトウェアの安全性の指標に関するレポート「Back to The Building Blocks」(PDF)も公開しています。

メモリ安全なソフトウェアとは

メモリ安全性の脆弱性については、2023年12月に米国家安全保障局(NSA)が発表したプレスリリース「U.S. and International Partners Issue Recommendations to Secure Software Products Through Memory Safety」の説明が分かりやすいので引用します。

Memory safety vulnerabilities are coding errors affecting software’s memory management code in which memory can be accessed, written, allocated, or deallocated in unintended ways. Types of memory-related coding errors mentioned in the CSI include buffer overflow, use after free, use of uninitialized memory, and double free. Exploiting these vulnerabilities could allow malicious actors to access or corrupt data, or run arbitrary malicious code with the same privilege as the system owner.

メモリ安全性の脆弱性とは、ソフトウェアのメモリ管理コードに影響するコーディングエラーのことで、メモリが意図しない方法でアクセス、書き込み、割り当て、または割り当てが解除される可能性があることを指す。CSIで言及されているメモリ関連のコーディングエラーの種類には、バッファオーバーフロー、メモリ解放後の使用、初期化されていないメモリの使用、二重のメモリ解放などがある。これらの脆弱性を悪用することで、悪意のある行為者がデータにアクセスしたり、データを破壊したり、システム所有者と同じ権限で任意の悪意のあるコードを実行したりすることが可能になる。

こうしたメモリ安全性における脆弱性を起こさないソフトウェアが、メモリ安全なソフトウェアであり、そのための保護機能を備えたプログラミング言語の採用がメモリ安全なソフトウェア実現のカギです。

NSAのプレスリリースの中では、メモリ安全な言語の例としてC#、Go、Java、Python、Rust、Swiftが挙げられています。

今後こうしたメモリ安全とされるプログラミング言語の利用が積極的に推奨されることになりそうです。

関連記事

あわせて読みたい

.NET Java セキュリティ ソフトウェアテスト・品質 プログラミング言語 Go Python Ruby Rust Swift




タグクラウド

クラウド
AWS / Azure / Google Cloud
クラウドネイティブ / サーバレス
クラウドのシェア / クラウドの障害

コンテナ型仮想化

プログラミング言語
JavaScript / Java / .NET
WebAssembly / Web標準
開発ツール / テスト・品質

アジャイル開発 / スクラム / DevOps

データベース / 機械学習・AI
RDB / NoSQL

ネットワーク / セキュリティ
HTTP / QUIC

OS / Windows / Linux / 仮想化
サーバ / ストレージ / ハードウェア

ITエンジニアの給与・年収 / 働き方

殿堂入り / おもしろ / 編集後記

全てのタグを見る

Blogger in Chief

photo of jniino

Junichi Niino(jniino)
IT系の雑誌編集者、オンラインメディア発行人を経て独立。2009年にPublickeyを開始しました。
詳しいプロフィール

Publickeyの新着情報をチェックしませんか?
Twitterで : @Publickey
Facebookで : Publickeyのページ
RSSリーダーで : Feed

最新記事10本