SIMを上手に使いこなす[後編]

不審な通信や無許可ホストを見逃さない

二木 真明
住商情報システム株式会社
セキュリティソリューション事業部
事業部長補佐(技術担当)
CISSP
2005/11/11

 前編に引き続き、SIM(セキュリティ情報マネジメント)を使うことで、管理者はどんなメリットを得られるのかを紹介する。後編では、スパイウェアなどが発信する不審な通信や、NATを使って勝手にネットワークに接続された機器を見つけ出す方法を取り上げる。

 利用するSIMは、ArcSight社の「ArcSight ESM(Enterprise Security Manager)」だ。監視対象はインターネットに接続するためのファイアウォールとVPNサーバのみの比較的狭いネットワークである。

 不審な通信の監視

 最近、特定の対象を狙った不正プログラムやスパイウェアがまん延し始めている。これらの不正プログラムの多くが、外部のサイトに対して通信を行って情報持ち出しや指令受信などの不正行為を行うことが知られている。いわゆる「ボット」はその代表格である。

【参考記事】
変幻自在なBOTの正体を暴く
なぜBOTは増殖するのか

 このような不正プログラムの中にもウイルス対策ソフトなどでは検出が困難なものがある。とりわけ懸念されているのが、特定の会社のみを狙って送り込まれるものだ。拡散しない不正プログラムは対策ソフトベンダの盲点である。検体が入手できなければ、パターンへの組み込みができないからだ。また、振る舞い検知などの未知ウイルス発見機能は、頼りにするにはあまりに不確実である。

 そこで、「不正プログラムの存在を通信監視で見つけ出せないか」ということになる。しかし、一般のウイルスやワームのように派手な動きをしない“静かな”不正プログラムを発見することは極めて困難だ。

 例えば、あるボットは、いまではほとんど使われなくなったIRCのチャネルを通信手段に使うため、6667番ポートへの通信を監視していれば見つけることができる。しかし、使うポートをダイナミックに変化させるものや、TCPの80番ポートのように多くの組織では止めることが難しいような通信に紛れてしまうボットが登場するかもしれない。

 いかなるIDS(不正侵入検知システム)を持ってしても、こうした不正プログラムの通信をすべて発見する機能を実装するのは現実的に困難だ。そこで重要になるのが、総合的な通信状況の把握である。さまざまな角度から通信状況をリアルタイムに分析、モニタリングしておくことで、不審な通信を見つけやすくしようという考え方だ。SIMはこのような目的には最適である。

 一般的に使われないポートを使う通信の洗い出し

 まだ実験中だが、筆者が作ったモニタリング用パネルの例を紹介しよう。

 パネル1「一般的でないポート利用者(Pass)」はTCPやUDPで一般にあまり使われないポートでの通信を頻度順に表示するものだ。こうしたポートの利用は、不正なプログラムもしくは一般的でないアプリケーションの存在を示唆する。

 初期のバージョンでは、これらのポートの中にSkypeのダイナミックな割り当てポートが含まれていた。現在のバージョンではフィルタ条件にSkypeユーザー除外を指定(※1)しており、より正確な状況表示が可能になっている。

※1 Skypeユーザーの洗い出しについては前編を参照のこと

 もちろんSkype以外にもダイナミックなポートを使用するアプリケーションは多く存在するので、日常の運用において地道に潰していくことが必要だ。使用しているアプリケーションを確認して、問題ない通信ならばそのIPアドレスを除外条件に加えるといったメンテナンスも重要だろう。

パネル1 一般的でないポート利用者(Pass)

 80番ポートを使っているのにWebアクセスでない通信

 最近では多くの組織で、内部から外部に向けた通信を必要最小限に限定している。これはウイルスなどの不正プログラム感染時に、それらが外部と直接通信できないようにする効果があるのだが、Web関連の通信はビジネスに直結するため、なかなか止められない。つまりTCPの80番と443番は多くの組織では許可せざるを得ない。

 IMやSkypeの例のように、広く通信が許可されているサイトではダイナミックなポート割り当てを行うが、それができない場合に80番などのあらかじめ開いているポートを使って通信するアプリケーションも増えている。これはサイトのセキュリティ管理者にとっては頭痛のタネだ。せっかく通信を規制しても無意味になってしまうからだ。

 TCPの80番や443番ポートを使いながら、実はWebアクセスではない通信を見つけ出す方法はいくつかある。その中でも、これらのポートを使ってほかのサービスをトンネルさせるようなケースを見つけ出すにはコネクションの継続時間を調べるのが有効だ。

 一般にWebページへのアクセスにおけるコネクションの持続時間は、HTTP1.1の場合でもおおむね1ページを表示する時間の範囲内である。もし1時間以上もコネクションが持続する通信があれば、それはWebアクセスとは異なる通信が行われている可能性が非常に高い。例えば、80番ポートを使ってポリシーで禁止されている外部サーバと常時接続しているような不心得者だ。

 このような通信を見つけ出す目的で作ったのが、このパネル2「HTTPトンネル可能性」だ。コネクションの持続時間は多くのファイアウォールでログに出力されるので、これを利用する。この値が一定時間を超えることをフィルタ条件にしてイベントを抽出している。

パネル2 HTTPトンネル可能性

 この実験の過程で、XML Webサービス(SOAP)を使用した動的更新のWebページにおいては、長時間のコネクションが発生し得ることが明らかになった。目下、これを除外する方法を考えているが、それはそれで長時間同じ動的Webページを開いているユーザーの挙動もまた、管理者にとっては気になるものだから、あえて除外する必要もないかもしれない。

 大きなファイルのダウンロードに長時間を要するケースもある。しかし、著名なソフトウェアのダウンロード元はある程度判別できるし、相手は少なくともWebサーバだからGET コマンドなどのHTTPリクエストに反応するはずだ。不審だと思ったらtelnet で80番ポートを叩き、コマンドを手入力してチェックする。Webブラウザを使わないのは、それが不正なWebサイトだった場合に、Webブラウザが被害を受ける可能性を考えてのことだ。

 こうして検知された長時間のコネクションのうち調査が必要なものをピックアップして、ユーザーに状況を確認する。

1/2

Index
不審な通信や無許可ホストを見逃さない
Page1
不審な通信の監視
一般的に使われないポートを使う通信の洗い出し
80番ポートを使っているのにWebアクセスでない通信
  Page2
実行形式ファイルのダウンロードを発見する
NATを使って複数ホストを接続
自社専用定点観測データを活用せよ

セキュリティ情報マネジメント概論
  SIMで企業のセキュリティを統合管理せよ
  セキュリティ情報マネジメントの仕組みを技術的に理解する(1)
  セキュリティ情報マネジメントの仕組みを技術的に理解する(2)

SIMを上手に使いこなす
  業務中にSkypeやIMを使っているのは誰だ?
  不審な通信や無許可ホストを見逃さない

業務中にSkypeやIMを使っているのは誰だ?


Security&Trust フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Security & Trust 記事ランキング

本日 月間