古典的バッファオーバーフロー攻撃
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/05/22 07:15 UTC 版)
「バッファオーバーラン」の記事における「古典的バッファオーバーフロー攻撃」の解説
バッファAの値を他のバッファBにコピーするとき、BのバッファサイズがAのバッファサイズよりも大きいことをチェックしない場合に生じる脆弱性である。この脆弱性は、プログラマーがこのようなチェックの実装を怠った事により生じる。これはプログラマーが最低限のセキュリティチェックすらしていないことを強く示唆する。 脆弱性の具体例としては、例えばC言語やC++において、配列サイズをチェックする事なく、配列にstrcpyやscanfで文字列等をコピーするといったものがある。攻撃者は意図的に大きな入力をstrcpy、scanf、getsに与えることで、古典的バッファオーバーフローを不正に生じさせる事ができる。 例えば攻撃者がバッファAをバッファオーバーフローさせる事により、Aの隣りにある変数xを不正に変更できた場合、xがセキュリティ上重要なデータ(例えば管理者権限を持っているか否かを判定するビットを保持している)であれば、セキュリティ上重要な問題が生じる。
※この「古典的バッファオーバーフロー攻撃」の解説は、「バッファオーバーラン」の解説の一部です。
「古典的バッファオーバーフロー攻撃」を含む「バッファオーバーラン」の記事については、「バッファオーバーラン」の概要を参照ください。
- 古典的バッファオーバーフロー攻撃のページへのリンク