産総研、メモリ安全性を確保したC言語コンパイラを開発

 独立行政法人 産業技術総合研究所(産総研)は、JISやANSI C規格と互換性を持ち、メモリ安全性を確保したC言語コンパイラ「Fail-Safe C – release 1」を開発、2008年4月11日に一般公開した。ライセンスはQPL(Q Public License )を採用した。

 C言語は、通常は機械語を直接用いなければ記述できない低水準のメモリ操作を、高水準言語だけでできるのが大きな特徴だが、この特徴がセキュリティ脆弱性の原因となるバグを引き起こす大きな要因となっていた。一方、メモリ安全性を備えた他言語への移行は、移植コストやプログラマー教育コストなどの問題から、C言語プログラムを変更せずにメモリ安全性を確保できる技術が望まれていた。

 産総研が開発したFail-Safe Cは、仮想アドレス演算などの機構を導入。ANSI/ISO/JISの各規格で定められたC言語のメモリ操作に関する仕様を完全に満たし、再コンパイルするだけでウイルスなどの不正データを受信した際に実行状態の乗っ取りと、それによる不正機械語コードのメモリへの導入を完全防止できるという。

 また、実行時キャスト解析などの最適化技術を導入することで、メモリ安全性と実用的な実行速度を両立させた。C言語規格のほぼすべての機能と500以上の安全な標準関数を備え、Linux上でOpenSSL、OpenSSH、BIND9など既存サーバソフトを動作させられる。【鴨沢 浅葱/Infostand】

Fail-Safe C
https://www.rcis.aist.go.jp/project/FailSafeC-ja.html

産総研
http://www.aist.go.jp/