編集部からのお知らせ
新着記事まとめPDF「ランサムウェア」
注目の記事まとめPDF「Chrome OS」

米国家安全保障局、CやC++からメモリー安全性の高いJavaなどへの移行を推奨

Liam Tung (Special to ZDNet.com) 翻訳校正: 編集部

2022-11-14 11:09

 米国家安全保障局(NSA)は米国時間11月10日、ソフトウェアのメモリー安全性強化に向けたガイダンスを公開した。同機関はその中で開発者らに対して、ハッカーらによるリモートコード実行(RCE)をはじめとするさまざまな攻撃からコードを保護するために、C#やGo、Java、Ruby、Swift、Rustといったメモリー安全性の高い言語に移行するよう推奨している。

デスクトップPCに向かう人物
提供:Getty Images/iStockphoto

 これらの言語の中では、Javaが企業向けアプリや「Android」アプリの開発で最も幅広く使用されている一方、Swiftは「iOS」アプリの開発環境に取り込まれている点もあって人気プログラミング言語の上位に入っている。また、RustはシステムプログラミングにおいてCやC++の代替として注目を集めつつある。

 同ガイダンスには「可能であれば、メモリー保護機能が言語自体にほとんど、またはまったく内在していないCやC++といった言語から、メモリー安全性の高い言語への移行に向けた戦略的遂行手段を検討することを組織や企業に推奨する。メモリー安全性の高い言語として、C#やGo、Java、Ruby、Swiftなどが挙げられる」と記されている。

 NSAはGoogleやMicrosoftにおける最近の調査結果を引用している。それらによると、「Google Chrome」や「Windows」内で発見されたセキュリティ問題の70%はメモリー関連に起因するものであり、その多くはCやC++といった、メモリー関連の脆弱性を作り込んでしまいやすい言語で記述されたために生まれたものだという。

 NSAは、「Software Memory Safety」(ソフトウェアのメモリー安全性)と題した「Cyber Security Information Sheet」(サイバーセキュリティ情報シート)に、「これらの脆弱性は、RCEやその他の破壊的効果をもくろむ、悪意を有したサイバーアクターらによって利用される恐れがある。また、こうした攻撃行動はしばしば、デバイスへの侵入や、大規模なネットワーク侵害に向けた第一段階につながる可能性がある」と記している。

 「CやC++などのよく使われている言語は、メモリー管理という点で多大な自由度と柔軟性があるものの、メモリー参照関連で必要となるチェックについては、プログラマー側での実行に大きく依存している」

 このためNSAは、アプリケーション開発であるかシステムプログラミングであるかを問わず、可能であればメモリー安全性の高い言語を使用するよう推奨している。

 同ガイダンスには「可能な場合にはメモリー安全性の高い言語を使用するよう推奨する」と記されている。

 情報セキュリティ関連のプロフェッショナルの多くは、メモリー安全性の高い言語に関する議論を何度も見聞きしているはずだが、すべての開発者がそうであるとは限らない。しかし、Javaの親とも言えるJames Gosling氏が、Javaを生み出した理由と手段に関する最近のディスカッションの中で指摘していたように、この問題が数十年前から存在している点を考慮すると、すべての開発者が理解しておくべきものだと言えるだろう。

この記事は海外Red Ventures発の記事を朝日インタラクティブが日本向けに編集したものです。

ZDNet Japan 記事を毎朝メールでまとめ読み(登録無料)

NEWSLETTERS

エンタープライズ・コンピューティングの最前線を配信

ZDNet Japanは、CIOとITマネージャーを対象に、ビジネス課題の解決とITを活用した新たな価値創造を支援します。
ITビジネス全般については、CNET Japanをご覧ください。

このサイトでは、利用状況の把握や広告配信などのために、Cookieなどを使用してアクセスデータを取得・利用しています。 これ以降ページを遷移した場合、Cookieなどの設定や使用に同意したことになります。
Cookieなどの設定や使用の詳細、オプトアウトについては詳細をご覧ください。
[ 閉じる ]