米国防総省DARPA、C言語のコードからRustへの自動変換実現を目指す「TRACTOR」プログラム開始
今回は「米国防総省DARPA、C言語のコードからRustへの自動変換実現を目指す「TRACTOR」プログラム開始」についてご紹介します。
関連ワード (募集要項、目指、軍事技術等) についても参考にしながら、ぜひ本記事について議論していってくださいね。
本記事は、Publickey様で掲載されている内容を参考にしておりますので、より詳しく内容を知りたい方は、ページ下の元記事リンクより参照ください。
アメリカ国防総省 DARPA(Defense Advanced Research Projects Agency:国防高等研究計画局)は、C言語のコードからRust言語のコードへ高い精度での自動変換実現を目指す「TRACTOR」(Translating All C to Rust)プログラムの開始を発表しました。
DARPAは軍事技術の開発および研究を行う機関であり、現在のインターネットはDARPの前身となるARPAが1967年に開始した「ARPANET」がその起源であることはよく知られています。
DARPAが発表したTRACTORプロジェクトは、C言語のコードからRust言語のコードへの自動変換を高い精度で実現することで、過去にC言語で開発された多くのソフトウェアをメモリ安全なソフトウェアにすることを主要な目標とし、応募者を募ってDARPAがそれを支援するという枠組みになっています。
メモリ安全なソフトウェアに取り組む米政府
米政府は数年前からソフトウェアの脆弱性に関する危機感を募らせています。今年(2024年)2月には、米ホワイトハウスの国家サイバー局長室が、ソフトウェアの脆弱性を減らすためにメモリ安全なプログラミングへの移行をテクノロジーコミュニティに対して呼びかける声明を発表しています。
参考:米ホワイトハウス「将来のソフトウェアはメモリ安全になるべき」と声明発表。ソフトウェアコミュニティに呼びかけ
例えば、C言語では、アプリケーション内で動作に必要なメモリ操作の責任をプログラマが負っています。しかしこれらメモリ操作に関するバグがソフトウェアの脆弱性につながるケースは後を絶ちません。
こうしたメモリ操作のバグのない、いわゆるメモリ安全(Memory Safe)なソフトウェアを実現するために、プログラマがメモリ操作の責任を負わずプログラミング言語側が自動的に処理をしてくれるC#、Go、Java、Python、Swift、Rustなどのプログラミング言語の利用が推奨されました。
国防総省にはC言語に依存する長寿命システムがある
今回、C言語が変換元として指定されたのは、C言語で書かれたシステムが大量に存在するからだとDARPは今回の発表の中で次のように説明しています。
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で近日中に発表される予定です。