「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典イメージぴよ画像「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典

バッファオーバーフロー攻撃

pointこの用語のポイント

pointコンピュータを使った悪いことだよ

point意図的にバッファをあふれさせるよ

point異常終了させたり、変なプログラムを実行させたりするよ

スポンサーリンク

簡単に書くよ

バッファオーバーフロー攻撃(読:バッファオーバーフローコウゲキ 英:buffer overflow attack)とは

メモリ上に確保されている領域よりも大きなデータを突っ込んで誤作動を起こさせてやるぜ!な攻撃のこと
です。


image piyo

詳しく書くよ

順番に見ていきましょう。
まずは予備知識として「バッファオーバーフロー」について簡単に説明します。
「そんなの説明されなくても知ってるよ!」な人は適当に読み飛ばしてください。

バッファオーバーフローは「確保していた領域よりもたくさん入れちゃって、入りきらなかった状態」です。
もっと端的に言えば、あふれちゃったわけですね。
データを溜めておく場所バッファがあふれたオーバーフローした)」状態です。

バッファオーバーフロー攻撃

プログラミングでは変数を扱います。
変数は「データを入れておく箱」です。
中にデータ(値)を入れます。

バッファオーバーフロー攻撃2

この変数ですが、実際にはメモリ上に場所を確保します。
メモリの上に「ここからここまで、この変数が使うから」と値を入れておくための領域を確保するのです。

バッファオーバーフロー攻撃3

よく分からない方は花見の場所取りをイメージしてください。
場所を取るために下に敷いたブルーシートが変数です。
その上に座る上司や先輩、花見の参加者が値です。

花見の参加者が多くなると、ブルーシートに座りきれません。
ブルーシートの外にはみ出してしまうでしょう。
そうすると、隣で花見をしている人たちの迷惑になってしまうかもしれませんね。

コンピュータの世界も同じです。

例えば、3文字まで入る変数をメモリ上に確保したとしましょう。

バッファオーバーフロー攻撃4

そこに4文字以上入れると、入りきらない分があふれてしまいます。

バッファオーバーフロー攻撃5

もし隣の領域を他の変数が使っていたら、どうでしょう?

バッファオーバーフロー攻撃6

他の変数の値を書き換えてしまいますね。

バッファオーバーフロー攻撃7

これは本来想定していない事態です。
困ったことになる可能性が高いでしょう。

このような

元々確保していた領域よりも大きい値を入れて、あふれちゃった状態

がバッファオーバーフローです。

ここまでの説明で、バッファオーバーフローについては、なんとなく分かったでしょうか。

以上を踏まえて

意図的にバッファオーバーフローを発生させることでプログラムに誤作動を起こさせようとする悪いこと

が「バッファオーバーフロー攻撃」です。

バッファオーバーフロー攻撃8

誤作動の内容は、いろいろです。

一番イメージしやすいのは、プログラムの異常終了でしょう。
バッファオーバーフローが起きるのは、プログラムにとっては想定外のできごとです。
その想定外のできごとを意図的に発生させることで、プログラムを力尽きさせます。

バッファオーバーフロー攻撃9

実際には、プログラムが力尽きる程度で済めば御の字です。
条件が合えば、悪いプログラムを実行させたりもできます。
おっかないですね。

バッファオーバーフロー攻撃に対する対処は単純です。
それは

バッファオーバーフローさせない

です。

「何を当たり前のことを?」と思うかもしれませんね。
確かに当たり前のことです。
ただし、その当たり前のことを当たり前にできていれば、バッファオーバーフロー攻撃は成立しません。

そもそもの話として、バッファオーバーフローが発生するのはプログラムがおかしいバグがある)からです。
プログラムは本来、バッファオーバーフローが発生してはいけません。
バッファオーバーフローが発生しないように作ってあるべきです。

バッファオーバーフロー攻撃はプログラムの おかしいところを利用した攻撃です。
おかしいところがないプログラム相手には使えません。
だから、バッファオーバーフローが発生しないようにしておくのが大事なのです。

作る立場の人は、ガッツリとテストして、バッファオーバーフロー攻撃なんぞ喰らわない強いプログラムを作ってあげてください。


image piyo2

一言でまとめるよ

まぁ「バッファオーバーフロー攻撃」って単語が出てきたら「確保している領域よりも大きなデータを入れて誤作動させてやるぜ!攻撃なんだな~」と お考えください。

一番上に戻るよ
スポンサーリンク
書籍画像002
書籍画像076

おまけ

■訳してみるよ

「buffer(バッファ)」の意味は「緩衝器」とか「緩衝物」とか「緩衝装置」とか「緩衝材」とかです。
「overflow(オーバーフロー)」の意味は「あふれる」とか「氾濫する」とかです。
「攻撃」は日本語ですね。
何となく くっつけると

緩衝物からあふれさせる攻撃

となります。


■検索してみる?




書籍画像
わわわ説明術コラム
宣伝だよ
「分かった!」と思わせる説明の技術 知識ゼロの相手にも伝わるようになる本【Audible】
おい点P、動くんじゃねえ!──ニガテ民のための算数と数学の本
ウォーターサーバーのキャッチコピーを100本考える方法