DARPAは、C言語コードからRust言語のコードへの変換を自動化することを目指す「TRACTOR」プログラムを開始した。
この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。
DARPA(Defense Advanced Research Projects Agency:米国国防総省国防高等研究計画局)は2024年7月31日(米国時間)、「Translating All C to Rust」(TRACTOR)プログラムの開始を発表した。非常に脆弱(ぜいじゃく)なレガシーC言語コードから、本質的により安全なRust言語のコードへの変換を自動化することを目指す。
広く使われてきたプログラミング言語であるCとC++は、メモリ安全性を備えていない。これらの言語では、プログラマーがメモリを直接操作できるため、誤ってプログラムエラーを引き起こし、メモリを破損させてしまう可能性がある。
ソフトウェアエンジニアリングコミュニティーは、このCとC++のメモリ安全性の問題に20年以上取り組んできた。その結果、バグ発見ツールに頼るだけでは十分ではなく、メモリ安全なプログラミング言語(Rust、C#、Go、Java、Python、Ruby、Swiftなど)を使うことで、メモリ安全性の脆弱性を排除できることが広く知られるようになっている。
ホワイトハウス国家サイバー局長室(The White House Office of the National Cyber Director:ONCD)も2024年2月に発表した報告書で、サイバー空間における攻撃対象領域(アタックサーフェス)を削減するため、メモリ安全性の脆弱性を排除する積極的なアプローチを求め、「IT企業がメモリ安全なプログラミング言語を採用することで、あらゆる種類の脆弱性がデジタルエコシステムに侵入するのを防ぐことができる」と述べている。
だが、C言語は1970年代に作られ、最新のスマートフォンから宇宙船まで、多種多様なユースケース向けのアプリケーション開発に使われてきた。国防総省で長年使われているシステムにも、C言語のようなプログラミング言語に依存しているものがある。
C言語で作成されたこうした膨大なコードを、メモリ安全なコードに書き換えることが課題となっている。
DARPAの新しいTRACTORプログラムは、世界中のレガシーCコードからメモリ安全なRustのコードへの変換を、大幅に自動化することを目指している。
DARPAがRustを採用した背景には、近年、システムプログラミングなどの分野でRustにシフトする動きが広がっていることがある。さらにDARPAは、大規模言語モデル(LLM)など、機械学習(ML)技術における最近のブレークスルーも活用したい考えだ。
DARPAのTRACTORプログラムマネジャーを務めるであるダン・ウォラック氏は、「LLMのWebサイトでAIチャットbotと対話しながら、CからRustへのコード変換を開始できる。研究課題は、プログラム構成要素をはじめ、自動変換を大幅に改善することだ」と述べている。
TRACTORは、熟練したRust開発者が作成するコードと同様の品質とスタイルで、Rustコードに変換されるようにすることで、Cプログラムのメモリ安全性のセキュリティ脆弱性を全体的に解消することに取り組んでいく。
ウォラック氏は、静的解析や動的解析、LLMなど、ソフトウェア解析の斬新な組み合わせを含む提案を期待している。TRACTORプログラムでは、LLMを利用したソリューションの機能、性能をテストするため、取り組みを通じて公開コンテストを開催する。
DARPAは2024年8月26日に、「Proposers Day」(提案者の日)というイベントの開催を予定しており、詳細情報をSAM.Govで提供して参加を募っている。
Copyright © ITmedia, Inc. All Rights Reserved.