2019年12月19日木曜日

5.6 侵入検知システム(IDS)

侵入検知システム(Intrusion Detection System)とは、ネットワークやホストで発生している事象をリアルタイムに監視して侵入や攻撃を検知し、管理者に通知するなどのアクションを実行するシステムである。

1.侵入検知システムの概要

IDSは1000種類を超える攻撃パターン(シグネチャ)データベースを持っており、それらと実際の事象を照合することでOSの脆弱性を突いた攻撃を検知したり、ファイルの改ざんをなどを検知して記録したり、またメールをはじめとして様々な手段で警告を発することが可能である。

2.IDSの種類

2.1.ネットワーク型侵入検知システム
(Host-Based Intrusion Detection System:NIDS)

監視専用の機器(センサ)を監視対象となるネットワークセグメントに接続して使用する。

センサは自身が接続されたネットワークを流れるパケットをリアルタイムに監視し、あらかじめ設定されたルール(監視ポリシ)に基づいて不正アクセスや不審な事象を検知する。
検知した事象はマネジメントコンソール(管理用のソフトウェアがインストールされた端末)の画面に通知したり、メールによって通知したりすることが可能である。

2.1.1.接続場所と監視方法


  • バリアセグメントに接続

インターネットから自分のサイトに対してどのような攻撃どの程度行われているのかを知ることができる
すべてのシグネチャを監視対象とする

※DMZの監視結果との比較対象となり重要

  • DMZに接続

ファイウォールを通過したDMZに対して行われる攻撃を検知できる

下記のプロトコルに関するシグネチャを監視対象とする
ア) ファイアウォールがインターネットからDMZに中継しているプロトコル
イ) DMZからインターネット側に中継しているプロトコル

  • 内部セグメントに接続

LANの中に飛び交う不正なパケットを検知することができる
※悪質なマルウェア対策

2.1.2.攻撃や不正アクセスを検知する仕組み


  • パターンマッチング

取り込んだパケットとNIDSに登録されたシグネチャとを比較し、不正アクセスを検知する

検知可能なもの
 ポートスキャン
 脆弱性検査ツールによるスキャン
 OSやサーバソフトウェアの既知の脆弱性をついた攻撃(BOF攻撃など)
 サーバソフトウェアに対する不正なコマンドの発行
 ネットワークを通じて行われるパスワードクラッキング
 パケットを偽装するタイプのDoS攻撃

注意点
 常にに最新のシグネチャに更新しておくこと
 未知の攻撃は検知できない
 サイト独自のアプリケーションの脆弱性をついた攻撃は検知できない


  • 異常検知(アノマリ検知)
取り込んだパケットをRFCのプロトコル仕様など(正常なパターン)と比較して仕様から逸脱したものを異常として検知する

検証可能な事象
 大量に発行されたコマンド
 プロトコルの仕様に反したデータの流れ
 プロトコルの仕様に従っていないヘッダ情報を持つパケット
 異常な数の応答パケットなど


2.1.2.セッション切断機能


  • TCPコネクション切断機能
不正なTCPコネクションを検知した場合
a)送信元アドレスにクライアントのIPアドレスをセットしたRSTパケットをサーバに送る
b)送信元アドレスにサーバのIPアドレスをセットしたRSTパケットをクライアントに送る

下記の場合は無効
 最初のパケットのみで攻撃が成立するもの
 TCPコネクションが成立しない攻撃(DoS攻撃など)



  • UDP、ICMPの遮断機能
※UDP、ICMPを用いた攻撃は発信元アドレスが偽装されているケースが多いため、この機能による効果は期待できない


  • ファイウォールとの連携機能
不正な接続を検知した場合、NIDSがファイアウォールにアラートを送ることでファイウォールのACLを動的に変更し、指定された条件に合致した通信を一定時間排除する
※ ファイアウォールとNIDS間の通信は暗号化される
※ ACLの動的変更であるので、ACLの管理テーブルに保存されない

2.2.ホスト型侵入検知システム(HIDS)

