検知ルールの構文
基本
必須パラメーターとして以下の5つを指定する必要があります。
記述例
- name: Access to Environment Variable
func: getenv
file: os.py
value:
key: "$func_args[key]"
level: info
name: ルールの名称func: 検知する関数名file: 検知する関数が記述されたプログラムファイル名value.key: 検知結果画面でハイライトするパラメーターlevel: 検知の重要度(alertwarninfo)
条件記述
必須パラメーターに加え、誤検知を除外するための条件記述パラメーターconditionがサポートされています。
記述例
condition:
arg: # 引数
allow: # 引数に以下が含まれる場合、検知しない
- 0.0.0.0
func: # 呼び出し元関数
disallow: # 呼び出し元関数に以下の関数が含まれる場合、他の許可ルールに関わらず検知する
- render_template_string
remote_addr: # アクセス元IPアドレス
allow: # アクセス元IPアドレスに以下が含まれる場合、検知しない
- 127.0.0.1
request_path: # URLのPath
allow: # URLのPathに以下が含まれる場合、検知しない
- /getenv
条件の対象として4つのパラメーターがあります。
arg: 引数func: 呼び出し元関数remote_addr: アクセス元IPアドレスrequest_path: URLのPath
条件の対象パラメーターそれぞれに対し条件パラメーターがあります。
allow: 条件の対象に指定した値が含まれる場合、検知しないdisallow: 条件の対象に指定した値が含まれる場合、他の許可ルールに関わらず検知する