KEYWORD ENCYCLOPEDIA

キーワード事典 | セキュリティに関するキーワードを解説

バッファオーバーフロー
英語表記: Buffer Overflow

この記事をシェア

確保されたメモリー領域以上の大容量データを意図的に送りつけることで、メモリーの不具合を引き起こし、対象のマシンを不正に操作する行為


コンピューター上でプログラムが実行される際に、一時的にデータを保持するために確保されるメモリー領域をバッファと呼ぶ。そのバッファに対して、大容量のデータが送付され確保された領域から溢れ出す事象がバッファオーバーフローだ。溢れ出したデータが近接するデータを書き換えてしまうことで、メモリーの不具合を引き起こしてしまう。この攻撃を受けると、管理者権限の奪取、DoS攻撃の踏み台化などの被害につながる可能性がある。

バッファには、ローカル変数などを格納するスタック領域と、計算や演算のために動的に確保されるヒープ領域があり、それぞれがバッファオーバーフロー攻撃の対象となる。スタック領域の内部に格納される、関数の戻り先アドレスが書き換えられてしまい、悪意のあるコードが呼び出されてしまう。また、ヒープ領域に対しては、メモリー上のデータを破壊する、あるいは、値を書き換えてプログラムの制御を奪うといった攻撃がなされる。

IDSなどを用いた被害抑制のための対策も進む

バッファオーバーフローは典型的なソフトウェアの脆弱性であり、これまで多くのサイバー攻撃で悪用されてきている。2003年に報告されたSQLスラマーは、MicrosoftのSQLサーバーが抱えるバッファオーバーフローの脆弱性を突き、世界中でインターネットの接続障害等の問題を引き起こした。

バッファオーバーフローは、バッファの制御を開発者に委ねるC言語やC++言語で書かれたプログラムで発生するケースが多い。そのため、ソースコード検査ツールで脆弱性を検知したり、バッファオーバーフロー対策のためのライブラリや関数を利用したりする必要がある。

ユーザー側としては、セキュリティソフトや修正パッチを最新のものにし、バッファオーバーフローに対する脆弱性を適時、修正することが求められる。また、企業・組織向けの対策として、最近ではIDS(不正侵入検知システム)を導入してネットワークやサーバーの通信を監視し、バッファオーバーフローの兆候を検知する方法も開発されている。IDSが備える、既知の攻撃手法とのマッチング、あるいは異常な振る舞いの検知を行う仕組みによって、バッファオーバーフローによる被害を抑制することが期待されている。

この記事をシェア

サイバー攻撃対策に

サイバーセキュリティ
情報局の最新情報を
チェック!