Webサーバへの攻撃を見抜く:インシデントの見抜きかた(1)(3/3 ページ)
ウイルス、ワーム、ボットによる攻撃……ネットワーク上に存在する脅威は多種多様である。サーバにアクセスされた形跡を見て、それが通常のものなのか、それとも脅威なのかを判断するには知識と経験が必要となる。そこで本連載では、インシデント・ハンドリングのために必要な「問題を見抜く」テクニックを分野ごとに解説していく(編集部)
SSLの脆弱性を狙った攻撃の例
最後にSSLの例を紹介する。SSLの脆弱性(MS04-011)を狙った通信とされていて、分析は少し難しい。
脆弱性自体は古いものだが、2007年の4〜5月にかけて国内で多く検知されている。
.b.................THCOWNZIIS!2^...%.lYNm...lYlY......Lp..XFWS2_32.DLL........]..,j0Yd... @..p...x.._<.....[x...K....S$..SQR.[ ..1.A1...4....1.....u...E .DE.f9.u.f1.ZX^VPR+N.A...J.......M .D...M u..M.t..M$.].S....j.X.E .Ey...P.E.5.....E.f.E.f5..f.E.X..1.SSSSVFV....UXf.0j.UW.U..E.P.U.UU.U.. D...Sh.exeh\cmd.1..E..WWWSS....R..ExP.E.P..SSj...RSSSU.U.j..U.
SSLの通信はネットワーク上を流れるときは暗号化されている。そのため、パケットを解析しても意味のつながらない文字列が見つかるだけである。
一見、上記例のパケットは不明な文字列に見えるが、はじめからゆっくり見ていってほしい。「THCOWNZIIS!」や「WS2_32.DLL」、「Sh.exe」、「cmd」という文字列が見つかっただろうか。これは明らかにおかしい。前述のとおり、SSL通信の正規手順に従ったパケットであれば、必ず暗号化されているはずである。
上記の異常性および、IIS、DLL、exe、cmdの文字を組み合わせて考えると、Windowsの脆弱性を狙っているのではないかと推測することができる。
なお、SSLの通信は実際のリクエストが発生するまでに、セッション確立のための鍵交換が行われる。この通信中に行われる攻撃もあるので、ログを調査したい場合は、事前に必要な項目を取得するよう設定しておく必要がある。Apacheであれば、confファイル中のSSLログ出力の部分で、変数を指定すればよい。
何が狙われているのかを判断することが対策の第一歩
繰り返しになるが、通信の内容から、「何が狙われているのか」を導き出すのが重要である。狙われているものが分かれば、対策までの時間が短縮できる。
以下に判断の処理フローを示す。
では、PHPの例で実際の判断の流れを示したいと思う。
図2において、1.および2.の事象から攻撃と判断ができるかどうかが重要である。不明なサイトへのアクセス、OSコマンドのような文字列を見分けることができれば、判断の精度は高まる。
4.の部分では影響を受ける対象が存在しているかどうかを判断している。Webアプリケーションを狙っている場合、該当のアプリケーションが存在しているかどうかが調査続行の判断基準になる。
5.の部分ではHTTPレスポンスのステータスコードを確認し、4xxクラスが返答されていることを確認する。なお、返答されていたとしても、6.および7.は行った方がよいだろう。
同様にSQLインジェクションの場合は、引数として指定されているSQL文から上記のような判断を行っていくことになる。
攻撃が成功してしまった場合、攻撃の発生以降のWebサーバのログが重要になる。攻撃者に「攻撃が成功したサーバ」として記憶されてしまい、本格的な攻撃を仕掛けられる可能性があるためだ。既知の脆弱性には確実に対策しておくことを推奨する。
なお、実際のインシデント・ハンドリングでは、同じアラート、IPアドレス間通信であったとしても1つ1つの攻撃対象、影響が異なる場合が多々あり、同じ手順だけでは判断できない。
そのため、脆弱性個々のアドバイザリやRFCなどの文献も参照しては、再度調査し直すなどを繰り返して精度を高める必要がある。
次回も引き続き、攻撃の実例を元に紹介する。
Profile
海老根 猛(えびね たけし)
セキュリティオペレーションセンター(SOC)
MBSD-SOCにおいて、顧客企業への不正アクセスを24時間365日体制で監視する専門家集団の1人。現在同社にて最新のセキュリティ技術動向の調査研究を行っている。
Copyright © ITmedia, Inc. All Rights Reserved.