侵入検知システム
本稿では、侵入検知システム、およびこれと関連が深い侵入防止システムについて述べる。侵入検知システム(しんにゅうけんちシステム。Intrusion Detection System。略して IDS)はシステムやネットワークに発生するイベントを監視し、それを分析する事で、ホストやポートをスキャンするような偵察行為や不正侵入などインシデントの兆候を検知し、管理者に通知するシステムである。一方侵入防止システム(しんにゅうぼうしシステム、Intrusion prevention system 略称: IPS)も不正侵入の兆候を検知するところまではIDSと同様だが、検知した不正を自動的に遮断するところに違いがある。両者を合わせてIDPSという場合もある。
IDPSは誤検知を起こす事があるので、誤検知を減らすようIDPSの設定を変更してチューニングする必要がある。特にIPSの場合、正常な侵入を遮断してしまうとシステムの動作に問題が生じる可能性があるので、誤検知が少なくなるようより保守的なチューニングが必要になる。
IDPSは「しばしば攻撃にさらされる事が多いので、その構成要素を保護する事は非常に重要である」。
IDPSは主に以下の用途で用いられる:
セキュリティポリシーの問題の特定:例えばファイヤーウォールと同一のルールセットをIDPSに設定する事で、ファイヤーウォール側の設定不備により本来ブロックされるべき通信がブロックされていない時に警告を受け取るといったもの。
組織が直面する既存の脅威の文書化:IDPSの検知ログから攻撃の傾向や頻度を知り、適切な対策に活かせる。
個人のセキュリティポリシー違反の抑止:IDPSにより監視されているという事実が個人の不正を抑止する。
IDPSの多くは以下の機能を備えている:
イベントの監視、解析、および望ましくない活動の識別機能
観測したイベントに関する情報の記録:ローカルな記録機能はもちろん、SIEMやエンタープライズ管理システムと連携してそれらで情報を統合管理できる機能がある場合がある。
観測した重要なイベントをセキュリティ管理者に通知(アラート)する機能:通知方法としてはメール、ページャ、専用UI、SNMPトラップ、syslog、ユーザスクリプト利用などがある。
報告書の作成機能:監視イベントの概要、注目すべきイベントの詳細情報などの報告書を生成する。
さらに次の機能を備えている場合もある:
セキュリティプロファイルの更新機能:例えば、悪意のある通信を検知した場合のみ通常より詳細に情報収集したり、事前に設定された特定のトリガに合致した場合のみアラートの優先度を変えたりする機能。
IPSの場合は攻撃阻止機能も備えており、阻止方法としては以下のものがある:
IPS自身による攻撃阻止:攻撃と判断されたネットワーク接続やユーザセッションの終了、攻撃者のものと判断されたユーザアカウントやIPアドレスの遮断、攻撃の標的になったホスト、サービス、アプリケーションなどのリソースの遮断。
他の機器のセキュリティ設定の変更:例えばルータやスイッチのようなネットワーク装置や(ホストベースないしネットワークベースの)ファイヤーウォールのルールのルールを変更して攻撃を遮断したり、パッチを自動適用したりする。
攻撃の無害化:例えばマルウェアと判断された添付ファイルを電子メールから除去したり、プロキシとして機能して通信のヘッダ情報を破棄してペイロードをパッケージ化するような正規化の作業を行ったりするなど。
IDPSは主に以下の構成要素からなる:
センサーやエージェントには、そこで利用されているOSのバージョンなどの情報収集機能が備わっている場合がある。
なお、ログはローカルと集中ログサーバの両方に保管する事がデータの完全性と可用性の観点から望ましい。また正しい分析を行うには、ログはNTPなどを用いる事で全ての構成要素間で時刻の整合性を取る必要がある。
IDPSの構成要素間の通信は、組織の標準ネットワークを利用する場合と、IDPSなどの管理専用ネットワークを利用する場合がある。後者の方がIDPS自身が攻撃を受ける危険を避けられる上、標準ネットワークが攻撃等により正常に動作しない場合でも監視や分析が可能だという利点があるが、その分コストが増大する。なお、コストを抑えつつ管理ネットワークだけ分離する方法として、VLANで標準ネットワークと管理ネットワークを分離する方法があるが、VLANによる分離は物理的な分離ほど安全性面の効果が得られない上、標準ネットワークと管理ネットワークは物理ネットワークを共有しているので、物理的分離よりネットワークが飽和する危険が高い。
オープンソースのIDPS であるSnortを例に管理サーバの中身を解説すると、以下のようになっている:
各種IDPSではパケットキャプチャには例えばpcap 、BPF等が使われる。また商用のIDPSでは大量のトラフィックを処理できるようにするため、専用のNICを用いている物が多い。
IDPSは以下の4種類に分類できる:
ネットワークベースのIDPSとNBAはどちらもネットワークを監視する点では共通しているが、前者は主に組織LANと外部ネットワークの境界などネットワーク境界に設置され、境界をまたぐ通信を監視するのに対し、NBAは組織LAN内に設置され、LAN内の通信を監視する点に違いがある。
ネットワークベースIDS、IPSを略してそれぞれNIDS、NIPSと呼ぶ。同様にホストベースIDS、IPSをそれぞれ略してHIDS、HIPSという。
ネットワークベースのIDPSのセンサー設置方法としては、監視対象の通信が必ず通る場所にIDPSを設置するインライン型と、監視対象の通信が必ず通る場所にスパニングポート、ネットワークタップ、IDSロードバランサ等を設置する事で監視対象の通信をコピーし、コピーした通信をIDPSで監視する受動型がある。攻撃の遮断や回避のようなIPSとしての機能を利用する場合はインライン型が必須である。
インライン型の場合、ファイヤーウォールが攻撃と考えられる通信を遮断するのでファイヤーウォールの前に設置するか後ろに設置するかで取得できる情報や、IDPSへの負荷が異なる。ファイヤーウォール前後両方を監視するためにIDPS機能とファイヤーウォール機能がハイブリッドになった製品もある。
受動型はネットワークの複数箇所の通信をコピーして集約した上で解析できるという利点がある。例えばファイヤーウォールの前後およびDMZの通信を全てコピーして解析するといった行為が可能になる。
IDPSの検知手法として以下のものがある。
アノマリベースのものは、管理者が明示的に変更しない限り同一のプロファイルを使い続ける静的プロファイル型と自動的にプロファイルを更新する動的プロファイル型に細分できる。動的プロファイル型は管理者が定期的にプロファイルをメンテナンスする手間が静的プロファイル型より少ないという利点があるものの、人間による見直しが発生する静的プロファイルよりも動的プロファイルのほうが攻撃者がIDPSを回避しやすいという弱点もある(例えばプロファイルの動的更新に引っかからないほどゆっくり攻撃者が攻撃活動を増加させるなど)。
以上で述べた各検知手法は下記のような異常検知基準を利用する事が多い:
アラートのオン・オフ、デフォルトの優先度、通知方法、ログに記録する内容、アラートに対する対処方法はコンソールで設定できるIDPSがほとんどである。
またIDPSはシグナチャやプロファイルの編集機能や、プロファイル作成スクリプトの編集機能を備えている事もある。