
(学習たれ流し)バッファオーバーフロー
概要
バッファオーバーフローを引き起こすようなリクエストを送信し、ウェブサーバ側で任意のコードを実行させたり、ウェブアプリケーションを異常終了させる攻撃。
発生しうる脅威
プログラムの異常終了:意図しないサービス停止
任意のコード実行:ウイルス、ワーム、ボット等への感染、バックドア設置、情報漏えいなど
注意が必要なウェブサイトの特徴
C、C++、アセンブラなどの直接メモリ操作を行える言語で記述されているシステム。
※PHP、Perl、Javaは直接メモリ操作ができないため現在は危険性が無いが、過去にはライブラリの中にはバッファオーバーフローの脆弱性が存在していたものもあった。
根本的解決
直接メモリアクセスできない言語で記述する
PHP、Perl、Javaなど直接メモリ操作ができない言語で記述する。
直接メモリアクセスできる言語で記述する部分を最小限にする
C、C++、アセンブラなど直接メモリにアクセスできる言語で記述された処理を呼び出す場合などの時は、使用箇所を最小限に止め、脆弱性が無いことを集中的に確認する。
脆弱性が修正されたバージョンのライブラリを使用する
古いライブラリは脆弱性が存在する場合があるため、修正されたバージョンを使用する。