2025年3月2日、C++言語の創始者Bjarne Stroustrup氏が、C++言語を「深刻な攻撃」から守るため、C++コミュニティに支援を呼びかけた。
背景には、過去数年間でサイバーセキュリティ機関や技術専門家がC/C++のメモリ安全性の欠点を指摘し、Rust、Go、C#などの代替言語の使用を推奨してきたことがある。
2024年10月、米国サイバーセキュリティ・インフラストラクチャセキュリティ庁(CISA)は、2026年1月1日までにメモリ安全でない言語を使用している製品のメーカーに対し、メモリ安全性のロードマップ作成か、メモリ安全な言語への移行を求めるガイダンスを発表した。
Stroustrup氏は2025年2月7日に「C++標準委員会(WG21)へのノート」を発表し、Profilesと呼ばれるメモリ安全性フレームワークを提案した。
一方、TrapCプロジェクトを主導するRobin Rowe氏は、Profilesが2026年までに間に合わないと指摘し、自身のTrapCコンパイラが2025年後半に準備できる見通しを示した。
ケンブリッジ大学の客員研究員David Chisnall氏は、言語レベルのメモリ安全性ソリューションに懐疑的な見解を示し、CとC++をより安全にするアプローチを支持している。
現在、C/C++で書かれたコードは世界中で数十億行に及ぶと推定されており、これらを短期間で書き換えることの困難さが指摘されている。
from:C++ creator calls for help to defend programming language from ‘serious attacks’
【編集部解説】
C++言語の創始者であるBjarne Stroustrup氏による呼びかけは、プログラミング言語の安全性に関する重要な議論を再燃させました。この問題は、単なる技術的な課題を超えて、国家安全保障にも関わる重要な課題となっています。
Stroustrup氏の懸念は、C++がメモリ安全性の欠如を理由に敬遠されつつあることです。これは、サイバーセキュリティ機関や技術専門家が、Rust、Go、C#などのメモリ安全言語の使用を推奨していることが背景にあります。
C++コミュニティは、この課題に対してさまざまな提案を行っています。Stroustrup氏が提案するProfilesフレームワークや、Safe C++ Extensionsなどがその例です。これらは、C++のメモリ安全性を向上させつつ、既存のコードベースとの互換性を維持することを目指しています。
しかし、これらの提案には課題もあります。例えば、Profilesの標準化や実装には時間がかかる可能性があり、2026年までに間に合わない可能性が指摘されています。
一方で、TrapCという新しいアプローチも注目されています。これはCのメモリ安全なフォークで、2025年にリリース予定です。TrapCは、C/C++に似た構文を持ちながら、メモリ安全性を保証することを目指しています。
これらの動きは、プログラミング言語の進化と安全性の向上という観点から非常に興味深いものです。しかし、既存のコードベースの移行や、開発者の再教育など、実務面での課題も大きいと言えるでしょう。
また、DARPAがAIを活用してCとC++のコードをRustに自動変換するTRACTORプロジェクトを進めているという点も注目に値します。これは、レガシーコードの安全性向上に大きな可能性を秘めています。
プログラミング言語の安全性向上は、サイバーセキュリティの強化につながる重要な取り組みです。しかし、その実現には技術的な課題だけでなく、開発文化の変革も必要となるでしょう。