米国防総省DARPA、C言語のコードからRustへの自動変換実現を目指す「TRACTOR」プログラム開始

2024年8月7日

アメリカ国防総省 DARPA(Defense Advanced Research Projects Agency:国防高等研究計画局)は、C言語のコードからRust言語のコードへ高い精度での自動変換実現を目指す「TRACTOR」(Translating All C to Rust)プログラムの開始を発表しました

DARPAがTRACTORプログラムを発表

DARPAは軍事技術の開発および研究を行う機関であり、現在のインターネットはDARPAの前身となるARPAが1967年に開始した「ARPANET」がその起源であることはよく知られています。

DARPAが発表したTRACTORプロジェクトは、C言語のコードからRust言語のコードへの自動変換を高い精度で実現することで、過去にC言語で開発された多くのソフトウェアをメモリ安全なソフトウェアにすることを主要な目標とし、応募者を募ってDARPAがそれを支援するという枠組みになっています。

メモリ安全なソフトウェアに取り組む米政府

米政府は数年前からソフトウェアの脆弱性に関する危機感を募らせています。今年(2024年)2月には、米ホワイトハウスの国家サイバー局長室が、ソフトウェアの脆弱性を減らすためにメモリ安全なプログラミングへの移行をテクノロジーコミュニティに対して呼びかける声明を発表しています。

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

例えば、C言語では、アプリケーション内で動作に必要なメモリ操作の責任をプログラマが負っています。しかしこれらメモリ操作に関するバグがソフトウェアの脆弱性につながるケースは後を絶ちません。

こうしたメモリ操作のバグのない、いわゆるメモリ安全(Memory Safe)なソフトウェアを実現するために、プログラマがメモリ操作の責任を負わずプログラミング言語側が自動的に処理をしてくれるC#、Go、Java、Python、Swift、Rustなどのプログラミング言語の利用が推奨されました。

国防総省にはC言語に依存する長寿命システムがある

今回、C言語が変換元として指定されたのは、C言語で書かれたシステムが大量に存在するからだとDARPAは今回の発表の中で次のように説明しています。

While it's been no secret that memory safe programming languages can eliminate memory safety vulnerabilities, the challenge has been rewriting legacy code at scale that matches the vastness of the problem. The C language was created in the 1970s and has become ubiquitous. It has been used to develop applications that run everything from modern smartphones to space vehicles and beyond. And the Department of Defense has long-lived systems that disproportionately depend on programming languages like C.

メモリ安全なプログラミング言語がメモリ安全に関する脆弱性を排除できることは周知の事実だが、課題は大規模に使われてきたレガシーコードを書き換えることなのだ。C言語は1970年代に作られ、あらゆる場所で使われてきた。最新のスマートフォンから宇宙船まで、あらゆるものを動かすアプリケーションの開発に使われてきたのだ。しかも国防総省には、C言語のようなプログラミング言語に大きく依存する長寿命なシステムもあるのだ。

そしてC言語のような低レイヤに対応したアプリケーション開発に適したメモリ安全なプログラミング言語として、Rust言語が位置づけられているわけです。

大規模言語モデルとソフトウェア解析の組み合わせを期待

DARPAでTRACTORのプログラムマネージャを務めるDan Wallach博士は、CからRustへの自動変換の手段として大規模言語モデルとソフトウェア解析の斬新な組み合わせを期待すると、今回の発表の中でコメントしています。

Wallach anticipates proposals that include novel combinations of software analysis, such as static and dynamic analysis, and large language models. The program will host public competitions throughout the effort to test the capabilities of the LLM-powered solutions.

Wallach氏は、静的解析や動的解析といったソフトウェア解析と大規模言語モデルの斬新な組み合わせを含む提案を期待している。 このプログラムでは、大規模言語モデルを利用したソリューションの能力をテストするため、取り組み全体を通じて公開コンペティションを開催する予定である。

TRACTORへの募集要項はSAM.GOVで近日中に発表される予定です

あわせて読みたい

セキュリティ プログラミング言語 機械学習・AI 開発ツール C Rust




タグクラウド

クラウド
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本