監視の対象となるホスト(Webサーバ、DBサーバなど)にインストールして使用する。インストールされたホスト二重注して発生している事象をリアルタイムに監視し、あらかじめ設定されたルール(監視のポリシー)に基づいて不正な操作やファイルの改ざんを検知する

2.2.1.主な検知項目

  • ログインの成功/失敗
  • 特権ユーザへの昇格
  • システム管理用プログラムの起動
  • 特定のファイルへのアクセス
  • 特定ファイルの変更
  • プログラムのインストール
  • システムディレクトリに存在するファイルの書き換え/削除
  • Webコンテンツの改ざん
  • ネットワーク環境で発生している障害

2.NIDSとHIDSの比較

主なものだけ

2.1.導入方法

NIDS

監視の対象となるネットワークセグメントに接続(専用のハードウェアが必要)

HIDS

監視の対象となるホストにインストール(専用のハードウェアが不要)

2.2.導入方法

NIDS

流れているパケットを監視(暗号化されたパケットは一部の上位機種でのみ監視が可能)

HIDS

常駐しているホスト上で行われている差や状態などを監視

2.3.SQLインジェクション

NIDS

独自にシグネチャを登録した場合には検知できる可能性がある

HIDS

DBサーバ上で監視していた場合には不正な処理の内容によって検知できる可能性がある


2.4.攻撃の削除方法

NIDS

  • RSTパケットによるTCPコネクションの切断
  • ICMP port unreachableによるUDPの切断
  • ファイアウォールのACLを動的に変更して切断

HIDS

  • アカウントのロックアウト
  • ログインの拒否
  • 上位権限の昇格制限
  • ファイルのアクセス制限

3.HIDSとHIDSの効果的な活用方法

両者の特徴を把握し、両者を組み合わせることで、より監視効果を高めることが可能

例)
NIDSではOSの脆弱性をついた攻撃をはじめ、非常に数多くの不正アクセスを検知することができるが、その不正アクセスによって実際にどのような実害や影響があったのかを特定するのは困難である
 補うのはサーバのログか、サーバを監視しているHIDSの検知結果

4.IDSの機能上の限界および運用上の課題

4.1.NIDSの機能上の限界と運用上の課題

誤検知への対応

フォールスポジティブ:不正ではないことを不正行為として検知
フォールスネガティブ:検知すべき不正行為を見逃すこと

※ NIDSの運用で両者を最小にするようにパラメータの設定などを行う

NIDSの処理能力不足によるパケットの取りこぼし

監視するネットワークのトラフィック量とNIDSセンサのスペックがマッチしていることが必要

マッチしていないと
  • NIDSの負荷が大きくなる
  • シグネチャの量が多い
  • 携帯端末などのアクセスによるショートパケットの量が多い場合、取りこぼしが発生

アプリケーションに対する攻撃を検知できない

SQLインジェクション、XSSをはじめ、組織がサイト用に独自の仕様で開発したアプリケーションプログラムの脆弱性をついた攻撃などはほとんど検知できない

対応策
  • 独自のシグネチャの作成
  • WAFの利用

一部の高性能な機種を除き暗号されたパケットは解析できない

攻撃は検知できても侵入は検知できない

不正アクセスを防御できない

※ IPSやWAFが必要

正当な権限者による内部犯罪の検知は困難

※ 別途な方法が必要

IT(特にネットワーク技術)の発展に合わせた機能拡張が必要

4.2.HIDSの機能上の限界と運用上の課題

OSの基本的な機能がベースであり、それ以上ことはできない

1つのHIDSで監視できるのは1台のホストのみである

導入によって監視対象ホストの性能や可用性に悪影響を及ぼす可能性がある

※ 導入後もチューニングが必要

攻撃の予兆を検知することは困難

正当な権限者による内部犯罪の検知は困難


5.IDSの拡張的な機能

  • 独自シグネチャの登録機能
  • 脆弱性検知による検知品質の向上
  • セッション情報の保存・分析による検知品質の向上
  • マルチインタフェースモニタリング機能
  • TLSによって暗号されたパケットの複合化
    パフォーマンスが低下する
  • ハイパフォーマンス、ハイアベイラビリティ、マルチプロトコル対応など