コリレーション(相関)の概要
このセクションで
コリレーション(相関)とは何ですか?
相関とは、1つ以上のデバイス全体で複数のイベントのシーケンスを識別するプロセスであり、それらはすべて関連しており、単一の大きなインシデントを形成します。相関関係が非常に役立つ主な理由は、多くの場合、個々のイベントはそれ自体では疑わしく見えないかもしれませんが、他のイベントに関連して考慮すると、潜在的なセキュリティインシデントを示すより大きな状況が現れるからです。
たとえば、「従業員がデバイスAにログオンする」と「従業員がデバイスBにログオンする」という2つのイベントは正常な動きと思われます。
ただし、「ほぼ同じ時間に、同じ従業員が、異なるデバイス(デバイスAとデバイスB)にログオンしている」は、アカウント共有インシデントの可能性を示している場合があります。
コリレーション(相関)ルールとは何ですか?
相関ルールは、複数のログを関連付けてセキュリティインシデントを識別するために使用されるパターンまたはテンプレートです。ルールは、より大きなインシデントを構成する一連のイベント、イベント間の時間枠、および特定の条件(ある場合)を指定します。以下に、相関ルールで指定できるさまざまなパラメーターを示します:
- 相関ルール:相関ルールは、ネットワークアクションの順序付けられたシーケンスです。
- アクション:アクションはネットワークログに対応します。ユーザー名、デバイス名などの一意の値を持つフィールドがいくつか含まれています。
- アクション間の時間枠:各アクションは、指定された時間枠内で前のアクションに従う必要があります。
- アクションのしきい値(オプション):特定のルールが成立するためには、単一のアクションが連続して数回発生する必要がある場合があります。しきい値は、指定された時間枠内で観察する必要がある繰り返しの最小数に指定できます。
- アクションのフィルター(オプション):フィルターを使用して、各アクション内のフィールドに条件を課すことができます。
これらのパラメーターを使用して相関ルールを構築する方法の詳細については、カスタム相関ルールの構築を参照してください。
例:
相関ルール:ブルートフォース
ブルートフォース攻撃は、攻撃者がネットワーク内のデバイスにアクセス成功するまでアクセスを試行します。デバイスでの複数のログオン失敗と、それに続くログオンの成功が特徴です:
一般的なパターン:ログオン失敗->ログオン失敗->ログオン失敗->(...)->ログオンの成功(すべて同じデバイスへの数分以内)
特定のパターン:2分以内に1つのデバイスへのログオンに少なくとも10回失敗->(次の1分以内)->同じデバイスへのログオンに成功
したがって、ルールは次のように構成できます:
アクション1:ログオン失敗 - 従業員がネットワークデバイスへのログオンに失敗します。
- しきい値:このアクションは、2分以内に少なくとも10回発生する必要があります。
- フィルタ:デバイス名は、アクション1のすべての出現に対して同じでなければなりません。
アクション1とアクション2の間の時間枠:1分
アクション2:ログオン成功 - 従業員がネットワークデバイスへログオンします。
- しきい値:なし
- フィルタ:デバイス名は、アクション1のデバイス名と同じでなければなりません。
コリレーション(相関)ルールとアラートプロファイルの比較
- 相関ルールは、1つ以上のデバイスで発生する1つ以上のイベントを指定します。アラートプロファイルは、単一のデバイスタイプから単一のイベントのみを指定できます。
- 相関ルールは、シナリオの定義においてアラートプロファイルよりも強力です。相関ルールには複数のイベントを含めることができるため、イベントの順序、イベント間の時間枠を指定し、さまざまな条件を利用できます。
- しきい値の制限は、相関ルールとアラートプロファイルの両方で指定できます。ただし、相関ルールは特定のフィールドの値がアクションのすべての繰り返しを通して同じであることを確認できますが、アラートプロファイルはできません。
コリレーション(相関)のベストプラクティス
- コリレーション(相関)はメモリを集中的に使用するプロセスです。相関エンジンを有効にする場合、最も重要なビジネスユースケースに対してのみルールを有効化/作成してください。
- 新しいルールを作成する前に、代わりに同じルールをアラートプロファイルとして作成できないか、ご確認ください。以下のチェックリストのすべての項目に対する答えが「はい」の場合、相関ルールではなくアラートプロファイルとしてユースケースを設定してください:
- ユースケースは1つのアクションのみで構成されます。
- ユースケースを適用できるデバイスのみを指定する必要があり、他のフィールド(ユーザー名など)の特定の値を確認する必要はありません。
- アクションのしきい値を指定する場合、どのフィールド(ユーザー名、デバイス名など)の定数フィールド値も確認する必要はありません。
- 相関ルールのロジックを定期的に確認します。ルールで誤検出が多すぎる場合、ルールパラメータを調整してそれらを減らすことができます。
いくつかの例
相関ルール:過度のアプリケーションのクラッシュ(Windows)
短時間でデバイス上で一連のアプリケーションがクラッシュする場合、障害のあるデバイスを指している可能性があります。さらに、このチェックは「Device-1234」という名前の特定のデバイスには適用しないでください。これはアプリケーションのクラッシュテストに使用され、誤検知が多すぎる可能性があります。
一般的なアクションフロー:アプリケーションのクラッシュ->アプリケーションのクラッシュ->(...)->アプリケーションのクラッシュ(すべて単一デバイスで数時間以内、Device-1234には適用されません)
特定のアクションフロー:180分以内に1つのデバイスで少なくとも5つのアプリケーションがクラッシュします(Device-1234を除く)
したがって、ルールは次のように構成できます:
アクション1:アプリケーションのクラッシュ - Windowsデバイスでアプリケーションがクラッシュします。
- しきい値:このアクションは、180分以内に少なくとも5回発生する必要があります。
- フィルタ:
- デバイス名は、アクション1のすべての出現に対して同じでなければなりません。
- デバイス名は「Device-1234」ではない必要があります。
相関ルール:ランサムウェアアクティビティの可能性(Windows)
ランサムウェア攻撃は通常、ネットワークデバイス上のいくつかのファイルを(暗号化するために)変更する新たに開始されたプロセスで進行します。プロセスが開始され、すぐに複数のファイルが変更されることで識別できます。
一般的なアクションフロー:プロセス開始->ファイル変更->ファイル変更->(...)->ファイルの変更(すべて同じデバイスで数分以内に)
特定のアクションフロー:プロセス開始->(次の5分以内)->同じプロセスで、同じデバイスで少なくとも15のファイル変更
したがって、ルールは次のように構成できます:
アクション1:Windowsプロセスの開始 - Windowsでプロセスが開始されます。
- しきい値:なし
- フィルタ:なし
アクション1とアクション2の間の時間枠:5分
アクション2:ファイルの変更 - Windowsデバイスでファイルが変更されます。
- しきい値:30分以内に15回。
- フィルタ:
- デバイス名は、アクション2のすべての出現に対して同じでなければなりません。
- プロセス名は、アクション2のすべての出現に対して同じでなければなりません。
- デバイス名は、アクション1のデバイス名と同じでなければなりません。
- プロセス名は、アクション1のデバイス名と同じでなければなりません。