ルール構文
クイックリンク: <definition> , <operations>, <description>, <actions>
ルールは、XMLベースの言語を使用して定義された一連の式です。ESET PROTECT Webコンソールには定義済みのルールセットが含まれていますが、独自のルールを追加し、編集できます。
ルールの一般的な本文構造は次のとおりです。
<rule> <definition> |
Definition タグ
ancestor - 追加の属性を取ることができます。
•distance - 照合する祖先の現在のプロセスからの実際の距離を指定します。たとえば、1は親プロセス、2は祖父母プロセスなどとなります。指定しない場合、プロパティはすべてのプロセスの祖先と照合されます
•unique - 祖先タグが祖先ツリー内の重複プロセスを削除できるようにします。たとえば、マルウェアは検出を回避するために同じプロセスのインスタンスを複数作成しますが(explorer -> cmd -> cmd -> cmd -> マルウェア)、この属性はこれらの重複を取り除きます(explorer -> cmd -> マルウェア)
Processとparentprocess
このprocess部分を使用して、セキュリティエンジニアはイベントを特定のプロセスに制限できるため、"OutlookでEXEファイルを作成する"などのルールを記述できます。プロセス要素が空の場合、operationsとparentprocessはすべてのプロセスに対して評価されます。
このparentprocess部分はプロセスと似ていますが、セキュリティエンジニアは親プロセス属性をテストできます。これにより、"Wordによって起動されたPowerShellはインターネットに接続する"などのルールが可能になります。
process、parentprocess、ancestor、operationは式要素を使用して、検出をトリガーする必要があるかどうかを確認するために評価する論理式を記述します。式は、条件と論理演算子で構成されます。条件はいくつかのプロパティの値をチェックし、論理演算子はこれらの条件を論理式にグループ化します。
式の例:
<operator type="and"> |
Operations
このoperations部分では、プロセスによって実行されるどの操作がインジケーターを発生させるかを定義します。空の場合、プロセスがイベントを生成するとインジケーターがトリガーされます。
操作は、type属性を持つ操作要素と式要素を使用して定義されます。
<operation type="WriteFile">Expression</operation>
サポートされている操作の詳細な一覧については、操作のトピックを参照してください。
Operator
サポートされている論理演算子はAND、OR、NOTです。論理演算子は入れ子にすることができます。したがって、論理演算子は別の論理演算子の引数になることができます。論理演算子の他に、条件要素を論理演算子の引数として使用できます。次の例で示すように、演算子タグを使用できます。
<process> |
条件要素は、以下の3つの部分で構成されています。
•操作の引数またはプロセスのプロパティ
•ルールの作成者が指定した値
•値とプロパティの関係
プロパティは階層的に「コンポーネント」にグループ化されます。
重大度には3つのレベルがあります。1-39 > Info、40-69 > Warning、70-100 > Threat
プロパティのタイプとその関係(条件属性)は、次のようになっています。
|
is(not)set |
is(not) |
is(not)empty |
(not)starts |
(not)contains |
(not)ends |
less, lessOrEqual, greater, greaterOrEqual |
|---|---|---|---|---|---|---|---|
String |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
|
Int |
✔ |
✔ |
|
|
✔ |
|
✔ |
Value |
✔ |
✔ |
✔ |
|
|
|
|
Bool |
✔ |
✔ |
|
|
|
|
|
Date |
✔ |
✔ |
|
|
|
|
✔ |
文字列のセット |
✔ |
|
✔ |
|
✔ |
|
|
IPv4アドレス |
✔ |
✔ |
✔ |
|
|
|
|
IPv6アドレス |
✔ |
✔ |
✔ |
|
|
|
|
IPv4アドレスのセット |
✔ |
|
✔ |
|
✔ |
|
|
IPv6アドレスのセット |
✔ |
|
✔ |
|
✔ |
|
|
Description タグ
Descriptionは必須で、名前とカテゴリを含める必要がありますが、残りは省略可能です。以下のフィールドは詳細に表示されるので、定義すると便利です。
name – ルールの名前。ルールのリストに表示されます。
category - ルールを分類できます。独自のカテゴリを指定できます。
explanation - ルールがトリガーされる理由を説明します。
os - ルールが適用されるオペレーティングシステムが含まれます。可能な値は、Windows, Linux, OSX, ANY.です。
mitreattackid - MITRE ATT&CK®のIDが含まれます。
maliciousCauses - イベントの悪意のある原因、またはルールをトリガーした変更について説明します
benignCauses - イベントの無害な原因、またはルールをトリガーした変更について説明します
recommendedActions - セキュリティエンジニアが行う推奨アクションについて説明します。
guid - 内部ルールに使用されます。外部ルールでは、GUIDが自動的に生成されます。これは、エクスポート/インポート時にルールを一意に識別するために使用されます。
maliciousTarget タグ
maliciousTargetタグを使用して、デフォルトでカスタム応答アクションの影響を受けるターゲットを指定できます。たとえば、実行可能ファイルのブロックを選択した場合、変更はmaliciousTargetによって異なります。アクションタグの動作は変更されません。可能な値は、current、module、none、parentです。
maliciousProcessタグはmaliciousTargetタグに置き換えられました。現在もレガシーをサポートしていますが、maliciousTargetタグを使用することをお勧めします。
Actions タグ
アクションタグを使用すると、ルールがトリガーされたときに実行される一連のアクションを指定できます。
アクションを1つのアクション要素にまとめることができます。
<action name="BlockProcessExecutable"/>
または、複数のアクション要素を1つのアクション要素にスタックします(次の例を参照)。
<actions> |
1つのルールから複数のアクションをトリガーできます。