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

バッファオーバーフロー

pointこの用語のポイント

point入れ過ぎちゃったよ

pointあふれちゃったよ

スポンサーリンク

簡単に書くよ

バッファオーバーフロー(英:buffer overflow)とは

「これくらい入るかな~」と思って確保していた領域よりもたくさん入れちゃって、入りきらなかった状態のこと
です。


image piyo

詳しく書くよ

バッファ」+「オーバーフロー」で「バッファオーバーフロー」です。

バッファオーバーフロー

バッファは「データを一時的に溜めておく場所」程度に解釈してください。
オーバーフローは「いやんっ、あふれちゃった(*ノノ)」な状態です。

以上を踏まえて

バッファ(データを溜めておく場所)がオーバーフローした(あふれた)状態

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

それでは一体何があふれたのか?
データです。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

このような

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

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

また、意図的にバッファオーバーフローを発生させることでプログラムに誤作動を起こさせようとする悪いことを「バッファオーバーフロー攻撃」と言います。

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

この「バッファオーバーフロー攻撃」を意図して「バッファオーバーフロー」と表現している場合も あります。

状態を指しているのか攻撃を指しているのかは文脈から判断してください。


image piyo2

一言でまとめるよ

まぁ「バッファオーバーフロー」って単語が出てきたら「確保していた領域よりもたくさん入れてあふれた状態、あるいは、それを利用した攻撃なんだな~」と お考えください。

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

おまけ

■訳してみるよ

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

緩衝物からあふれる

となります。




書籍画像
わわわ説明術コラム
宣伝だよ
「分かった!」と思わせる説明の技術 知識ゼロの相手にも伝わるようになる本【Audible】
AI用語図鑑 ビジネス・開発・試験対策に使える厳選キーワード256
体系的に学ぶ 安全なWebアプリケーションの作り方 第2版 脆弱性が生まれる原理と対策の実践