バッファオーバーフローについて紹介
攻撃者が許容量以上のデータを送り付けて、サーバを誤動作させてしまうバッファオーバーフロー攻撃について紹介します。
バッファオーバーフロー攻撃とは
バッファとはプログラム実行中に一時的に利用するメモリ領域になります。
・スタック領域:ローカル変数やメソッド情報を格納している領域。
・ヒープ領域:データの仮置き場。計算処理等を行い作業が終わったら解放される領域。
これら2つを合わせてバッファと呼ばれます。
バッファオーバーフロー攻撃というのは、このバッファ領域を超えるサイズのデータを送り付けてプログラムを誤動作させる行為となります。
この送り付けるデータの中に悪意のあるコードを含めることによって、サーバを乗っ取りデータを改ざんするという行為があります。
対策
根本的な対策として、直接メモリにアクセスできないようにすることが肝心です。
PHPやJAVAは直接メモリを操作することは避けており比較的安全です。ただしプログラムコードの異常終了等により発生する可能性はあるため、注意は必要です。
C言語を使っているサイトだと、メモリを直接操作しているため更に注意が必要です。
使用している場合、メモリにアクセスする記述は最小限に抑えて、集中的にオーバーフローを起こさないように入力制限のチェックを行う必要があります。