CORPORATE SEARCH検索

バッファオーバーフローとは?攻撃方法や事例・対策をわかりやすく解説

[ 更新: ]

バッファオーバーフローは、プログラムの書き換えやサーバーダウンなどを引き起こすサイバー攻撃です。バッファオーバーフロー攻撃が実行されWebサイトの改ざんが行われるなどの被害を受ければ、企業単位で損失が出る可能性も考えられるでしょう。本記事では、バッファオーバーフローの概要から攻撃方法・過去の事例までくまなく解説します。バッファオーバーフローの仕組みを理解し、異常データに入り込まれないような対策を行っていきましょう。

目次

[ 開く ] [ 閉じる ]
  1. バッファオーバーフローとは
  2. DoS攻撃との違い
  3. バッファオーバーフロー攻撃の方法
  4. スタック領域を標的とした攻撃
  5. ヒープ領域を標的とした攻撃
  6. バッファオーバーフロー攻撃の被害事例
  7. 中央官庁のWebサイト改ざん
  8. Facebookのサービス一時停止
  9. バッファオーバーフロー攻撃を受けないための対策
  10. 危険なライブラリの回避
  11. 入力データの検証とフィルタリング
  12. バッファオーバーフロー攻撃に関する脆弱性の診断はGMOサイバーセキュリティbyイエラエへ
  13. まとめ

バッファオーバーフローとは

バッファオーバーフローとは、サーバーの領域を大きく超えるデータを送りつけ、誤作動を起こさせるなどの攻撃をする行為です。バッファとはパソコン上でデータを一時的に記憶する場所であり、このバッファの許容範囲を超えて溢れてしまう脆弱性をオーバーフローと呼ぶところから、バッファオーバーフローという名前がつきました。

バッファオーバーフロー

悪意ある人物により悪質なコードや大量のデータがサーバーに送り込まれ、意図的にバッファの領域を溢れさせられます。このバッファオーバーフローが引き起こされることによる誤作動の内容はさまざまで、プログラムの異常停止などの事象が発生します。

また、悪意のあるコードが送られてきた場合には、異常プログラムを作動させられる状態も考えられます。管理者の権限を奪われるなど、甚大な被害につながる可能性もあるでしょう。

DoS攻撃との違い

バッファオーバーフローとよく似ているサイバー攻撃に、DoS攻撃があります。どちらも許容範囲を超えたデータによる攻撃ですが、サーバーの内側から攻撃するか、外側に攻撃して負担をかけて誤作動を引き起こすかの違いがあります。

バッファオーバーフローがサーバー内部に大量のデータを送りつけられるのに対して、DoS攻撃はサーバーの許容を超えたデータを送りつけアクセスを集中させることにより誤作動を引き起こす手口です。サーバーへアクセスを集中させることで招く主な誤作動に、サーバーダウンがあります。標的がWebサイトの場合にはサイトが接続しにくくなる状態に陥ると考えられるでしょう。

【関連記事】サイバー攻撃とは?種類や被害事例、対策方法についてわかりやすく解説

バッファオーバーフロー攻撃の方法

バッファオーバーフロー攻撃では、バッファのどの部分を標的にするかにより実行できる誤作動が異なり、主に「スタック領域を標的として攻撃」「ヒープ領域を標的とした攻撃」の2つに分けられます。

バッファオーバーフローの攻撃方法について、詳しく解説していきましょう。

スタック領域を標的とした攻撃

スタック領域とは、呼び出されたプログラムの戻り先情報などが格納されている領域のことです。情報を下から積み重ねてスタック状に格納されることから、スタック領域と呼ばれます。この領域を溢れさせる攻撃を行うのが、スタック領域を標的としたバッファオーバーフロー攻撃です。

プログラムを溢れさせても格納されるというスタック領域の脆弱性につけ込んだ攻撃で、プログラムの戻り先で情報を書き換える状態を作り出します。正常な情報を溢れさせつつ、情報を戻すと同時にマルウェアなどを格納させます。その結果、システムが誤作動を起こしたり、悪意あるソフトが起動されたり、プログラムが乗っ取られたりといった被害が発生します。

【関連記事】マルウェアとは|ウイルスとの違いや種類・感染経路・感染したときの対処法

ヒープ領域を標的とした攻撃

