本題の脆弱性と脆弱性に対する攻撃を解説する上でのプロローグとして、インターネットワームをご紹介します。なお、インターネットワームは、CSIRTの元祖的な存在であるCERT/CC設立の契機ともなった事案です。
脆弱性といえば、バッファーオーバーフローが頭に浮かぶ方が多いと思いますが、バッファーオーバーフローが最初に実環境で大規模に悪用されたのは、ここで紹介する1988年のインターネットワーム(Morris Worm)です。インターネットワームは、単に感染を繰り返すものでしたが、当時インターネットに接続されていたコンピューターの10%(6000台)に直接的な被害を与えたことに加え、被害を恐れてインターネットからコンピューターを切り離したサイトも多かったことから、大きな混乱を招きました。
RFC 1135
http://tools.ietf.org/html/rfc1135
1988年 インターネットワーム事件
http://www.soi.wide.ad.jp/class/20020008/slides/08/21.html
UNIX MAGAZINE 1989.10 UNIX Communication Notes 16
Worm,Worm,Worm
セキュリティ対策の「ある視点」(12):
プレイバックPart.I:ウイルスのかたち、脅威のかたち
http://www.atmarkit.co.jp/ait/articles/0810/14/news131.html
インターネットワームは、さまざまな手法を使って侵入(感染)を行いました。攻撃のターゲットなったのはBSD 4.2、4.3が稼働するVAXとSun-3です。Windowsは2.xの時代で、さほど普及しておらず、インターネットへの接続する機能や、インターネットワームがターゲットするようなサーバー機能はありませんでした。
インターネットワームが使った脆弱性などを以下に紹介します。
信頼関係を持ったコンピューター間で実施されるリモートコマンド(rexec)を使って、侵入したコンピューターと信頼関係を持つコンピューターに侵入を行った。
sendmailのデバッグオプションでは、一部のフィールドがシェルスクリプトとして実行できたため、これを使って感染を行った。
fingerデーモンがgets()を利用していたことから、バッファーオーバーフローの脆弱性を持っていた。VAX上の4.2BSDを標的としたコードで、他のプラットフォームでは動作しない。
/etc/passwdにハッシュとして格納されているパスワードと、自身が用意した辞書を比較した。いわゆるオフラインの辞書攻撃。
これらは現在にもつながる攻撃手法で、デジャブを覚えるような脆弱性や事件が報告されています。どれも興味深い問題ではありますが、fingerデーモンの攻撃に使われた、バッファーオーバーフローが、今回の連載のテーマです。
バッファーオーバーフローが日本で初めて大きく取り上げられたのは、2000年に多数の省庁のホームページが改ざんされたときです。改ざんはホームページのメンテナンスに使用されていたFTPを悪用したものと、Webサーバーの脆弱性を悪用したものが多かったと記憶しています。さすがに当時のことを伝える資料は少ないのですが、木暮 仁氏がまとめられた「中央官庁Webページ集中改ざん事件(2000年)に、事件の概要と当時の記事のURLなどが記載されています。残念ながら記事などについてはほとんど参照先がなくなってしまっています。
中央官庁Webページ集中改ざん事件(2000年)
http://www.kogures.com/hitoshi/history/virus-2000-web-kaizan/index.html
そして、ファイアウォールを設置していない状態、つまり、どこからでFTP接続ができる状況で運用されていたAnonymous FTPや、推測容易なユーザーIDとパスワードの組み合わせが悪用されました。
脆弱性については、Webサーバーの既知の脆弱性が悪用されて改ざんが行われたもので、ファイアウォールを利用していても防げない攻撃であること、適切な更新処理を行っていれば防ぐことができたことが指摘されています。なお、ファイアウォールと脆弱性の対策については2001年のCodeRedワームで改めて問題として浮上します。
インターネット白書2000 不正アクセス(2) 中央官庁への不正アクセスと米国主要サイトへのDDoS攻撃が多発(ネットワンシステムズ株式会社 白橋明弘氏)
http://iwparchives.jp/files/pdf/iwp2000/iwp2000-ch03-03-p171.pdf
インターネットワームは今でも興味深い事案で、まだまだ書きたいこともあるのですが、昔話はこのくらいにしましょう。次回以降、この当時から多用されているスタックオーバーフロー攻撃と、OSやコンパイラーに実装された対策について解説していきます。
高橋 正和(たかはし まさかず)
チーフ セキュリティ アドバイザー
1980年代初頭からミニコン、PC-98、8085、4ビットマイコンなどを使った制御システムの開発などを経験。
1980年代中頃から、日本デジタル研究所株式会社で標準ライブラリの開発保守、開発環境の開発保守、独自OSからWindows NT/Windows XPへの移植、品質管理、新入社員向けのC言語の新人教育などを担当した。
標準ライブラリでは、ファイルシステムやSocketライブラリの開発・実装・保守、開発環境では、68K系のCPUにWhite Sims’s Cによるリロケータブルな実行ファイル形式という特性を使って、オーバーレイリンカー・ローダー等も開発した。
1999年にISS(現在はIBM)セキュリティに関わり、2006年から現職(日本マイクロソフト株式会社 チーフセキュリティアドバイザー)を務める。
Copyright © ITmedia, Inc. All Rights Reserved.