おさらいnote~第7回スタックバッファオーバーフローの脆弱性~
こんにちは、最近リングフィットをがんばっている宮下です。
毎回統一のない話題で申し訳ないのですが、今回はスタックバッファオーバーフローというexploit分野の攻撃手法の解説していきたいと思います。
今回は少しむずかしいかもしれませんが、がんばりましょう。。!
1.スタックバッファオーバーフローとは?
一つずつ砕いて説明します。
スタック・・・後入れ先出しのデータ構造を持つメモリ領域の一つ。(1,2,3の順番でデータを入れたら3,2,1とデータを取り出す)
特徴として、先に入れたものほどアドレスは高位のアドレスとなる。(アドレスの値が高い)
バッファ・・・ソフトウェアが利用するメモリ領域内で定義された指定のデータを一時的に保存するための領域のこと。
イメージ:メモリ領域が机で、バッファはその上に置かれたコップ
バッファオーバーフロー・・・用意した領域より多くの文字列を書き込んでしまうと、確保したバッファの領域外にも書き込まれてしまう。
イメージ:確保したバッファが持つ領域(コップ)より多くのデータ(水)を入れてしまうと、こぼれてしまう。
2.スタックバッファオーバーフローの脆弱性
もし、スタック領域のバッファの下に大事なデータがあったとします。
その状態でバッファオーバーフローを起こしてしまうと、大事なデータが上書きされて、正常に処理が続行できなくなってしまいます…!
第三者が文字列で入力できる環境にある場合に脆弱性と言えます。
大事なデータというのは、一例としては関数の戻りアドレスが挙げられます。
3.この脆弱性による問題
こうした欠陥を《うまく》悪用すると,そのプログラムのメモリ上に任意のマシン語プログラムを送り込み実行させることが可能になる場合がある。標的プログラムが高い権限で動作するものだった場合,その権限を乗っ取って対象コンピュータを意のままに操ることができてしまう。
<引用>https://www.ipa.go.jp/security/awareness/vendor/programmingv1/b06_01.html
4.最後に
今回はスタックバッファオーバーフローという脆弱性を紹介しました。
スタックバッファオーバーフローとは、メモリ領域の中で確保したバッファより多くのデータを入れてしまうと、それ以降のデータが上書きされてしまって正常な処理ができなくなることです!
間違っていることがあればコメントからお願いします〜
ありがとうございましたーー
この記事が気に入ったらサポートをしてみませんか?