「バッファオーバーフロー攻撃」を知る【前編】
知っておきたい「バッファオーバーフロー攻撃」とは? 主要な4種を紹介
メモリに許容量以上のデータを送り込む「バッファオーバーフロー攻撃」にはさまざまな種類がある。主要な4種類について、それぞれの特徴と攻撃手法について説明する。
「バッファオーバーフロー攻撃」とは、プログラムやプロセスの処理対象データを一時的に保持する固定長のメモリ領域「バッファ」に、許容量より多くのデータを書き込む攻撃のことだ。攻撃者は外部端末やプロセスから入力を受け取るプログラムを利用して、バッファオーバーフロー攻撃を引き起こし、プログラムの制御やクラッシュ、変更を可能にする。
アプリケーションベンダーはさまざまなパッチを提供して、バッファオーバーフロー攻撃に対処してきた。だが企業が社内で開発したアプリケーションはどうだろうか。自社開発のアプリケーションも、商用アプリケーションと同様にバッファオーバーフロー攻撃を受ける可能性がある。バッファオーバーフロー攻撃の仕組みを理解し、自社開発のアプリケーションの導入前に脆弱(ぜいじゃく)性テストを実行することが重要だ。
バッファオーバーフロー攻撃の種類
バッファオーバーフロー攻撃は、プログラムやプロセスが使用するメモリ内でのバッファの位置に応じて、以下の4種類を利用した攻撃に分類できる。
スタック
「スタック」とは、関数呼び出しに関するデータを格納するための、連続するメモリ領域だ。具体的には関数パラメータやローカル変数の他に、スタックフレーム(呼び出したデータの集合)やスタックポインタ(データの格納場所を示す情報)などスタックを操作するための管理情報も格納する。スタックベースのバッファオーバーフロー攻撃は、プログラムやプロセスを悪用して、入力情報をスタックに不正に格納する。
ヒープ
「ヒープ」は、動的に確保可能なメモリ領域を指す。開発者はコンパイル時、サイズ不明のメモリを確保するためにヒープを使用することがある。メモリがスタックに収まらないほど大きかったり、メモリを複数の関数呼び出しにまたがって使用したりする場合がこれに当たる。ヒープベースのバッファオーバーフロー攻撃は、プログラムやプロセス用に確保していたメモリ領域を溢れさせる。ただし、この攻撃は実行するのが難しく、あまり見かけなくなっている。
整数
算術演算に整数を使用し、システムで表現できる整数の最大サイズを上回る計算結果となった場合に起きるエラーを悪用したバッファオーバーフロー攻撃がある。ほとんどのプログラミング言語は整数の最大サイズを定めている。このサイズを上回ると、整数長の制限内に丸めて、誤った結果を返すことがある。
Unicode
全ての入力が「ASCII」(American Standard Code for Information Interchange)文字であることを想定しているプログラムを狙ったバッファオーバーフロー攻撃がある。ASCII文字は半角英数字や記号などを含む128文字の文字セットだ。攻撃者はそこに含まれないギリシャ文字や漢字などの「Unicode」文字を使用することで、バッファオーバーフロー攻撃を成立させる。
後編は、バッファオーバーフロー攻撃の仕組みと対策について説明する。
Copyright © ITmedia, Inc. All Rights Reserved.
「バッファオーバーフロー攻撃」を知る
「バッファオーバーフロー攻撃」を受けると、プログラムやプロセスの制御を攻撃者に奪われる恐れがある。本連載はバッファオーバーフロー攻撃の仕組みと対策について説明する。
この記事の著者
関連記事
新着ホワイトペーパー PR
-
事例
[株式会社ラクス] どうすれば「変革を楽しむ組織」になれるのか? 事例に学ぶ、未来への一歩 -
製品レビュー
[デル・テクノロジーズ株式会社] 変化するサイバー脅威に備える、これからのストレージの選び方 -
事例
[サイボウズ株式会社] 受注約1.5倍と年間2万3000時間超の業務時間を削減、日機装に学ぶDX実践術 -
製品レビュー
[サイボウズ株式会社] 人材不足にどう挑む? ものづくり太郎が語る、製造現場でのAI活用成功の鍵 -
市場調査・トレンド
[グーグル・クラウド・ジャパン合同会社] 金融機関はAIエージェント導入でどう変わる? 7つの変化から19の事例まで解説
こんなメディアも見られています
TechTargetジャパンに関連する情報をお探しであれば、こちらのメディアもお役に立てるかもしれません。
ベンダーコンテンツ PR
From Informa TechTarget
SpecialPR
アクセスランキング
-
1
Microsoft 365侵害企業の9割はMFA導入済み 1002人調査で見えた盲点
-
2
いまIBM iエンジニアが直面する「5つの技術的課題」とその解決策
-
3
RAGで「データをAIに送る」運用が限界を迎えている理由
-
4
SAPの負荷増に苦しむZeissが「リアルタイム分析」「安定運用」を両立させた道
-
5
なぜ「Claude Code」拡張は消しても危ないのか? Cursorで不正版配信
-
6
「Copilot」がIT予算を食いつぶす? 高額請求を招く課金体系と節約術
-
7
PHPはそもそも必要か? 脆弱性で問われる自社サイト安全性と保守負担のバランス
-
8
「Kubernetesプラットフォーム」に関するアンケート
-
9
【基本情報技術者試験】データ消失リスクを防ぐ3つの「バックアップ手法」を比較
-
10
IBM iのブラックボックス化を打破 資産継承と進化を実現する「IBM Bob」の実力
ホワイトペーパーランキング PR
-
1
「IT史に名を残すシステム障害」8選
-
2
侵入から横展開まで27秒の脅威にどう立ち向かう? 防御のカギがEDRの理由
-
3
有識者が語る、中堅中小企業に求められる最新のサイバーセキュリティ対策とは
-
4
AI駆動攻撃にどう対抗する? 超速の攻撃からエンドポイントを保護する方法
-
5
10G回線の真価をフルに享受するには? 導入前にチェックしたいポイント
-
6
なぜAIは組織で定着しないのか? 全社展開を阻む「3つの壁」と突破のヒント
-
7
パスワードレスへの移行で失敗しないためには? 導入・運用上の注意点を解説
-
8
自社のセキュリティ対策は大丈夫? 自己診断リストで対策の優先順位が分かる
-
9
ランサムウェア攻撃“究極の対策”はこれだ
-
10
Microsoft 365のメールセキュリティ、3つの“死角”と追加で検討すべき対策とは
TechTargetジャパン SNS
インフォメーション
注目情報をチェック
TechTargetジャパンをフォロー