安全なウェブサイトの作り方:IPA 独立行政法人 情報処理推進機構の、「バッファオーバーフロー 」から一部抜粋する。(この資料はPDFでしか提供されていない)
注意が必要なウェブサイトの特徴
バッファオーバーフローは C、C++、アセンブラなどの直接メモリを操作できる言語で記述されている場合に起こります。これらの言語を使って開発されたウェブアプリケーションを利用しているサイトは注意が必要です。
現在のウェブアプリケーションのほとんどは PHP や Perl、Java などの直接メモリを操作できない言語を使っており、バッファオーバーフローの脆弱性の影響を受ける可能性は低いといえますが、PHP や Perl、Java のライブラリの中にはバッファオーバーフローの脆弱性が存在していたものがあります。
根本的解決
- (i)-a 直接メモリにアクセスできない言語で記述する。
- (i)-b 直接メモリにアクセスできる言語で記述する部分を最小限にする。
- (ii) 脆弱性が修正されたバージョンのライブラリを使用する。
対応するCWE
- CWE-119(バッファエラー)
- CWE-119: Improper Restriction of Operations within the Bounds of a Memory Buffer