現在地 HOME > 掲示板 > IT6 > 340.html ★阿修羅♪ |
|
Tweet |
◎今さら人に聞けない「バッファ・オーバーフロー」 [2004/09/24]【IT_Pro】
http://itpro.nikkeibp.co.jp/premium/
この1週間,IT Proでもっともアクセス数が多かった記事は「Windows XPを終了させるJPEGファイルが出現,9月のセキュリティ・ホールを突く」でした。パッチ未適用のWindows XPマシンでそのファイルを開くと,Windowsのシェルが終了する,というものです。
このセキュリティ・ホールは9月15日に公開されたもので,細工が施されたJPEGファイルを読み込むとバッファ・オーバーフローが発生し,JPEGファイルに仕込まれた任意のプログラムをそのユーザーの権限で実行させられる,というものです(関連記事)。セキュリティ・ホールには様々なものがありますが,過去に大きな被害を起こしたウイルス/ワームの中には,バッファ・オーバーフローを突いたものが数多くありました。
ところでこのバッファ・オーバーフロー,「なんとなく知っているつもりではあるのだが・・・もっと詳しく知りたい」とお考えの方もいらっしゃるのではないでしょうか。そこで今日の「Premium セレクト」では,バッファ・オーバーフローに関する基礎知識,その脅威と対策,を扱ったコンテンツをご紹介します。
********************************************************************************
その他記事のリンクがあります。(無料お試しサービスで読むことができます)
その内、最初の記事をご紹介しておきます。いつもは、スキャナで読み込みOCR処理で読込むのですが、背景に細かい模様があってできないので、今回は手入力です。(ふ〜っ、、)(^^;→汗
********************************************************************************
知っておきたいITキーワード【日経Computer2003.9.8 36頁】
【バッファ・オーバーフロー】
プログラムの不具合(バグ)の一種。CやC++言語で書いたプログラムで、プログラムが確保した主記憶の領域を超えて、データを入力した場合に生じる。この状態になると本来変更されるべきでない主記憶領域の値が書き替えられるため、プログラムは想定していない動作をする。「バッファ・オーバーラン」とも呼ぶ。
この現象を悪用して、ハッカーがパソコンやサーバーに不正なアクセスをしたり、ウイルスがパソコンやサーバーに感染したりすることがある。今年8月に流行したウイルス「Blaster」、2001年7月〜8月に大流行した「Code Red」は、意図的にバッファ・オーバーフローを引き起こして、パソコンに感染する。
C/C++のプログラムでは、データー入力を受け付ける際に固定長の「バッファ領域」を確保して、そこにデータを読み込むことが多い(Visual BasicやJavaなど他のプログラミング言語では、あまりそう言うことをしない)。データの大きさがバッファ領域を超えていないかどうか検査するコードを書いておけば、バッファ・オーバーフローは防げる。だが面倒なので、プログラマはついつい怠りがちである。
ハッカーやウイルスはそこにつけ込む。バッファ領域に入りきらず、あふれ出したデータは、主記憶上にある「スタック領域」を書き替えてしまう場合がある。スタック領域には、ある処理が終了した場合の戻りアドレスが書かれており、ここが変更されると処理を実行する順番が変わってしまう。
ある種のウイルスは想定以上のデータを書き込んで、スタック領域の戻りアドレスを書き換える。戻りアドレスを不正なプログラム(ウイルス)に関連付けており、この時点でウイルスが独自の処理を実行する。Blasterの場合、WindowsのRPC(リモート・プロシジャ・コール)インターフェースにバッファ・オーバーフローを引き起こすメッセージを送り、不正な命令を実行させる。この命令の内容は、ネットワークでつながったパソコンからウイルスの本体ファイル「msblast.exe」をダウンロードして、実行すると言うもの。こうしてユーザーが気付かない間に、ウイルスはパソコンに感染する。
バッファ・オーバーフローを防ぐには、プログラマーがコードの記述時に入力データの長さを検査するコードを書く必要がある。ユーザーはセキュリティ情報に常に注意し、バッファー・オーバーフローが起きるコードが見つかった場合は、すみやかに修正用のソフト(パッチ)を適応することが重要である。
8月に流行したBlasterが利用するバッファ・オーバーフローは6月27日に米国のセキュリティ調査会社が発見した。7月17日には、マイクロソフトが修正ソフトを公開していた。Blasterが検出されたのは、約1ヵ月後の8月21日である。この間にパッチを適応していれば、感染を防ぐことができた。
(坂口)
★初めての方は,「無料お試しサービス」をご利用ください★
<バッファ・オーバーフローの基礎知識>
知っておきたいITキーワード 【バッファ・オーバーフ ロー】
(日経コンピュータ, 2003/09/08号, 36ページ掲載)
講座 ウイルス/ワームはなぜうつるのか−−中編 セキュ リティ・ホールを突いて 感染を広げるワームの脅威
(日経システム構築, 2003/05号, 164〜169ページ掲載)
本当に知っている?Windows 2000/XPの基礎 なぜWindowsは ウイルスに感染するのか?
(日経Windowsプロ, 2004/04号, 138〜143ページ掲載)
特集 Windowsセキィリティの深層 歴代ウイ ルスが飛びついた“おいしい”機能 第2部 実例
(日経バイト, 2003/12号, 26〜32ページ掲載)
<バッファ・オーバーフロー対策の製品・技術)>
特集 セキュリティ・ホールとの新たな闘い 作らない Part 2 作らない バッファ・オーバーフロー解消の道筋は見えた
(日経バイト, 2004/07号, 30〜37ページ掲載)
レポート いよいよ完成したWindows XP SP2 データ実行 防止機能の仕様が大幅変更 アプリケーションの互換性に注意
(日経Windowsプロ, 2004/09号, 14〜17ページ掲載)
特集1 Windows XP SP2の全貌 第3部 バッ ファ・オーバーフローを解決する データ実行防止機能が初めて実用化
(日経Windowsプロ, 2004/08号, 58〜59ページ掲載)
特集 セキュリティ・ホールとの新たな闘い Part 3 使わせない リソースを色分けして境界を作る
(日経バイト, 2004/07号, 38〜43ページ掲載)
Close UP セキュリティの切り札 「セキュアOS」 の正体 アクセス制御で侵入者の攻撃を無力化
(日経コンピュータ, 2004/06/14号, 138〜143ページ掲載)
講座 Webアプリケーションをセキュアに 入力チェック を怠ることで招く 不正アクセスの脅威と対策
(日経システム構築, 2004/06号, 154〜159ページ掲載)
[バッファ・オーバーフロー攻撃対策] CPUが用意してOSが使う 不正コードの実行を禁止する「NX」ビット
(日経バイト, 2004/04号, 11ページ掲載)
レポート 時流をつかむ 動向●導入容易なWebアプリケー ションの“防衛装置” ポリシー定義のきめ細かさと設定支援機能に製品 差
(日経システム構築, 2004/06号, 14〜16ページ掲載)