Fail-Safe C: 安全なC言語コンパイラ
Fail-Safe C とは
Fail-Safe C は、完全な ANSI-C に対するメモリの安全性を保証する実装です。Fail-Safe C は、完全な ANSI-C 規格への準拠 (キャストや共用体を含む) を実現しながら、実行状態の破壊や乗っ取りに繋がる全ての危険な操作を検出し防止します。また、Fail-Safe C は、様々な「dirty trick」――必ずしも ANSI-C で厳密な意味では認められないが、広く一般のプログラマが利用している様々な記述手法――を、安全性を壊さない範囲でサポートしています。
Fail-Safe C では、コンパイル時や実行時の様々な最適化手法を組み合わせることで、実行時検査のオーバーヘッドの削減を行っています。このコンパイラを用いることでプログラマは、既存のプログラムを大幅に書き換えたり別の言語に移植したりすることなく、そのままプログラムを安全に実行することができます。
本研究の基盤研究は、2005年3月まで東京大学において行われてきたものです。2005年4月 より、実用化に向けて引き続き RCIS において「第2種基礎研究」としての研究開発が進められています。
2008年4月11日、「Release 1」を一般公開しました。
最新リリース: 2009年11月2日 version 1.6.0 (revision 2065)
担当研究者
協力者
Fail-Safe Cの開発の一部は、経済産業省 委託研究事業「新世代情報セキュリティ研究開発事業」(参考1 / 参考2) のテーマ『情報漏えいに堅牢な認証・データ管理方式とそのソフトウェアによる安全な実装・検証手法に関する研究開発』の一部として行われました。
また、ライブラリに関する研究・開発の一部は、上記事業の元で株式会社レピダムと共同で行いました。
クロスコンパイラおよび組み込み系アーキテクチャへの対応は、科学技術振興調整費「組込み環境向け情報セキュリティ技術」研究プロジェクトの一部として行われました。
この研究の一部は東京大学において、文部科学省 科学研究費補助金 特別研究員奨励費 及び特定領域研究「社会基盤としてのセキュア・コンピューティングの実現方式の研究」の資金援助を受けました。
本研究において、特に以下の方々に実装・理論面において支援を頂いています。
- 住井 英二郎 助教授 (東北大学) ― 理論面での助言
関連研究
本研究の派生プロジェクトとして、以下の研究が本センターとの協力関係の基で進められ ています。
- Fail-Safe C の実装方式を用いた C 言語から Java 言語へのソース変換 ― 東北大学 小林研究室
- VitC: 情報漏洩を防ぐC言語の実装 ― 東京大学 米澤研究室