本稿では、侵入検知システム、およびこれと関連が深い侵入防止システムについて述べる。侵入検知システム(しんにゅうけんちシステム。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は主に以下の構成要素からなる:

| 名称 | 概要 |
| --- | --- |
| センサーないしエージェント | 活動の監視と分析を行う構成要素。センサーという名称はネットワーク監視のものに、エージェントという名称はホストを監視するものに用いる。ソフトウェアとして提供される場合とアプライアンスとして提供される場合がある。 |
| 管理サーバ | センサーやエージェントが得た情報を一元収集し、複数のセンサーやエージェントが収集した情報を突合して分析する(相関分析)事で、元にセンサーやエージェント単体では特定できないイベントを特定する。 |
| データベースサーバ | センサー、エージェント、管理サーバの特定したイベント情報を保存する。 |
| コンソール | IDPSの管理者やユーザにユーザインターフェースを提供する。IDPSの設定管理専用のコンソールと監視・分析専用のコンソールが分かれている場合もある。 |

センサーやエージェントには、そこで利用されているOSのバージョンなどの情報収集機能が備わっている場合がある。

なお、ログはローカルと集中ログサーバの両方に保管する事がデータの完全性と可用性の観点から望ましい。また正しい分析を行うには、ログはNTPなどを用いる事で全ての構成要素間で時刻の整合性を取る必要がある。

IDPSの構成要素間の通信は、組織の標準ネットワークを利用する場合と、IDPSなどの管理専用ネットワークを利用する場合がある。後者の方がIDPS自身が攻撃を受ける危険を避けられる上、標準ネットワークが攻撃等により正常に動作しない場合でも監視や分析が可能だという利点があるが、その分コストが増大する。なお、コストを抑えつつ管理ネットワークだけ分離する方法として、VLANで標準ネットワークと管理ネットワークを分離する方法があるが、VLANによる分離は物理的な分離ほど安全性面の効果が得られない上、標準ネットワークと管理ネットワークは物理ネットワークを共有しているので、物理的分離よりネットワークが飽和する危険が高い。

オープンソースのIDPS であるSnortを例に管理サーバの中身を解説すると、以下のようになっている:

| 名称 | 概要 |
| --- | --- |
| パケットキャプチャ部 | ネットワーク上を流れるパケットを収集する |
| プリプロセッサ部 | キャプチャしたパケットを正規化する。正規化の目的は解析を楽にすることと、攻撃者による検知回避を防ぐ為である。 |
| 検知エンジン部 | 正規化されたパケットを相関分析する。 |
| アウトプットプロセッサ部 | パケットが攻撃だと判断された場合、管理者にアラートをあげる。 |

各種IDPSではパケットキャプチャには例えばpcap 、BPF等が使われる。また商用のIDPSでは大量のトラフィックを処理できるようにするため、専用のNICを用いている物が多い。

## 種類

IDPSは以下の4種類に分類できる:

| 分類 | センサー・エージェントの主な設置・インストール場所 | 主な検知イベント | 備考 | 技術的制約 |
| --- | --- | --- | --- | --- |
| ネットワークベースIDPS | ネットワーク境界 | - IPアドレスのなりすましや不正なIPヘッダなどネットワーク層の偵察・攻撃 - ポートスキャン、異常なパケット分割、SYNフラッド攻撃などトランスポート層の偵察・攻撃 - バナー取得、バッファオーバーフロー、書式文字列攻撃、パスワード推測、マルウェア伝送などのアプリケーション層の偵察・攻撃 - トンネリングされたプロトコル、バックドア、許可されていないアプリケーションサービスが稼働しているホストなどの特定 - ウェブサイトの不適切な利用や禁止したアプリケーションプロトコルの使用など | - シグナチャベース、アノマリベース、ステートフルパケット解析を組み合わせて解析する製品がほとんどである。 - 通信の解析により、監視対象のホストに導入されているアプリケーションやそのバージョン等を把握し、攻撃でついてくる脆弱性がホストで有効であるか否かを調べる事により、攻撃成功可能性の高さを判断できる。またあるホストへの攻撃を検知したとき同一のアプリが入っているホストへのアラートの優先度を上げる事ができる。 - センサの監視用インターフェースにIPアドレスを振らないで動作させる事をステルスモードという。ステルスモードのセンサーには他の機器から接続できないので、セキュリティが向上する。 | - 一台のIDPSで数百~数千ものホストを監視する事もある為、観測内容の全てをIDPSが把握するのは不可能である。また監視対象となる環境毎にチューニングやカスタマイズに多大な手間がかかってしまう。 - 高負荷がかかった場合、オーバーヘッドが大きいステートフルパケット解析ではパケットの取りこぼしが発生する。インライン型のものだと取りこぼしにより可用性が阻害される。 - 暗号化データを解析できない。暗号データの解析には復号を行うゲートウェイとの併用が必要。 - 攻撃者は攻撃パケットを大量の「目くらまし」パケットの中に紛れ込ませる事ができる。この場合IDPSは目くらましパケットの負荷により攻撃パケットを取りこぼす可能性がある。 |
| 無線IDPS | 監視対象の無線ネットワークの通信範囲内や、無許可の無線ネットワーク活動が行われている懸念のある場所 | - 無許可もしくはセキュリティが十分確保されていないWLANおよびWLAN機器の存在 - 通常とは異なるWLANの使用パターン。例えばSTAの数が極端に多かったり、トラフィックが極端に大きいアクセスポイントの特定 - フラッディングやジャミングを利用したDoS攻撃 - ウォードライビングツールなどの無線ネットワークスキャナの存在 - なりすまし、中間者攻撃 | - 無線IDPSは専用機器とアクセスポイントや無線スイッチにバンドルされるものとに分類でき、専用機器は特定箇所に固定して設置するものと、持ち運び可能で不正アクセスポイント等を探すためのものとがある。ノートPCにインストールできるタイプのものも一部存在する。 - 監視対象の無線ネットワークからの影響を避けるため、固定して設置する無線IDPSは優先ネットワークで管理サーバやコンソールと通信するのが普通である。一部に有線ネットワークを必要としないスタンドアロン型のものもある。 - ほとんどの無線IDPSには三角測量で監視体調機器の物理的位置を特定する機能がある。 - 監視対象が無線のみなので、アラートの種類やチューニング項目が少ない。 | - 無線ネットワークは複数の周波数帯からなり、各周波数帯は複数のチャネルからなるが、通常1つの無線IDPSは同一次官には1つのチャネルしか監視できず、一定時間で監視チャネルを切り替えるなどする。このため攻撃者はチャネルの切り替えタイミングと同期する形で攻撃を行うチャネルを変える事で監視の目を逃れたり、2つのチャネルに同時に攻撃を行う事で監視されてない方のチャネルの攻撃を成功させたりできる。 - 攻撃者による無線ネットワークの受動的盗聴を特定することはできない。 - 無線LANに対するDoS攻撃の影響を受けやすい。 - 物理的攻撃の影響も受けやすい。 |
| NBA(Network Behavior Analysis) | 組織内ネットワークフローの監視ができる場所、もしくは組織内と外部ネットワークの間の通信フローの監視ができる場所 | - DoS攻撃 - スキャン - ワームの拡散 - トンネリングされたプロトコル、バックドア、使用禁止のアプリケーションプロトコルなどの特定 - 事前に管理者が設定したポリシー(通信相手、通信時間、通信内容、通信量等のポリシー)への違反 | - NBAの管理サーバは「アナライザ」と呼ばれる事がある。 - NBAセンサーは通常アプライアンスであり、ほとんどは受動型(後述)である。 - NBAセンサーはネットワークパケットを直接監視するものの他に、ルータなどのネットワーク機器からフロー(NetFlowやsFlow)として供給されるデータを監視するものもある。 - 検知は主にアノマリベースであるが、限定的にシグナチャベースをサポートしているものもある。 - チューニングやカスタマイズはあまり発生しない。 | - 検知は主にアノマリベースなので、新しい機器やサービスの導入をアノマリとして検知してしまう。 - フローは数分~数十分置きにバッチでNBAに転送されるため、攻撃検知が遅れる。 |
| ホストベースIDPS | 攻撃を受けやすい公開サーバや機密情報が置かれているサーバなどの重要ホスト。その他PCのようなクライアントホストやアプリケーションサービスにもインストールされる。 | - サンドボックス等を利用したコードの不正解析 - バッファオーバーランの検知 - アプリケーション毎のシステムコールの制限および監視 - 許可済みリストとの比較によるアプリケーションやDLLの種類やバージョンの制限 - ネットワークトラフィック解析。特にサーバで利用されるサービスに特化したもの - ファイルシステムの監視および制限 - ログ解析 - ネットワーク設定の監視 | - ほとんどのホストベースIDPSはホストにエージェントをインストールするタイプである。ただし特定のアプリケーションサーバの保護に特化した製品の場合はアプライアンスのものもある。またエージェントは特定のOSにのみしかサポートしていないので、サポート外のOSの入ったホスト監視するにはアプライアンスを使う必要がある。 - ホストベースIDPSはデータがあるコードAから別のコードBに受け渡される際、そのデータをフックし、フックしたデータを解析してそのデータが無害と判断した場合のみBにデータを渡す。この仕組みをAとBの間に挟まれたシム(くさび)という。シムの対象となるデータとしてはネットワークトラフィック、ファイルシステム関連のデータ、システムコール、レジストリ関連のデータ、電子メールやウェブなどよく使われるアプリケーションのデータがある。 - リムーバブルメディアの使用制限機能、オーディオビジュアル装置の監視機能、セキュリティ機能が無効になった時に有効にするなどのセキュリティ強化機能、プロセス監視機能、ネットワークトラフィックの監視機能などを備えている場合がある。 | - チューニングやカスタマイズに多大な手間を要する。この手間を軽減するため、ホストグループに対してポリシーを定める事ができる機能がある。 - リアルタイムではない検知手法を併用している場合があり、アラートが遅れる。 - ネットワーク負荷を軽減するため、集中サーバへの転送を数十分起きのバッチ処理にしている事が多く、情報の集約に遅延が発生する。 - ソフトウェアタイプが多いので、他のセキュリティ製品と競合して不具合を起こす場合がある。 - ホストベースIDPSのアップグレードに際してホストの再起動が必要な場合がある。 |

ネットワークベースのIDPSとNBAはどちらもネットワークを監視する点では共通しているが、前者は主に組織LANと外部ネットワークの境界などネットワーク境界に設置され、境界をまたぐ通信を監視するのに対し、NBAは組織LAN内に設置され、LAN内の通信を監視する点に違いがある。

ネットワークベースIDS、IPSを略してそれぞれNIDS、NIPSと呼ぶ。同様にホストベースIDS、IPSをそれぞれ略してHIDS、HIPSという。

ネットワークベースのIDPSのセンサー設置方法としては、監視対象の通信が必ず通る場所にIDPSを設置するインライン型と、監視対象の通信が必ず通る場所にスパニングポート、ネットワークタップ、IDSロードバランサ等を設置する事で監視対象の通信をコピーし、コピーした通信をIDPSで監視する受動型がある。攻撃の遮断や回避のようなIPSとしての機能を利用する場合はインライン型が必須である。

インライン型の場合、ファイヤーウォールが攻撃と考えられる通信を遮断するのでファイヤーウォールの前に設置するか後ろに設置するかで取得できる情報や、IDPSへの負荷が異なる。ファイヤーウォール前後両方を監視するためにIDPS機能とファイヤーウォール機能がハイブリッドになった製品もある。

受動型はネットワークの複数箇所の通信をコピーして集約した上で解析できるという利点がある。例えばファイヤーウォールの前後およびDMZの通信を全てコピーして解析するといった行為が可能になる。

## 検知手法

IDPSの検知手法として以下のものがある。

| 方法 | 概要 | 長所 | 短所 |
| --- | --- | --- | --- |
| シグナチャベース | 攻撃と考えられるパターンを正規表現などで記載した「シグナチャ」事前登録し、シグナチャに基づいて攻撃を判断する。 | - 既知の攻撃の特定に有効。 | - 未知の攻撃には有効でないし、既知の攻撃を少しだけ変えた攻撃に対しても有効でない場合がある。 - ネットワークやアプリケーションのプロトコルを認識することはほとんどなく、通信の整合性を追跡しないので、こうした箇所から攻撃を特定することはできない。 |
| アノマリベース | 正常な挙動を学習してプロファイルを作り、そのプロファイルに基づいて異常な通信を検知する。運用開始時に数日から数週間程度、プロファイルの学習期間が必要。 | - 未知の攻撃に対して有効。 | - 悪意のある攻撃をプロファイルに織り込んでしまって正常と判断したり、たまにしか起こらない正常な動作(例:月一度のメンテ時の通信)を異常と判断してしまうなど誤検知が生じやすい。 |
| ステートフルプロトコル解析 | ネットワークやアプリケーションのプロトコルのうち、正常と判断するものを定義済プロファイルに事前登録。実際の通信の状態(ステート)を管理しながらやりとりを追跡し、このプロファイルから逸脱した通信を特定する。具体的には例えば、個別コマンドの入力値の長さやフォーマットをチェックする。 | - 通信の追跡により不正を特定できる。 - 同じコマンドを何十回もするような予期せぬ不正を特定できたりする事。 | - 他の方法よりも複雑なのでオーバーヘッドが大きい。 - 実装上の差異が問題になる。例えばベンダーが標準に従っていなかったり、独自拡張していたり、OS・アプリケーション・IDPS間、あるいはクライアント・サーバ間でプロトコル実装が矛盾している場合などに問題になる。 - 正常なプロトコルの範囲内で行われる不正(DDoS攻撃など)は検知できない。 - ベンダの独自プロトコルの場合、詳細なプロトコル仕様が手に入らなかったり、バージョンによりプロトコルの差異が生じたりしてIDPSへの反映が難しい場合がある。 |

アノマリベースのものは、管理者が明示的に変更しない限り同一のプロファイルを使い続ける静的プロファイル型と自動的にプロファイルを更新する動的プロファイル型に細分できる。動的プロファイル型は管理者が定期的にプロファイルをメンテナンスする手間が静的プロファイル型より少ないという利点があるものの、人間による見直しが発生する静的プロファイルよりも動的プロファイルのほうが攻撃者がIDPSを回避しやすいという弱点もある(例えばプロファイルの動的更新に引っかからないほどゆっくり攻撃者が攻撃活動を増加させるなど)。

以上で述べた各検知手法は下記のような異常検知基準を利用する事が多い:

アラートのオン・オフ、デフォルトの優先度、通知方法、ログに記録する内容、アラートに対する対処方法はコンソールで設定できるIDPSがほとんどである。

またIDPSはシグナチャやプロファイルの編集機能や、プロファイル作成スクリプトの編集機能を備えている事もある。