From 80d39643208b88cb67b56334343f5556b30eeade Mon Sep 17 00:00:00 2001
From: Fplyth0ner <1474085960@qq.com>
Date: Thu, 8 Sep 2022 15:42:44 +0800
Subject: [PATCH] =?UTF-8?q?Docs:=20=E6=96=B0=E5=A2=9E=E6=9C=8D=E5=8A=A1?=
=?UTF-8?q?=E7=AB=AF=E8=A7=84=E5=88=99=E6=8C=87=E5=8D=97?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
README.md | 352 +++++++++++++++++++-------------------
doc_day0_rule.md | 210 ++++++++++++-----------
doc_server_rule_manual.md | 156 +++++++++++++++++
3 files changed, 440 insertions(+), 278 deletions(-)
create mode 100644 doc_server_rule_manual.md
diff --git a/README.md b/README.md
index 67de6bf..68558aa 100644
--- a/README.md
+++ b/README.md
@@ -1,174 +1,178 @@
-
-
-# RmEye
-RmEye是一个window上的基于att&ck现代EDR设计思想的威胁响应工具.
-不同于EDR,它轻量、高效.自身定位是轻量级威胁检出工具.
-而不是繁重的、需要付费的、效果不明的所谓的EDR
-RmEye基于att&ck模型,如果您对att&ck模型不熟悉,请先阅读相关文章后再使用:
-https://key08.com/index.php/2022/08/09/1505.html
-
-### 功能特点
-1. 基于att&ck设计.所有设计只是为了符合att&ck的攻击路径、攻击链(虽然规则里面没有标注T因为懒惰)
-2. 轻量、高效.为了不适用繁重超占内存的ELK设计思路,而且要保证检出的同时保证不会太重,agent端使用了大量规则过滤,这样才使得后端使用sqlite作为数据库成为可能.单机日志平均一天4M.此外轻量级别的客户端一天只占40-400KB的内存.
-3. 行为检出,让免杀成为过去式.基于att&ck设计,只看行为不看文件.文件类免杀已经成为过去式.
-4. 高扩展性.可随需求定制功能
-
-### RmEye 之所以不是 Edr/Xdr/Mdr/Ndr/XXXXXdr
-1. RmEye没有流量监控
-2. RmEye仅覆盖20%左右的datasource
-3. RmEye没有联动WAF、IPS/IDS
-4. RmEye没有实时拦截功能
-5. 对RPC、COM、ALPC基本无能为力
-6. 不支持更高级的扩展检测,如检测脚本、下发规则,主机链
-7. 受限于Sysmon,很多att&ck的T没有覆盖,也无法覆盖.
-8. 没有响应能力,只能被动记录.
-请牢记,RmEye自身定位是轻量级威胁检出工具
-
-### 最新新闻
-2022/9/5:
-增加规则编写教程:
-https://github.com/RoomaSec/RmEye/blob/main/doc_day0_rule.md
-增加`mimikatz`检测
-
-2022/8/31:
-增加进程白名单系统,现在能给进程加白名单了.在打开进程链后,点击某个进程加入白名单即可
-
-2022/8/29:
-增加uac提权检测插件`uac_bypass_detect`,但是受限于sysmon,没有办法获取RPC信息,因此只能检测一部分的UAC提权行为.并且有误报,请酌情考虑
-
-### 检出截图
-威胁列表:
-
-进程链行为回溯
-
-powershell恶意执行:
-
-apt样本:
-
-勒索软件:
-
-网站入侵提权到执行cobalt strike:
-
-offic宏钓鱼:
-
-uac提权检测:
-
-mimikatz检测:
-
-
-### 待做列表
-1. 更好的前端(目前是VUE-CDN模式,不太好,想换成VUE-CLI) 已经完成
-2. 日志回放【目前重点】
-3. 威胁狩猎【目前重点】
-4. att&ck热力图
-5. 在线规则编辑器
-6. 内网横向检测
-7. iis、apache、nginx日志搜集分析(aka: XDR的实现)
-8. 集成反病毒引擎
-9. 完善目前的插件系统【目前重点】
-10. 云日志检测能力【目前重点】
-### 安装
-下载release( https://github.com/RoomaSec/RmEye/releases ),里面有客户端,服务端自行clone本项目
-服务端是python3编写,安装完依赖库后输入
-```
-python webserver.py
-```
-即可部署
-服务端部署后,修改config.py里面的
-```
-# 检出阈值,越高越难检出但是也会越准确
-MAX_THREAT_SCORE = 170
-
-# 授权访问主站的IP列表.如果不在后台里面则不能访问后台
-ALLOW_ACCESS_IP = ['127.0.0.1']
-```
-MAX_THREAT_SCORE代表报警分数,意思为进程链总分超过此分数则报警,越高越准但是也会漏报
-ALLOW_ACCESS_IP代表允许的IP,只有在此名单里面的IP才能访问后台.请增加自己的IP地址
-
-客户端则编辑config.ini
-```
-[communication]
-server = http://192.168.111.189:5000
-```
-其中server改成你的服务端的地址
-然后分发三个文件给客户端并且放在同一目录:
-config.ini、install.cmd、RmEye.exe、sysmon.xml、Sysmon64.exe
-之后管理员身份运行install.cmd安装sysmon与RmEye
-访问 http://服务器ip:5000(flask默认端口) 查看后台
-当然一开始啥数据也没有,为了确认是否安装成功可以将webserver.py中的
-```
- flask_log = logging.getLogger('werkzeug')
- flask_log.setLevel(logging.ERROR)
-```
-注释掉,检查有没有客户端的请求即可
-手动安装(cmd脚本其实执行了这些命令):
-```
-//安装sysmon:
-sysmon -i
-//sysmon加载配置项
-sysmon -c sysmon.xml
-//安装RmEye
-RmEye /install
-```
-
-### 卸载
-卸载RmEye:
-在RmEye目录下执行
-```
-SysEye /uninstall
-```
-如果您需要卸载sysmon
-执行
-```
-sysmon /uninstall
-```
-即可干净卫生的卸载掉RmEye
-
-### 规则相关的问题
-1. 规则目前仅120条,很多攻击面没有覆盖,其他规则请访问《社区》
-2. 规则目前只支持rule_engine与yara的规则,其中yara的规则支持是以插件的形式支持
-3. 目前的规则字段完全依赖sysmon的字段,sysmon的字段请检查根目录下的provider.json(但是请记住纯小写,自行做大小写转换)
-
-规则目前在`Server/rules`目录规则目前有两种规则:
-rule_engine:
-如检测由CMD启动的ipconfig:
-```
-{
- 'rules': [
- 'originalfilename =~ ".*cmd.exe" and commandline =~ ".*ipconfig.*"',
- ],
- 'score': 80,
- 'name': 'cmd启动ipconfig'
-},
-```
-分数代表的是本次规则给进程链所增加的分数,报警是根据前面的MAX_THREAT_SCORE设置的
-
-规则编写教程请移步:
-https://github.com/RoomaSec/RmEye/blob/main/doc_day0_rule.md
-
-规则引擎的语法请移步:
-https://github.com/zeroSteiner/rule-engine
-
-yara,需要安装插件,具体请看交流部分
-
-### 第三方引用库
-1. sysmon
-https://docs.microsoft.com/zh-cn/sysinternals/downloads/sysmon
-2. rule_engine
-https://github.com/zeroSteiner/rule-engine
-3. yara
-https://github.com/VirusTotal/yara
-4. sysmon-config(客户端使用的默认的规则,但是我做了一些修改)
-https://github.com/SwiftOnSecurity/sysmon-config
-请遵守相关库的开源协议.相关法律风险本项目不负任何责任
-
-### 交流
-开源的目的不是为了免费填鸭式教学,或者被免费拿去发公众号引流、去拿去集成产品方案去赚钱,而是要一起完善这个工具,从而实现共赢.
-扫一扫加入这个工具的交流群,这样就能获取实时动态.参与开发、参与交流规则编写等等.欢迎加入
-最近进群的人有点多,所以不活跃的哥们暂时清理掉,但是微信太不好使了.要是t错了或者还想在群待着不发言的重新加群吧
-
-
-### 特别感谢
-@Pwn0x01 yara插件
-@zeroSteiner 规则引擎插件
-@SwiftOnSecurity 客户端规则
+
+
+# RmEye
+RmEye是一个window上的基于att&ck现代EDR设计思想的威胁响应工具.
+不同于EDR,它轻量、高效.自身定位是轻量级威胁检出工具.
+而不是繁重的、需要付费的、效果不明的所谓的EDR
+RmEye基于att&ck模型,如果您对att&ck模型不熟悉,请先阅读相关文章后再使用:
+https://key08.com/index.php/2022/08/09/1505.html
+
+### 功能特点
+1. 基于att&ck设计.所有设计只是为了符合att&ck的攻击路径、攻击链(虽然规则里面没有标注T因为懒惰)
+2. 轻量、高效.为了不适用繁重超占内存的ELK设计思路,而且要保证检出的同时保证不会太重,agent端使用了大量规则过滤,这样才使得后端使用sqlite作为数据库成为可能.单机日志平均一天4M.此外轻量级别的客户端一天只占40-400KB的内存.
+3. 行为检出,让免杀成为过去式.基于att&ck设计,只看行为不看文件.文件类免杀已经成为过去式.
+4. 高扩展性.可随需求定制功能
+
+### RmEye 之所以不是 Edr/Xdr/Mdr/Ndr/XXXXXdr
+1. RmEye没有流量监控
+2. RmEye仅覆盖20%左右的datasource
+3. RmEye没有联动WAF、IPS/IDS
+4. RmEye没有实时拦截功能
+5. 对RPC、COM、ALPC基本无能为力
+6. 不支持更高级的扩展检测,如检测脚本、下发规则,主机链
+7. 受限于Sysmon,很多att&ck的T没有覆盖,也无法覆盖.
+8. 没有响应能力,只能被动记录.
+请牢记,RmEye自身定位是轻量级威胁检出工具
+
+### 最新新闻
+2022/9/8:
+增加服务端规则指南: \
+[doc_server_rule_manual.md](./doc_server_rule_manual.md)
+
+2022/9/5:
+增加规则编写教程:
+https://github.com/RoomaSec/RmEye/blob/main/doc_day0_rule.md
+增加`mimikatz`检测
+
+2022/8/31:
+增加进程白名单系统,现在能给进程加白名单了.在打开进程链后,点击某个进程加入白名单即可
+
+2022/8/29:
+增加uac提权检测插件`uac_bypass_detect`,但是受限于sysmon,没有办法获取RPC信息,因此只能检测一部分的UAC提权行为.并且有误报,请酌情考虑
+
+### 检出截图
+威胁列表:
+
+进程链行为回溯
+
+powershell恶意执行:
+
+apt样本:
+
+勒索软件:
+
+网站入侵提权到执行cobalt strike:
+
+offic宏钓鱼:
+
+uac提权检测:
+
+mimikatz检测:
+
+
+### 待做列表
+1. 更好的前端(目前是VUE-CDN模式,不太好,想换成VUE-CLI) 已经完成
+2. 日志回放【目前重点】
+3. 威胁狩猎【目前重点】
+4. att&ck热力图
+5. 在线规则编辑器
+6. 内网横向检测
+7. iis、apache、nginx日志搜集分析(aka: XDR的实现)
+8. 集成反病毒引擎
+9. 完善目前的插件系统【目前重点】
+10. 云日志检测能力【目前重点】
+### 安装
+下载release( https://github.com/RoomaSec/RmEye/releases ),里面有客户端,服务端自行clone本项目
+服务端是python3编写,安装完依赖库后输入
+```
+python webserver.py
+```
+即可部署
+服务端部署后,修改config.py里面的
+```
+# 检出阈值,越高越难检出但是也会越准确
+MAX_THREAT_SCORE = 170
+
+# 授权访问主站的IP列表.如果不在后台里面则不能访问后台
+ALLOW_ACCESS_IP = ['127.0.0.1']
+```
+MAX_THREAT_SCORE代表报警分数,意思为进程链总分超过此分数则报警,越高越准但是也会漏报
+ALLOW_ACCESS_IP代表允许的IP,只有在此名单里面的IP才能访问后台.请增加自己的IP地址
+
+客户端则编辑config.ini
+```
+[communication]
+server = http://192.168.111.189:5000
+```
+其中server改成你的服务端的地址
+然后分发三个文件给客户端并且放在同一目录:
+config.ini、install.cmd、RmEye.exe、sysmon.xml、Sysmon64.exe
+之后管理员身份运行install.cmd安装sysmon与RmEye
+访问 http://服务器ip:5000(flask默认端口) 查看后台
+当然一开始啥数据也没有,为了确认是否安装成功可以将webserver.py中的
+```
+ flask_log = logging.getLogger('werkzeug')
+ flask_log.setLevel(logging.ERROR)
+```
+注释掉,检查有没有客户端的请求即可
+手动安装(cmd脚本其实执行了这些命令):
+```
+//安装sysmon:
+sysmon -i
+//sysmon加载配置项
+sysmon -c sysmon.xml
+//安装RmEye
+RmEye /install
+```
+
+### 卸载
+卸载RmEye:
+在RmEye目录下执行
+```
+SysEye /uninstall
+```
+如果您需要卸载sysmon
+执行
+```
+sysmon /uninstall
+```
+即可干净卫生的卸载掉RmEye
+
+### 规则相关的问题
+1. 规则目前仅120条,很多攻击面没有覆盖,其他规则请访问《社区》
+2. 规则目前只支持rule_engine与yara的规则,其中yara的规则支持是以插件的形式支持
+3. 目前的规则字段完全依赖sysmon的字段,sysmon的字段请检查根目录下的provider.json(但是请记住纯小写,自行做大小写转换)
+
+规则目前在`Server/rules`目录规则目前有两种规则:
+rule_engine:
+如检测由CMD启动的ipconfig:
+```
+{
+ 'rules': [
+ 'originalfilename =~ ".*cmd.exe" and commandline =~ ".*ipconfig.*"',
+ ],
+ 'score': 80,
+ 'name': 'cmd启动ipconfig'
+},
+```
+分数代表的是本次规则给进程链所增加的分数,报警是根据前面的MAX_THREAT_SCORE设置的
+
+规则编写教程请移步:
+https://github.com/RoomaSec/RmEye/blob/main/doc_day0_rule.md
+
+规则引擎的语法请移步:
+https://github.com/zeroSteiner/rule-engine
+
+yara,需要安装插件,具体请看交流部分
+
+### 第三方引用库
+1. sysmon
+https://docs.microsoft.com/zh-cn/sysinternals/downloads/sysmon
+2. rule_engine
+https://github.com/zeroSteiner/rule-engine
+3. yara
+https://github.com/VirusTotal/yara
+4. sysmon-config(客户端使用的默认的规则,但是我做了一些修改)
+https://github.com/SwiftOnSecurity/sysmon-config
+请遵守相关库的开源协议.相关法律风险本项目不负任何责任
+
+### 交流
+开源的目的不是为了免费填鸭式教学,或者被免费拿去发公众号引流、去拿去集成产品方案去赚钱,而是要一起完善这个工具,从而实现共赢.
+扫一扫加入这个工具的交流群,这样就能获取实时动态.参与开发、参与交流规则编写等等.欢迎加入
+最近进群的人有点多,所以不活跃的哥们暂时清理掉,但是微信太不好使了.要是t错了或者还想在群待着不发言的重新加群吧
+
+
+### 特别感谢
+@Pwn0x01 yara插件
+@zeroSteiner 规则引擎插件
+@SwiftOnSecurity 客户端规则
diff --git a/doc_day0_rule.md b/doc_day0_rule.md
index f531cf4..f55c654 100644
--- a/doc_day0_rule.md
+++ b/doc_day0_rule.md
@@ -1,104 +1,106 @@
-### 规则编写教程
-
-首先明确一点,rmeye有绝大部分威胁的检出能力,但是受限于规则,这些能力相当于只记录但是没生效.因此编写规则是一件重要的事情.在一切的开始,请您阅读ATT&CK的思想:
-
-https://key08.com/index.php/2022/08/09/1505.html
-
-本文以检测`mimikatz的关键dll加载`为例
-
-`mimikatz`会加载: `C:\\Windows\\System32\\samlib.dll` 本文以他为例
-
-### sysmon客户端规则
-
-在编写服务端规则之前,请确保`sysmon`有相关配置.因为`rmeye`依赖于`sysmon`,得有客户端规则,才有服务端规则:
-
-打开客户端安装目录下的`sysmon.xml`:
-
-
-
-我们需要检测`dll`加载,所以请把目光看到`ImageLoad`
-
-其他的`sysmon`字段请自行谷歌或者百度了解.本项目有个`provider.json`那个是`sysmon`的所有字段.可以参考,打开`provider.json` ,找到`ImageLoad`
-
-
-
-可以看到`sysmon`记录了非常多有用的字段,对于我们来说,我们只需要`ImageLoaded`
-
-在`sysmon.xml`找到`Imageload`这个block,
-
-```c
-
-
-
-
-
-```
-
-我们给他增加一个,接受加载`C:\\Windows\\System32\\samlib.dll`的日志:
-
-```c
-
-
- C:\Windows\System32\samlib.dll
-
-
-```
-
-
-
-保存,更新`sysmon`的配置文件,在`rmeye`的安装目录或者在`sysmon`的安装目录执行:
-
-```
-sysmon -c sysmon.xml
-```
-
-
-
-看到这个,说明你成功了,其他的说明规则有错误,检查一下你写的规则.
-
-
-
-### 服务端规则编写
-
-客户端有了搜集日志能力后,是时候编写服务端的了:
-
-打开服务端目录下的`server/rules/action.py`
-
-在末尾添加:
-
-```
- {
- 'rules': [
- 'action == "imageload" and imageloaded == "c:\\windows\\system32\\samlib.dll"',
- ],
- 'score': 50,
- 'name': 'samlib的dll被加载'
- }
-```
-
-其中
-
-```
-rules: 规则的列表,可以是多个规则,是and关系
-score: 是分数,跟config.py里面的报警分数有关系
-name: 规则名字
-规则全部小写,==代表正常匹配,如果是=~代表使用python正则
-```
-
-保存,重启服务端,如果不出意外您应该看得到最新的刚刚增加的规则:
-
-
-
-
-
-### 测试
-
-找个mimikatz运行一下看看:
-
-
-
-(为了测试,将分数设置高一点准没错)
-
-至此,您就具备的检测mimikatz的一些行为的能力,当然这行为是不全的而且容易产生很多误报的,很多时候为了减少误报或者实现更精准的检测,您需要高级检出能力,这将在下一章插件检测中介绍.
-下一章:
-https://github.com/RoomaSec/RmEye/blob/main/doc_day1_plugin.md
+### 规则编写教程
+
+首先明确一点,rmeye有绝大部分威胁的检出能力,但是受限于规则,这些能力相当于只记录但是没生效.因此编写规则是一件重要的事情.在一切的开始,请您阅读ATT&CK的思想:
+
+https://key08.com/index.php/2022/08/09/1505.html
+
+本文以检测`mimikatz的关键dll加载`为例
+
+`mimikatz`会加载: `C:\\Windows\\System32\\samlib.dll` 本文以他为例
+
+### sysmon客户端规则
+
+在编写服务端规则之前,请确保`sysmon`有相关配置.因为`rmeye`依赖于`sysmon`,得有客户端规则,才有服务端规则:
+
+打开客户端安装目录下的`sysmon.xml`:
+
+
+
+我们需要检测`dll`加载,所以请把目光看到`ImageLoad`
+
+其他的`sysmon`字段请自行谷歌或者百度了解.本项目有个`provider.json`那个是`sysmon`的所有字段.可以参考,打开`provider.json` ,找到`ImageLoad`
+
+
+
+可以看到`sysmon`记录了非常多有用的字段,对于我们来说,我们只需要`ImageLoaded`
+
+在`sysmon.xml`找到`Imageload`这个block,
+
+```c
+
+
+
+
+
+```
+
+我们给他增加一个,接受加载`C:\\Windows\\System32\\samlib.dll`的日志:
+
+```c
+
+
+ C:\Windows\System32\samlib.dll
+
+
+```
+
+
+
+保存,更新`sysmon`的配置文件,在`rmeye`的安装目录或者在`sysmon`的安装目录执行:
+
+```
+sysmon -c sysmon.xml
+```
+
+
+
+看到这个,说明你成功了,其他的说明规则有错误,检查一下你写的规则.
+
+
+
+### 服务端规则编写
+
+客户端有了搜集日志能力后,是时候编写服务端的了:
+
+打开服务端目录下的`server/rules/action.py`
+
+在末尾添加:
+
+```
+ {
+ 'rules': [
+ 'action == "imageload" and imageloaded == "c:\\windows\\system32\\samlib.dll"',
+ ],
+ 'score': 50,
+ 'name': 'samlib的dll被加载'
+ }
+```
+
+其中
+
+```
+rules: 规则的列表,可以是多个规则,是and关系
+score: 是分数,跟config.py里面的报警分数有关系
+name: 规则名字
+规则全部小写,==代表正常匹配,如果是=~代表使用python正则
+```
+
+保存,重启服务端,如果不出意外您应该看得到最新的刚刚增加的规则:
+
+
+
+**完整的 `服务端规则指南`**
+
+[doc_server_rule_manual.md](./doc_server_rule_manual.md)
+
+### 测试
+
+找个mimikatz运行一下看看:
+
+
+
+(为了测试,将分数设置高一点准没错)
+
+至此,您就具备的检测mimikatz的一些行为的能力,当然这行为是不全的而且容易产生很多误报的,很多时候为了减少误报或者实现更精准的检测,您需要高级检出能力,这将在下一章插件检测中介绍.
+下一章:
+https://github.com/RoomaSec/RmEye/blob/main/doc_day1_plugin.md
diff --git a/doc_server_rule_manual.md b/doc_server_rule_manual.md
new file mode 100644
index 0000000..c7dcd46
--- /dev/null
+++ b/doc_server_rule_manual.md
@@ -0,0 +1,156 @@
+# 服务端规则指南
+
+编写服务端规则前,请您详细阅读本文,以便了解规则背后的故事,并帮助您更好的编写 RmEye 规则。
+
+
+# 规则在何时被应用
+
+RmEye 通过本地部署的客户端,向服务器传输行为事件。 \
+服务器在收集并解析了行为事件日志后,会立即调用规则匹配函数检测该行为是否被某条规则命中。
+
+
+# 规则分类
+
+基于 RmEye 的设计思想,一切动作都基于其进程载体,所以,规则被分为 动作(action)和 进程(process)两种类型。
+
+- [`进程规则`]
+
+ 用于在进程启动事件日志中,检测新进程的启动上下文,判断其是否为可疑行为。
+
+- [`动作规则`]
+
+ 用于在非进程启动事件日志中,检测其特定行为上下文,判断其是否为可疑行为。
+
+RmEye 动作规则列表编写于 `/Server/rules/py/action.py` 文件中;进程规则列表编写于 `/Server/rules/py/process.py` 文件中。
+
+
+# 规则单元数据结构
+
+```json
+ {
+ 'rules': [
+ 'originalfilename =~ ".*wbadmin.exe.*" and commandline =~ ".*delete.*"',
+ ],
+ 'score': 70,
+ 'name': '通过wbadmin删除备份'
+ }
+```
+这是一个 进程(process)类型的示例规则单元,它是一个 dict 数据,包含有三个 item,\
+分别是:`rules`, `score`, `name`
+
+- [`rules`]-> `list`:
+
+ 其中包含一个或多个使用 `rule_engine` 语法的规则匹配表达式,每个表达式间的关系为 `或`,即任何一个表达式被匹配,都认为该规则已命中。
+
+- [`score`]-> `int`:
+
+ 由一个整数表示的规则匹配分值
+
+- [`name`]-> `str`:
+
+ 规则名称
+
+# 适用于 RmEye 的 `rule_engine` 规则匹配表达式
+
+`rule_engine` 表达式是服务端规则的核心,它允许用户定义一个 key-value 类型的 Query 表达式,以匹配一个 dict 数据;\
+表达式的左值匹配 dict 数据中的特定键名(key),\
+右值允许适用通配符、数字、字符串等进行完全匹配或模糊匹配 dict 数据中,对应左值键名的值(value)。\
+需要特别注意的是,必须定义 RmEye 数据源事件日志中存在的左值,才可以使规则完全按照预期工作。
+
+# 进程规则已支持的通用左值定义
+
+- `processid`
+
+ 进程 PID
+
+- `image`
+
+ 进程文件路径
+
+- `originalfilename`
+
+ 进程原始文件名
+
+- `hashes`
+
+ 进程 MD5 哈希
+
+- `commandline`
+
+ 进程命令行
+
+- `user`
+
+ 进程用户名
+
+- `integritylevel`
+
+ 进程权限等级
+
+- `parentprocessid`
+
+ 父进程 PID
+
+- `parentimage`
+
+ 父进程文件路径
+
+- `parentcommandline`
+
+ 父进程命令行
+
+- `parentuser`
+
+ 父进程用户
+
+# 动作规则已支持的特有左值定义
+
+- `action`
+
+ 动作类型,包括:
+ | action | 描述 |
+ | ---- | ---- |
+ | processaccess | 进程句柄访问 |
+ | pipecreate | 命名管道创建 |
+ | createremotethread | 远程线程创建 |
+ | filecreatestreamhash | 文件流创建 |
+ | registryadd | 注册表项新建 |
+ | registryvalueSet | 注册表值项设置 |
+ | registryobjectSet | 注册表对象设置 |
+ | dnsquery | DNS 查询 |
+ | networkconnect | 网络连接建立 |
+ | clipboardchange | 剪贴板访问 |
+ | processtampering | 进程执行流劫持 |
+ | filedeletedetected | 可执行文件删除 |
+ | filecreate | 文件创建 |
+ | imageload | DLL 加载 |
+ | processcreate | 进程创建(已分离为进程规则)|
+ | processterminal | 进程退出(内部保留)|
+
+- `sourceimage` - 仅适用于动作 `processaccess`
+
+ 源进程文件路径
+
+- `targetimage` - 仅适用于动作 `processaccess`
+
+ 目标进程文件路径
+
+- `grantedaccess` - 仅适用于动作 `processaccess`
+
+ 访问权限
+
+- `calltrace` - 仅适用于动作 `processaccess`
+
+ 调用栈(Call Stack)
+
+- `pipename` - 仅适用于动作 `pipecreate`
+
+ 管道名称
+
+- `targetfilename` - 仅适用于动作 `filecreate`
+
+ 目标文件名
+
+- `imageloaded` - 仅适用于动作 `imageload`
+
+ 已加载的映像名
\ No newline at end of file