メモリ操作の安全性を保証する、ANSI C規格準拠C言語コンパイラ 81
タレコミ by Nuisan
Nuisan 曰く、
情報元へのリンク
数日前の話になりますが、産業技術総合研究所は4月11日、既存のC言語プログラムにメモリ操作の安全性を付与できるコンパイラ、「Fail-Safe C — release 1」を開発したと発表しました(産総研のプレスリリース)。
プレスリリースや開発部門である情報セキュリティ研究センターの解説ページによると、既存のソースコードをそのままこのコンパイラに掛けるだけで、危険なメモリ操作の自己チェック機能を備えた実行可能ファイルが生成されるという仕掛けのようです。更に、このコンパイラはANSI C規格に完全準拠しており、また厳密には規格違反だけれども既に一般的になっている様々な記述手法についても安全な範囲でサポートしているとのこと。
バッファオーバーフロー等、メモリ破壊が原因のソフトウェア脆弱性が後を絶たない現状ですが、こういうコンパイラが普及したら少しはそのような状況が改善されるのかなぁ、と期待します。このコンパイラはオープンソースでLinux対応だそうなので、C言語+Linux使いの皆様におかれましては、お手元のソースコードがこのコンパイラを通るかどうか実際に試してみるのも面白いのではないでしょうか。
以下、プレスリリースの概要を引用します。
独立行政法人 産業技術総合研究所【理事長 吉川 弘之】(以下「産総研」という)情報セキュリティ研究センター【研究センター長 今井 秀樹】ソフトウェアセキュリティ研究チーム【研究チーム長 柴山 悦哉】の 大岩 寛 研究員は、日本工業規格(JIS)や、米国規格協会のANSI C規格互換でメモリ安全性を確保するC言語コンパイラ「Fail-Safe C — release 1」を開発した。インターネット上で用いられるサーバーソフトウェアなどのセキュリティ脆弱性の防止に利用できる。今回、産総研情報セキュリティ研究センターは「Fail-Safe C — release 1」をウェブサイト上で一般に公開する(https://www.rcis.aist.go.jp/project/FailSafeC-ja.html)。
このコンパイラはC言語で書かれた既存のプログラムをそのまま処理し、プログラム中のメモリ操作の正しさを常に保証しながら動作させることが可能である。そのため、通常のコンパイラの代わりに、このコンパイラを用いてC言語で書かれたプログラムを処理すると、不正コードを含むコンピューターウイルス等によりプログラムが攻撃された場合でも、通常のコンパイラで処理されたプログラムのように実行が汚染されることや不正コードに乗っ取られたりすることを防止し、プログラムを安全に停止させることができ、システム全体の安全性が大きく向上する。
今回公開する「Fail-Safe C — release 1」は、Linuxオペレーティングシステム上で動作し、日本工業規格(JIS)または米国規格協会のANSI規格に準拠したC言語プログラムを基本的にすべて動作させることができる。これまで完全なメモリ安全性とANSI規格への完全準拠を両立したものはなく、これを実現したことが本コンパイラの特長である。
情報元へのリンク