検知ルールの構文
基本
必須パラメーターとして以下の5つを指定する必要があります。
記述例
- name: Access to Environment Variable
func: getenv
file: os.py
value:
key: "$func_args[key]"
level: info
name
: ルールの名称func
: 検知する関数名file
: 検知する関数が記述されたプログラムファイル名value.key
: 検知結果画面でハイライトするパラメーターlevel
: 検知の重要度(alert
warn
info
)
条件記述
必須パラメーターに加え、誤検知を除外するための条件記述パラメーター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
: 条件の対象に指定した値が含まれる場合、他の許可ルールに関わらず検知する