ヒープ領域とは、プログラムを操作したり計算したりする際の情報が格納されている領域のことです。操作や計算といった動きをするため必要に応じて領域を確保します。この領域を溢れさせるのがヒープ領域を標的としたバッファオーバーフロー攻撃です。

ヒープ領域に大量のデータを送り込むことで、ヒープメモリが壊される・実行されているプログラムが強制停止されるなどの被害が発生します。

バッファオーバーフロー攻撃の被害事例

バッファオーバーフロー攻撃は、中央官庁やFacebookのサービス一時停止なども被害を受けている手口です。このことから、Webサイトを運営している企業にとっては対策が必須であることが伺えます。

それぞれの被害事例について、詳しく解説していきましょう。

中央官庁のWebサイト改ざん

中央官庁のWebサイトをはじめ、関連する多くの省庁のサイトが書き換えられるという被害が、2000年1月に発生しました。バッファオーバーフローの手口を使用し遠隔で操作できる悪質なコードが送られたため、サイト改ざんが起こったと結論づけられています。

Webサーバーのバージョンが更新されておらず古い状態だったため不具合が発生しており、そのバグ部分がバッファオーバーフロー被害の原因となりました。当時ネットリスクが広く認知されていなかった中で、中央官庁の被害はセキュリティ導入の大切さが知れ渡るきっかけになったと言われています。

Facebookのサービス一時停止

2015年1月には、FacebookのサーバーがDoS攻撃を受けました。数十分に渡りFacebookのサービスが使用できない状況に陥り、サービスが停止していた時間の広告収入がストップしたことにより、被害が出たと言われています。

「Lizard Squad」というハッカーの集まりが犯行声明を出しており、複数の地域から攻撃があったことが、のちに明らかになりました。

バッファオーバーフロー攻撃を受けないための対策

バッファオーバーフローはC、C++、アセンブラなどの直接メモリを操作できる言語で記述されている場合に起こります。現在のウェブアプリケーションのほとんどはPHPやPerl、Javaなどの直接メモリを操作できない言語を使っており、バッファオーバーフローの脆弱性の影響を受ける可能性は低いといえますが、PHPやPerl、Javaのライブラリの中にはバッファオーバーフローの脆弱性が存在していたものがあります。これらの言語を使って開発されたウェブアプリケーションを利用しているサイトは注意が必要です。対策に関する一例をご紹介します。

危険なライブラリの回避

ライブラリに脆弱性が存在する場合、そのライブラリを使う全てのアプリケーションにも脆弱性が存在する危険性があります。バッファオーバーフローが発生しないようにバッファを監視する「境界チェック」を実施していないライブラリ内関数の使用は避けるようにしましょう。

入力データの検証とフィルタリング

プログラムで問題を引き起こす可能性がある値をフィルタリングしてチェックすることで、想定された範囲内の値のみを受け付けるようにプログラムを設計しましょう。

バッファオーバーフロー攻撃に関する脆弱性の診断はGMOサイバーセキュリティbyイエラエへ

GMOサイバーセキュリティbyイエラエ

画像引用元:GMOサイバーセキュリティbyイエラエ

GMOサイバーセキュリティbyイエラエ」のWebアプリケーション診断では、攻撃者目線での擬似攻撃を行い、Webアプリケーションに内在する脆弱性を調査します。多くの実績と経験に基づく高い技術力で、お客様のシステムの脆弱性を徹底的に洗い出します。また診断方法の調整や診断対象の洗い出し支援など、総合的にお客様の支援が可能です。

診断ではバッファオーバーフローについても確認をしており、利用者から入力値を受信し処理する機能で、メモリに書き込むデータ長の検証の不備によりサービス妨害や任意コード実行を招く脆弱性がないかを診断しています。

GMOサイバーセキュリティbyイエラエの脆弱性診断を行い、バッファオーバーフロー攻撃の対策に役立ててください。

まとめ

バッファオーバーフローは、大量のデータを送りつけプログラムの領域を溢れさせることで不具合を引き起こすサイバー攻撃です。過去の事例からも、バッファオーバーフローに狙われるのは脆弱性が原因になっている場合が多いため、脆弱性を晒さないようなセキュリティ対策が必要でしょう。

企業の資産ともいえるWebサイトが改ざんされれば、機会損失につながる可能性が高いと言えます。バッファオーバーフローに必要となるデータの大量送信などが行えないよう、セキュリティ体制を整えておきましょう。

文責:GMOインターネットグループ株式会社