導入
侵入検知システム(または IDS: Intrusion Detection System ) は、分析対象 (ネットワークまたはホスト) 上の異常または不審なアクティビティを特定することを目的としたメカニズムです。したがって、成功した侵入試行と失敗した侵入試行の両方を知ることができます。
侵入検知システムのファミリー
IDS には 3 つの大きく異なるファミリーがあります。
- NIDS ( Network Based Intrusion Detection System ) は、ネットワークレベルでセキュリティ状態を監視します。
- HIDS ( HostBased Intrusion Detection System )。ホストのセキュリティ状態を監視します。
- ハイブリッド IDS。NIDS と HIDS を使用して、より関連性の高いアラートを生成します。
HIDS は、ホストが汚染されているかどうかを判断するのに特に効果的であり、NIDS では、ホストに限定される HIDS とは異なり、ネットワーク全体の監視が可能です。
NIDS(ネットワークIDS)
導入

NIDS は、キャプチャ、署名、アラートの 3 つの主要な部分に分かれています。
捕獲
キャプチャはネットワーク トラフィックの回復に使用されます。通常、これはリアルタイムで行われますが、一部の NIDS では以前にキャプチャされたトラフィックの分析が可能です。
ほとんどの NIDS は、標準のlibpcapパケット キャプチャライブラリを使用します。パケット キャプチャライブラリはほぼすべてのプラットフォームに移植されており、通常はネットワーク IDS が対応できるようになります。
したがって、NIDS をキャプチャする操作は通常、このlibpcapと強くリンクされています。その動作モードは、オペレーティング システムのデータリンク層に到着するパケットを (Linux 上で) コピーすることです。このパケットがコピーされると、IDS が情報として回復しようとするものの絞り込みに対応して、BPFフィルター(バークレー パケット フィルター) が適用されます。
負荷が高い場合、OS がパケットをコピーしないため、一部のパケットは無視される場合があります。
libpcapの動作は、BSD の世界では異なります。これは、デバイスファイル/dev/bpfを接続するため、NIDS はトラフィックをキャプチャするためにスーパー ユーザー権限を必要とせず、単にフィルターが適用されているこのファイルから読み取ることができるようになります。直接コンパイルされます。
また、 libpcap はファイアウォールの下の層 (ネットワーク レベルで動作する) で動作するため、分析されるトラフィックは受信トラフィックのトラフィックと必ずしも同じではありません。
署名
シグネチャ ライブラリ (シナリオ アプローチ) は、攻撃シグネチャに依存するウイルス対策の分析プロセスと同様の分析プロセスを実行します。したがって、NIDS は攻撃について知っている場合には効果的ですが、それ以外の場合は効果がありません。商用または無料のツールは、要素の一部しかわかっていない攻撃に対処するために、シグネチャのカスタマイズを提供するように進化してきました。シグネチャベースのツールは非常に定期的な更新を必要とします。
NIDS にはリアルタイム システムであるという利点があり、複数のマシンを対象とした攻撃を同時に検出できる機能があります。欠点は、生成される誤検知の割合が高いこと、シグネチャが常にゼロデイ攻撃よりも遅れること、およびシグネチャが攻撃のターゲットになる可能性があることです。
アラート
アラートは通常、syslog に保存されます。ただし、さまざまなセキュリティ要素の相互運用を可能にするために、その内容を形式化できる標準があります。この形式は、RFC4765 に記載されている IDMEF ( Intrusion Detection Message Exchange Format の略) と呼ばれます。 IDMEF は、IDS がアラートの送信について心配する必要がないようにするインフラストラクチャを提供するPreludeプロジェクトによって普及しました。これにより、IDS は知っている情報のみを記述するだけで済み、Prelude は後で人間が閲覧できるようにその情報を保存します。
パターンマッチング
パターン マッチングにより、NIDS はネットワーク パケット内の情報をできるだけ早く見つけることができます。さまざまなパターン マッチング アルゴリズムがあります。 E2xB のようにできるだけ早くネガを返すように設計されたものや、Boyer-Moore (BM) のようにメモリに保存されている情報が少ない場合に興味深いものもあります。署名が 100 件未満の場合、BM は他の署名よりも効果的であることが認められています。これらの制限のない Boyer-Moore の拡張機能もあります。あるいは、NIDS の場合には、Knuth-Morris-Pratt (KMP) のような、より正確で、したがってより興味深いアルゴリズムさえあります。
NIDS の場合、パターンの発見がボトルネックになることがよくあります。コンピューティング時間の 80% 以上を消費する可能性があります。
E2xb は、NIDS のニーズを満たすように特別に設計されました。これは、侵入検知に特化したドメイン パターンマッチング アルゴリズムです。これは、ほとんどのネットワーク パケットが侵入の試みを識別する署名に一致しないと想定しているため、除外アルゴリズムです。
外部リンク
正確な文字列一致アルゴリズム
分析
分析エンジンは、導入部で指定された要素から、再フラグメンテーション、プロトコル分析、さらには動作分析などのいくつかの手法を使用してこれらの要素を関連付けます。
再断片化
特定のサイズ (通常は1500 バイト) を超えるパケットは断片化されます。トランスポート層ヘッダーの断片化も可能であったため、断片化されたパケットが分析されず、NIDS が Stick 攻撃や Snot 攻撃に対して脆弱になってしまいました。
NIDS には、攻撃を見逃さないように、分析前にパケットを再フラグメントする義務があります。攻撃の対象となるオペレーティング システムによっては、各宛先ホストが同じ方法で再フラグメントされないことを考慮すると、これは比較的複雑な操作です。 NIDS は特定のケースを処理するように必ずしも正しく構成されていないため、これは現在でも使用できる回避手法です。
解剖
解剖により、特定のプロトコルを理解し、それを解読して分析することが可能になります。これは最大の攻撃ベクトルであるため、NIDS の最も機密性の高い部分です。
ただし、RPC などの特定のプロトコルでは、この不可欠な分析がなければ検出できない攻撃を検出できるようにするために、分析が不可欠です。このステップにより、アプリケーション プロトコルから特定のフィールドを取得することも可能になり、署名の作成が簡素化されます。
HTTP の例では、 Microsoft IIS サーバーは「/」 (スラッシュ) 文字を「\」 (バックスラッシュ) 文字と同様に解釈します。これにより、ディレクトリ トラバーサル (../../../.. /) の場合のように、攻撃者が「/」を見つけようとする場合、署名を逃れることができます。最新のNIDSは、どちらかを解釈し、最終データを解釈するターゲットに特化できなければなりません。 「/」文字を含むこの例は、 UTF-8でエンコードできる文字、またはソフトウェアが最終的に攻撃を含めて正しく解釈する他の文字セットにも適用されます。
HIDS(マシンIDS)
HIDS (Host based IDS) は、「Machine Intrusion Detection System 」を意味し、ハードウェアまたはオペレーティング システム専用の IDS です。一般に、NIDS とは異なり、HIDS はハードウェアまたはオペレーティング システムによって与えられた情報を取得します。これには、署名、動作 (統計)、または ACL システムによる境界の境界設定など、いくつかのアプローチがあります。 HIDS は、標準に基づいて不審なアクティビティを検出するホスト システム上の標準デーモンまたはサービスのように動作します。アクティビティが標準から逸脱すると、アラートが生成されます。マシンはいくつかのポイントで監視できます。
- マシンアクティビティ: プロセスの数とリスト、ユーザー、消費されたリソースなど。
- ユーザーアクティビティ: 接続の回数と継続時間、使用されたコマンド、送信されたメッセージ、アクティブ化されたプログラム、定義された境界の超過など。
- ワーム、ウイルス、またはトロイの木馬による悪意のある活動
別のタイプの HIDS は、システムの「カーネル」への侵入と、そこで行われた変更を探します。この手法を「プロトコル分析」と呼ぶ人もいます。非常に高速で、署名データベースを検索する必要がありません。 Windowsのコントロールの例 …
- EPROCESS (プロセスを隠すことができる情報を含むカーネル モード データ構造)、
- 「カーネル」モードで実行されているプロセス
- コンピュータに存在するシステム ソフトウェアまたはデバイス管理機能。
- Windows がシステム コールを適切な処理に指示するために使用するSSDT (システム サービス ディスパッチ テーブル) テーブル、つまり割り込みアドレス指定テーブル。
- 等
HIDS には誤検知がほとんどないため、関連するアラートが可能になるという利点があります。デメリットとしては、1局あたり1台のHIDSを設定する必要があり、システムごとの設定が必要となることです。
ハイブリッドIDS
ハイブリッド IDS は分散アーキテクチャに基づいており、各コンポーネントがアラート送信形式 (通常は IDMEF) を統一することで、多様なコンポーネントが通信し、より関連性の高いアラートを抽出できるようになります。
ハイブリッド IDS には複数の利点があります。
- 誤検知の減少
- より良い相関関係
- 分析装置での反応の可能性
