バッファオーバーフロー攻撃に備える【前編】
「バッファオーバーフロー攻撃」の仕組みとは? 何が危険なのか?
メモリ領域の脆弱性「バッファオーバーフロー」はどのように悪用され、どのような危険性をはらんでいるのか。対策のために知っておくべきバッファオーバーフローと、それを悪用した攻撃の裏側を解説する。
悪用されると企業に深刻な打撃を与える恐れがある脆弱(ぜいじゃく)性の一つが「バッファオーバーフロー」だ。「バッファ」とはデータを一時的に格納するメモリ領域を指す。バッファの容量を超えるデータを格納しようとすると、バッファからデータがあふれる。この現象がバッファオーバーフローだ。バッファオーバーフローが発生すると、システムやプログラムはあふれたデータをバッファ領域外のメモリ領域に格納し、その領域のメモリ内容を破損または上書きする恐れがある。
バッファオーバーフローは決して新しい脆弱性ではない。長年にわたって存在し、仕組みもよく知られている。にもかかわらず、バッファオーバーフローを悪用した攻撃を防ぐことは簡単ではない。攻撃者はバッファオーバーフロー攻撃によってWebアプリケーションを侵害し、企業LANの乗っ取りなどの深刻な被害をもたらす恐れがある。
攻撃の仕組みを理解することは、防御への第一歩だ。バッファオーバーフロー攻撃によってWebアプリケーションが危険にさらされるのを防ぐためには、何をすればよいのか。以下で対策に役立つ開発時と稼働開始後のベストプラクティスを紹介しよう。
攻撃者が悪用する2種類のバッファオーバーフロー
バッファオーバーフロー攻撃を仕掛ける攻撃者は、脆弱なWebアプリケーションを標的にする。攻撃者は脆弱性スキャンツールを使い、バッファオーバーフロー攻撃が成功しそうな脆弱性があるWebアプリケーションを見つけ出して攻撃を仕掛ける。
攻撃者が悪用するバッファオーバーフローは、主に以下の2種類に分類できる。
- ヒープベース
- プログラムが動的に確保するメモリ領域「ヒープ」でバッファオーバーフローを発生させる
- スタックベース
- エンドユーザーの入力データなど、プログラムの関数呼び出しに関連するデータを格納するメモリ領域「スタック」でバッファオーバーフローを発生させる
このうちヒープベースのバッファオーバーフローは悪用が困難であり、攻撃者はスタックベースのバッファオーバーフローを悪用することが一般的だ。スタックベースのバッファオーバーフロー攻撃では、攻撃者はスタック内でバッファオーバーフローを発生させて正当なデータを上書きし、プログラムに不具合を生じさせようとする。
スタックは、プログラムが関数を呼び出した後に戻る「戻り先アドレス」を格納する。攻撃者はバッファの容量を超える入力データによってバッファオーバーフローを発生させるとともに、この戻り先アドレスを入力データ内の悪意あるコマンドを格納したアドレスに置き換える。スタックでバッファオーバーフローが発生すると、プログラムは部分的にクラッシュしてしまう。プログラムは関数の戻り先アドレスを参照し、そこに処理の流れを戻すことで回復を試みる。ところが戻り先アドレスは悪意あるコマンドのアドレスに置き換えられているため、システムがこの悪意あるコマンドを実行してしまう。
このときプログラムは、自身の実行が続いていると誤認識する。攻撃者が標的のWebアプリケーションを通じて立ち上げたコマンド実行ウィンドウは、標的のWebアプリケーションと同じ権限の下で動作する。これにより、攻撃者はコマンド実行を通じてシステムを制御できるようになり、ファイル破損、データ改ざん、個人情報窃取といった行動が可能になる。
他にも以下の要素を悪用するバッファオーバーフロー攻撃がある。
- 整数オーバーフロー
- プログラミング言語で定められた整数の最大サイズを上回る計算結果となった場合に起きる脆弱性だ
- Unicode
- 半角英数字や記号などを含む128文字の文字コード「ASCII」(American Standard Code for Information Interchange)を想定しているバッファに、別の文字コードである「Unicode」の文字を送信し、バッファオーバーフローを発生させる。UnicodeはASCIIに含まれないギリシャ文字や漢字などの文字を含む
- フォーマット文字列
- データ出力の形式を指定する文字列のことを「フォーマット文字列」と呼ぶ。「printf」「sprintf」などフォーマット文字列を利用するデータ出力関数に未検証データを渡す処理がプログラム内にあれば、それが悪意あるコマンド実行を招く可能性がある
TechTarget発 先取りITトレンド
米国TechTargetの豊富な記事の中から、最新技術解説や注目分野の製品比較、海外企業のIT製品導入事例などを厳選してお届けします。
Copyright © ITmedia, Inc. All Rights Reserved.
TechTarget発 先取りITトレンド
米国TechTargetの豊富な記事の中から、最新技術解説や注目分野の製品比較、海外企業のIT製品導入事例などを厳選してお届けします。
この記事の著者
関連記事
新着ホワイトペーパー PR
-
製品資料
[株式会社インターネットイニシアティブ] 人材不足と属人化が深刻に 「攻められない情シス」を変革する一手とは? -
製品資料
[株式会社イトーキ] 会議室が「空いてるのに使えない」問題の解決策とは? -
事例
[株式会社イトーキ] 製造現場を取り巻く経営課題 「持続的な現場力」を強化する方法とは? -
製品資料
[株式会社イトーキ] 社員の力を引き出す、「ABW(Activity Based Working)」を実現する秘訣とは? -
製品資料
[株式会社BREXA Technology] 「インシデント初動対応」が遅れる3つの構造的要因とは?
こんなメディアも見られています
TechTargetジャパンに関連する情報をお探しであれば、こちらのメディアもお役に立てるかもしれません。
ベンダーコンテンツ PR
From Informa TechTarget
SpecialPR
アクセスランキング
-
1
「Active Directory」復旧で“詰む”企業が続出 ランサムウェアに備える4対策
-
2
Microsoft 365侵害企業の9割はMFA導入済み 1002人調査で見えた盲点
-
3
なぜノートPCの更新が「4年→6年」に? AIインフラ急拡大の余波
-
4
企業が「Microsoft Azure」を選ばざるを得ない理由
-
5
「RAGは終わった」は本当か――ロングコンテキストが変えたこと、変えられないこと
-
6
「オフィス移転・刷新に伴うネットワーク環境の実態」に関するアンケート
-
7
「セキュリティ運用と侵入後の初動防御」に関するアンケート
-
8
“RAG is dead”は本当? AIエージェントが切り拓く「次世代RAG」と検索の未来
-
9
WiMAXとは何か――技術とアプリケーション
-
10
「Windows」の不要なファイルを安全に消して容量を空ける方法
ホワイトペーパーランキング PR
-
1
「IT史に名を残すシステム障害」8選
-
2
AIが苦手な「汚いデータ」になっていない? AI投資を無駄にしないための注意点
-
3
急増する高度なフィッシング詐欺 先回りしてブロックするには何が必要?
-
4
法人向け光回線のプランはどう選ぶ? 機能面/保守体制/コストを一覧で比較
-
5
三井ホームに学ぶ「無線LAN環境」構築 快適なオフィスと高度なIT運用の両立法
-
6
SNMPより詳細で、パケット解析より簡単な「トラフィック可視化・分析」の方法
-
7
Microsoft 365のメールセキュリティ、3つの“死角”と追加で検討すべき対策とは
-
8
「RPA導入の成果が出ない」を防ぐ、成果につながる自動化対象業務の選び方
-
9
10G回線の真価をフルに享受するには? 導入前にチェックしたいポイント
-
10
サイバー脅威「トップ50」完全解説ガイド、新たな攻撃手法に対抗するには
TechTargetジャパン SNS
インフォメーション
注目情報をチェック
TechTargetジャパンをフォロー