import{_ as t}from"./frq-QPhXsmo9.js";import{_ as d,o as r,c as e,e as a}from"./app-xDBkFjzT.js";const n="/assets/rule_pro_1-PpcrhFq5.png",o="/assets/rule_events-EiXYG_UR.png",p="/assets/rule_op-qtxvlkt9.png",s={},i=a('<p>普通的模板都是基于某些常用的场景设定的规则,里面的参数是有限的。</p><p>但是有时候,希望可以实现更加复杂的组合的时候,这些模板的参数设置就满足不了需求。</p><p>比如:希望可以指定父进程路径参数、或者进程签名。</p><p>这时候就需要用到高级模板。</p><div class="hint-container info"><p class="hint-container-title">高级模板</p><p>下面这个规则表示:拦截父进程是 powershell.exe ,并且进程名是 rundll32.exe 或者 进程原始文件名是 rundll32.exe 的进程连接网络</p></div><figure><img src="'+n+'" alt="" tabindex="0" loading="lazy"><figcaption></figcaption></figure><p>高级模板参数分为两个部分,左边是事件,右边是逻辑条件。</p><h2 id="事件参数" tabindex="-1"><a class="header-anchor" href="#事件参数" aria-hidden="true">#</a> 事件参数</h2><p>需要先选择事件,才可以进行右边的规则设置。不同的事件提供是字段是不一样的,一般建议一次只选择一个事件。当然也是支持同时选中多个事件的,选中多个事件后,事件的字段就只有这些事件的共同部分。</p><figure><img src="'+o+'" alt="" tabindex="0" loading="lazy"><figcaption></figcaption></figure><p>支持的公共字段和运算符</p><figure><img src="'+p+'" alt="" tabindex="0" loading="lazy"><figcaption></figcaption></figure><h2 id="逻辑条件" tabindex="-1"><a class="header-anchor" href="#逻辑条件" aria-hidden="true">#</a> 逻辑条件</h2><p>选好事件后,就可以进行规则逻辑条件编辑。</p><p>基本的规则条件都是: <strong>字段 + 运算 + 值</strong> 的模式,比如 <strong>进程文件名 + 字符串等于 + notepad.exe</strong> 这样的。</p><p>然后使用逻辑 <strong>and、or</strong> 组合起来。</p><p><strong>|| 表示 or 逻辑</strong> : 所在分组有一个匹配成功,就表示匹配上了</p><p><strong>&amp; 表示 and 逻辑</strong> : 所在分组需要全部匹配成功,才表示匹配上</p><p>界面支持拖动,添加好条件后,可以很方便通过拖动来调整逻辑关系。</p><h2 id="内核模式" tabindex="-1"><a class="header-anchor" href="#内核模式" aria-hidden="true">#</a> 内核模式</h2><p>高级模板有两个,一个是<strong>高级模板</strong>,一个是<strong>高级模板(内核模式)</strong></p><table><thead><tr><th></th><th>高级模板</th><th>高级模板(内核模式)</th></tr></thead><tbody><tr><td>说明</td><td>事件会上抛到应用层进行规则匹配,可以支持弹窗交互。</td><td>规则设置进内核,事件直接在内核匹配,不会上抛到应用层。</td></tr><tr><td>使用场景</td><td>大部分场景</td><td>需要性能优化的场景,比如<strong>文件读取、注册表读取</strong>这些非常频繁的事件</td></tr><tr><td>是否支持弹窗</td><td>支持</td><td>不支持</td></tr><tr><td>是否支持记录事件</td><td>支持</td><td>不支持</td></tr><tr><td>字段支持情况</td><td>支持所有的字段</td><td>只支持原始字段(不支持签名、原始名等扩展字段)</td></tr></tbody></table><p>大部分场景都用<strong>高级模板</strong>就好了,但是对于文件读取、注册表读取等场景,建议使用<strong>内核模式</strong>,因为这样可以优化性能,避免造成系统卡慢。</p><h2 id="频繁操作" tabindex="-1"><a class="header-anchor" href="#频繁操作" aria-hidden="true">#</a> 频繁操作</h2><p>冰盾还支持对短时间内重复的操作进行检测和拦截。比如</p><p>勒索病毒场景:短时间内修改大量的文件。</p><p>网络爆破场景:短时间内反复链接远程桌面端口。</p><p>针对这些场景,可以添加频繁操作的规则。</p><figure><img src="'+t+'" alt="" tabindex="0" loading="lazy"><figcaption></figcaption></figure><p>频繁操作的规则是在高级模板的基础上,添加了操作频率参数。</p><p>怎么定义一个操作是相同的操作呢?</p><p>从三个维度组合去判断,操作进程(针对网络则是网络来源地址)、事件类型(比如操作文件)、操作目标(比如操作的文件路径)。</p><p>这三个参数可以任何勾选组合(只是勾选一个)。比如:</p><p>勾选了 操作进程:表示某个进程触发的任意匹配规则的行为,都是相同的行为</p><p>勾选了 操作进程 + 操作目标:表示相同的进程操作了相同的目标,则认为是相同的行为。</p><p>触发了频繁操作,还可以指定后续一定时间内,相同的操作都是频繁操作(不受前面的次数控制了)。这样就可以实现网络爆破检查到后,直接拉黑一定的时间,比如设置了1个小时,则表示这个小时内相同的操作都是频繁操作,结合弹窗拦截则可以拉黑这个攻击来源。</p><h2 id="事件说明" tabindex="-1"><a class="header-anchor" href="#事件说明" aria-hidden="true">#</a> 事件说明</h2><p>大部分的事件根据名称就知道含义了,一些没有特别需要注意的则不添加说明。</p><table><thead><tr><th>事件类型</th><th>说明</th></tr></thead><tbody><tr><td>创建进程</td><td>对应CreateProcess,可以用于拦截进程启动</td></tr><tr><td>打开进程</td><td>对应OpenProcess,拦截打开进程,可以用于保护进程</td></tr><tr><td>创建线程</td><td>对应CreateThread、CreateRemoteThread,可以拦截远程线程注入</td></tr><tr><td>打开线程</td><td></td></tr><tr><td>加载模块</td><td></td></tr><tr><td>加载驱动</td><td></td></tr><tr><td>操作文件</td><td>对应CreateFile,应用层为了性能会过滤掉所有只读打开的事件,内核的高级模板则所有打开都支持。</td></tr><tr><td>读文件</td><td>对应ReadFile,如果需要拦截读取文件,建议使用<strong>高级模板(内核模式)</strong>,使用内核模式的“操作文件”就可以拦截了。如果需要使用这个事件,一般需要配合<strong>创建文件映射一起</strong>使用,不然一些通过文件映射的读取方式没法拦截。</td></tr><tr><td>写文件</td><td></td></tr><tr><td>重命名文件</td><td></td></tr><tr><td>删除文件</td><td></td></tr><tr><td>修改文件大小</td><td></td></tr><tr><td>修改文件信息</td><td></td></tr><tr><td>枚举文件</td><td>在应用层有性能问题,建议使用<strong>高级模板(内核模式)</strong></td></tr><tr><td>创建文件映射</td><td></td></tr><tr><td>创建文件硬链接</td><td></td></tr><tr><td>修改文件安全属性</td><td></td></tr><tr><td>创建注册表键</td><td></td></tr><tr><td>打开注册表键</td><td></td></tr><tr><td>删除注册表键</td><td></td></tr><tr><td>重命名注册表键</td><td></td></tr><tr><td>枚举注册表键</td><td>在应用层有性能问题,建议使用<strong>高级模板(内核模式)</strong></td></tr><tr><td>加载注册表键</td><td></td></tr><tr><td>设置注册表值</td><td></td></tr><tr><td>查询注册表值</td><td>在应用层有性能问题,建议使用<strong>高级模板(内核模式)</strong></td></tr><tr><td>网络连接(TCP)</td><td></td></tr><tr><td>网络连接(UDP)</td><td></td></tr><tr><td>远程访问本地网络(TCP)</td><td></td></tr><tr><td>远程访问本地网络(UDP)</td><td></td></tr><tr><td>发送数据(TCP)</td><td></td></tr><tr><td>接收数据(TCP)</td><td></td></tr><tr><td>发送数据(UDP)</td><td></td></tr><tr><td>接收数据(UDP)</td><td></td></tr><tr><td>PING</td><td></td></tr><tr><td>HTTP</td><td></td></tr><tr><td>创建计划任务</td><td></td></tr><tr><td>磁盘命令控制</td><td></td></tr><tr><td>域名解析</td><td></td></tr><tr><td>修改设备状态</td><td></td></tr><tr><td>创建快捷方式</td><td></td></tr><tr><td>修改其他进程内存</td><td></td></tr><tr><td>读取其他进程内存</td><td></td></tr><tr><td>远程创建进程</td><td></td></tr><tr><td>修改其他进程的线程上下文</td><td></td></tr><tr><td>插入异步过程调用到其他进程</td><td></td></tr><tr><td>映射内存到其他进程</td><td></td></tr><tr><td>复制其他进程的句柄</td><td></td></tr><tr><td>创建服务</td><td></td></tr><tr><td>启动服务</td><td></td></tr><tr><td>停止服务</td><td></td></tr><tr><td>修改服务配置</td><td></td></tr><tr><td>关闭(重启)系统</td><td></td></tr><tr><td>注销系统</td><td></td></tr><tr><td>修改系统时间</td><td></td></tr><tr><td>修改桌面背景</td><td></td></tr><tr><td>读取剪切板</td><td></td></tr><tr><td>开启摄像头</td><td></td></tr><tr><td>开启麦克风</td><td></td></tr><tr><td>屏幕截图</td><td></td></tr><tr><td>设置全局钩子</td><td></td></tr><tr><td>键盘记录</td><td></td></tr><tr><td>关闭进程窗口</td><td></td></tr><tr><td>跨进程发送消息</td><td></td></tr><tr><td>模拟鼠标(键盘)</td><td></td></tr><tr><td>创建COM接口</td><td></td></tr><tr><td>连接跨进程通信端口</td><td></td></tr><tr><td>执行PowerShell命令</td><td></td></tr></tbody></table>',39),g=[i];function h(c,l){return r(),e("div",null,g)}const u=d(s,[["render",h],["__file","rule_pro.html.vue"]]);export{u as default};