ホストベース侵入検知システム(HIDS)は、ネットワークベース侵入検知システム(NIDS)と同様に、コンピューティングシステムの内部とネットワークインターフェイス上のネットワークパケットを監視および分析できる侵入検知システムです。 [ 1 ] HIDSは、ネットワークトラフィック全体ではなくホストアクティビティの監視に焦点を当てることで、よりきめ細かく内部的な攻撃に焦点を当てています。 [ 2 ] HIDSは最初に設計されたタイプの侵入検知ソフトウェアであり、当初のターゲットシステムは外部とのやり取りがまれなメインフレームコンピュータでした。[ 3 ]
HIDSを使用する際の大きな問題点の1つは、侵入から保護する必要のあるすべてのコンピュータにインストールする必要があることです。これにより、デバイスのパフォーマンスや侵入検知システムの速度が低下する可能性があります。[ 4 ]
ホストベースのIDSは、その構成に基づいて、コンピュータシステムの動的な動作と状態の全部または一部を監視することができます。特定のホストをターゲットとしたネットワークパケットを動的に検査するなどの活動(市販されているほとんどのソフトウェアソリューションではオプションのコンポーネント)に加えて、HIDSはどのプログラムがどのリソースにアクセスしているかを検出し、たとえば、ワードプロセッサが突然、不可解にもシステムパスワードデータベースを変更し始めたことを発見することができます。同様に、HIDSはシステムの状態、RAM、ファイルシステム、ログファイル、またはその他の場所に保存されている情報を調べ、これらの内容が期待どおりであるかどうか、たとえば侵入者によって変更されていないかどうかを確認できます。[ 5 ]
HIDSは、内部または外部を問わず、何かまたは誰かがシステムのセキュリティポリシーを回避していないかどうかを監視するエージェントと考えることができる。
ネットワークベースの侵入検知システムと比較して、HIDSは内部攻撃を特定できるという利点があります。NIDSはネットワークトラフィックからのデータを検査しますが、HIDSはオペレーティングシステムから発生するデータを検査します。近年、HIDSはビッグデータの課題に直面しており、これはデータセンターの設備と方法論の進歩に起因すると考えられます。[ 2 ]
多くのコンピュータユーザーは、ウイルス対策ソフト(AV)パッケージなど、動的なシステム動作を監視するツールに遭遇したことがあるでしょう。AVプログラムはシステムの状態も監視することが多いですが、コンピュータ内部で誰が何をしているのか、そして特定のプログラムが特定のシステムリソースにアクセスできるべきかどうかを監視することに多くの時間を費やしています。多くのツールは機能が重複しているため、ここで境界線が曖昧になります。
一部の侵入防止システムは、システムメモリに対するバッファオーバーフロー攻撃から保護し、セキュリティポリシーを適用することができます。[ 6 ]
HIDSの基本的な動作原理は、侵入に成功したハッカーは一般的に活動の痕跡を残すという事実に基づいています。実際、そのような侵入者は攻撃したコンピュータを自分のものにしたいと考え、将来的に(キーストロークの記録、個人情報の窃盗、スパム送信、ボットネット活動、スパイウェアの使用など)思い描くあらゆる活動を実行するためのアクセス権を与えるソフトウェアをインストールすることで、「所有権」を確立します。
理論上、コンピュータのユーザーはそのような改変を検出する能力を持っており、HIDSはまさにそれを実行し、その結果を報告する。
理想的には、HIDSはNIDSと連携して動作し、NIDSをすり抜けたあらゆる脅威をHIDSが検出します。市販のソフトウェアソリューションの多くは、NIDSとHIDSの検出結果を関連付けることで、ネットワーク侵入者が標的ホストで成功したかどうかを判断します。
ほとんどの侵入者は、標的のマシンに侵入すると、侵入したシステムを安全に保つために、直ちに最善のセキュリティ技術を適用し、他の侵入者がコンピュータを乗っ取れないように、自身のバックドアだけを開放しておく。
一般的に、HIDSは監視対象のシステムオブジェクトのデータベース(オブジェクトデータベース)を使用します。通常は(必ずしもそうとは限りませんが)、ファイルシステムオブジェクトです。HIDSは、適切なメモリ領域が変更されていないかどうかもチェックできます。例えば、Linuxのシステムコールテーブルや、Microsoft Windowsのさまざまなvtable構造などです。
HIDSは通常、対象となる各オブジェクトについて、その属性(アクセス権限、サイズ、更新日時など)を記憶し、コンテンツが存在する場合は、そのコンテンツに対して何らかのチェックサム( MD5、SHA1ハッシュなど)を作成します。この情報は、後で比較するために安全なデータベース(チェックサムデータベース)に保存されます。
HIDSの代替手段として、エンドポイント(サーバー、ワークステーション、その他の端末機器)のネットワークインターフェース(NIC)レベルでNIDSタイプの機能を提供する方法があります。ネットワーク層でHIDSを提供することの利点は、攻撃の発信元(IPアドレス)やパケットデータなどの攻撃の詳細をより詳細にログに記録できることです。これらの情報は、動的な動作監視手法では取得できません。
インストール時、および監視対象オブジェクトが正当な理由で変更されるたびに、HIDSは関連オブジェクトをスキャンしてチェックサムデータベースを初期化する必要があります。コンピュータセキュリティ担当者は、侵入者がデータベースに不正な変更を加えることを防ぐため、このプロセスを厳密に管理する必要があります。そのため、このような初期化には通常時間がかかり、各監視対象オブジェクトとチェックサムデータベースを暗号化してロックするなどの対策が必要となる場合があります。こうした理由から、HIDSの製造元は通常、チェックサムデータベースの頻繁な更新が不要となるようにオブジェクトデータベースを構築します。
コンピュータシステムには、侵入者が変更しようとする動的な(頻繁に変化する)オブジェクトが多数存在し、HIDSはそれらを監視する必要がある。しかし、これらの動的な性質ゆえに、チェックサム方式は適さない。この問題を克服するため、HIDSはさまざまな検出手法を採用している。例えば、変化するファイル属性の監視、前回チェック時よりサイズが減少したログファイルの監視、その他多くの異常イベント検出手段などである。
システム管理者が適切なオブジェクトデータベースを構築し(理想的にはHIDSインストールツールの支援とアドバイスを受ける)、チェックサムデータベースを初期化すれば、HIDSは監視対象オブジェクトを定期的にスキャンし、問題が発生したと思われる事象を報告するために必要なすべての機能を備えることになります。報告はログ、電子メールなどの形式で行われます。
HIDSは通常、オブジェクトデータベース、チェックサムデータベース、およびそのレポートが改ざんされるのを防ぐためにあらゆる手段を講じます。なぜなら、侵入者がHIDSが監視するオブジェクトのいずれかを改変することに成功すれば、セキュリティ管理者が適切な対策を講じない限り、侵入者がHIDS自体を改変するのを阻止することはできないからです。例えば、多くのワームやウイルスは、ウイルス対策ツールを無効化しようとします。
暗号化技術以外にも、HIDSはデータベースをCD-ROMやその他の読み取り専用メモリデバイスに保存したり(更新頻度を低く抑える要因の一つ)、システム外のメモリに保存したりすることを可能にする場合がある。同様に、HIDSはログを即座にシステム外に送信することが多く、通常はVPNチャネルを使用して中央管理システムに送信する。
トラステッドプラットフォームモジュールは、一種のHIDSを構成すると言えるかもしれない。その範囲はHIDSとは多くの点で異なるものの、根本的には、コンピュータの一部が何らかの要因によって改ざんされたかどうかを識別する手段を提供する。アーキテクチャ的には、これは(少なくとも現時点では)究極のホストベースの侵入検知は、CPU自体とは別の外部ハードウェアに依存するため、侵入者がオブジェクトデータベースやチェックサムデータベースを改ざんすることが非常に困難になります。
InfoWorldは、ホストベースの侵入検知システムソフトウェアはネットワーク管理者がマルウェアを見つけるための有用な方法であり、重要なサーバーだけでなくすべてのサーバーで実行することを推奨していると述べています。[ 7 ]