首页
/
行业洞察
/
正文
INDUSTRY INSIGHT · 深度
Sigma 占位符规则(Placeholder Rules)完全指南:用可复用模板构建灵活检测
📅 2026/9/15 17:34:18
✍️ 爱科研究院
👁 阅读 3,247
Sigma 占位符规则Placeholder Rules完全指南用可复用模板构建灵活检测【免费下载链接】sigmaMain Sigma Rule Repository项目地址: https://gitcode.com/GitHub_Trending/si/sigma导读Sigma 占位符规则Placeholder Rules是 SigmaHQ 主规则仓库中一类特殊的检测模板用于把与具体环境强相关的信息如内网域名、可信 IP、管理员账户、服务器主机名等从规则逻辑中抽象出来交给使用者按需填充。本文以 rules-placeholder/README.md 为骨架结合仓库内 23 个真实占位符规则实例讲解占位符的设计动机、六种 pySigma 占位符转换、|expand修饰符的写法以及如何在 Windows、AWS、Azure、Okta 等场景中落地使用帮助你写出既能共享给社区、又能无缝适配自家环境的 Sigma 规则。什么是占位符规则在 rules-placeholder 目录下存放的规则本质上是可定制化的检测模板flexible detection templates。README 开篇即点明其定位The rules available in this folder, are flexible detection templates that can be customized for your environments or use cases.典型的使用场景包括需要域名或工作站变体的检测例如仅监控公司内部的服务器系统与公司特定环境强相关的检测逻辑例如只有少数管理员被允许邀请访客用户每家企业各不相同、无法在通用规则中写死的值例如合法登录国家/地区列表。因此占位符规则扮演的是抽象检测模板的角色规则作者把环境相关值写成占位符使用者在部署时替换为自己的值即可。正如 README 所述placeholder rules serve as an abstract detection template, where you adjust the placeholder value to fit your use case.设计动机让私有规则保持干净、让环境信息可复用占位符机制解决的是 Sigma 生态中一个真实痛点企业往往需要在社区规则之上叠加自己的私有规则private rules而这些私有规则里充斥着%DomainControllers%、%Approved_Inviters%之类的环境专属信息。如果这些信息散落在规则正文中难以共享发布到社区前必须逐一脱敏难以维护环境变化如新增网段需要同步修改大量规则复用成本高同一组环境信息在不同规则里被重复硬编码。README 明确指出占位符机制正是为了keep private rules clean and make any environment-specific information reusable to the community也就是说规则作者只需选用一种占位符转换placeholder transformation后续使用该规则的人就能直接调整占位符的值来适配自己的环境而无需改动检测逻辑本身。六种 pySigma 占位符转换占位符需要映射到 pySigma 提供的转换transformations才能被正确处理。README 给出了完整清单占位符转换适用场景仓库实例command_placeholders命令行、可执行文件路径等proc_creation_win_userdomain_variable_enumeration.yml 中匹配%userdomain%环境变量file_placeholders文件路径、目录、扩展名适用于文件创建/访问类规则http_placeholdersURL、URI、请求头等 HTTP 字段适用于代理日志、Web 日志类规则query_expression_placeholders查询表达式整体替换适用于需要整体替换查询语句的场景value_placeholders标量值如 IP、账号名、事件值如%Legitimate_Countries%、%Administrators%wildcard_placeholders含通配符的字符串如%internal_domains%这类可展开为多域列表的值完整且持续更新的转换清单始终以 pySigma 仓库的 sigma/processing/transformations/init.py对应 pySigma 的 transformations 模块为准实际使用时请以你安装的 pySigma 版本为准。核心语法|expand修饰符与占位符书写占位符规则的检测逻辑与普通规则几乎一致唯一的区别是需要环境化的字段使用字段|expand: %占位符%语法。|expand告诉转换器这个值不是字面量而是需要在处理阶段展开的环境变量。占位符的命名惯例是左右各一个百分号包裹、使用大驼峰命名例如%ServerSystems%%DomainControllers%%Workstations%%Legitimate_Countries%%Legitimate_IP_Ranges%%internal_domains%%Approved_Inviters%%Administrators%%legtimate_identifiers%%legit_ips%实例一Windows 交互式登录监控值列表展开win_security_susp_interactive_logons.yml 是一则典型的值占位符规则它检测对服务器系统的交互式控制台登录EventID 528/529/4624/4625 LogonType 2而哪些机器算服务器/域控/工作站由环境决定detection: selection: EventID: - 528 - 529 - 4624 - 4625 LogonType: 2 ComputerName|expand: - %ServerSystems% - %DomainControllers% filter_main_advapi: LogonProcessName: Advapi ComputerName|expand: %Workstations% condition: selection and not 1 of filter_main_*注意这里ComputerName|expand既可以接收单个占位符字符串也可以接收一个占位符列表——多个列表项最终会被展开合并为一个集合。这种写法让规则作者无需关心使用者到底有几个服务器网段。实例二AWS 控制台登录地理监控双占位符过滤aws_cloudtrail_console_login_success_from_susp_locations.yml 展示了一种更常见的模式——命中可疑 排除合法双过滤器detection: selection: eventName: ConsoleLogin responseElements.ConsoleLogin: Success filter_main_country: src_country|expand: %Legitimate_Countries% # Add legitimate countries here filter_main_ip: src_ip|expand: %Legitimate_IP_Ranges% # Add legitimate src_ip ranges here condition: selection and not 1 of filter_main_*检测主体ConsoleLogin 成功是通用的只有合法国家和合法 IP 段是占位符。新用户部署时只需把自家办公地国家代码和出口 IP 段填入占位符即可检测逻辑零改动。实例三证书服务出站连接监控带回环过滤的混合写法net_connection_win_certsvc_outbound_smb_ldap.yml 展示了占位符与硬编码过滤器共存的结构filter_main_loopback硬编码排除回环地址filter_main_known_legit_ips用%legit_ips%排除 CA 服务器已知合法的对端 IP如其他域控、LDAP 服务器detection: selection: Image|endswith: \certsrv.exe Initiated: true DestinationPort: - 389 - 445 filter_main_loopback: DestinationIp: - 127.0.0.1 - ::1 - 0:0:0:0:0:0:0:1 filter_main_known_legit_ips: DestinationIp|expand: %legit_ips% # Including known legitimate IPs for the CA server (e.g. other DCs, LDAP servers, etc.) condition: selection and not 1 of filter_main_*这则规则用于捕捉 certsrv.exe 主动向非域控主机发起 445/389 出站连接的异常行为如 CVE-2026-54121 Certighost 所利用的 CA chase fallback 路径检测价值很高但误报控制完全依赖%legit_ips%的准确性。实例四域控机器账户登录监控命名规范win_security_dc_machine_account_logon_non_dc_ip.yml 等三则 DC 相关规则均依赖%DomainControllers%占位符检测域控机器账户从非域控 IP 登录/获取 TGT/TGS。这类规则对占位符值的依赖度极高——占位符填错整条规则要么漏报要么全量误报是理解占位符价值的最佳反面教材。占位符的使用与部署流程从 rules-placeholder 目录中 23 个规则实例可以总结出标准的落地步骤1. 识别环境相关字段。逐字段自问这个值在所有企业都一样吗 一样则硬编码不一样则占位符化。仓库中的高频占位符包括%DomainControllers%、%ServerSystems%、%Workstations%Windows 主机分组见 win_security_susp_interactive_logons.yml%Administrators%特权账户组见 win_security_modification_of_msds_dmsa_link_attribute.yml%internal_domains%内网域名列表见 dns_query_win_wscript_cscript_resolution.yml%Legitimate_Countries%、%Legitimate_IP_Ranges%云环境地理基线见 azure_ad_authentications_from_countries_you_do_not_operate_out_of.yml 与 aws_cloudtrail_console_login_success_from_susp_locations.yml%Approved_Inviters%受邀人白名单见 azure_ad_guest_users_invited_to_tenant_by_non_approved_inviters.yml%legtimate_identifiers%可信身份标识见 okta_session_impersonation_granted.yml%userdomain%环境变量字符串见 proc_creation_win_userdomain_variable_enumeration.yml。2. 选择合适的转换类型。对照上文六种转换路径类用command_placeholders/file_placeholdersURL 类用http_placeholders标量值用value_placeholders带通配的域名/路径用wildcard_placeholders。3. 用|expand标记占位符字段。按实例一至四的写法组织selection与filter_main_*注意占位符规则在 condition 中通常要求排除过滤为主即selection and not 1 of filter_main_*。4. 通过 pySigma 转换后部署。占位符只有在经过对应 pySigma transformation 处理后才会被真实值替换因此生产链路必须包含转换步骤未配置转换器时%xxx%会被当作字面量参与匹配导致规则不可用。最佳实践与注意事项结合仓库规则的实际写法可以提炼出以下实践要点过滤器命名规范仓库统一采用filter_main_*主过滤与filter_optional_*可选过滤前缀并用not 1 of/not 1 of filter_optional_*语法区分。占位符过滤器应放入filter_main_*因为它们是规则正确性的一部分filter_optional_*留给可选的已知信任域参见 dns_query_win_wscript_cscript_resolution.yml 中的filter_optional_trusted_domains。占位符内联注释仓库规则几乎都为每个占位符附上了注释说明应填入什么值例如# Add legitimate countries here、# Your trusted domain goes here。这既是给使用者的提示也是良好的文档习惯。默认值留空而非硬编码猜测占位符规则刻意不做默认值假设——作者不知道你的域控列表胡乱猜测反而有害。部署时务必把全部%...%值替换完再做验证。警惕占位符即规则的失效模式像 net_connection_win_certsvc_outbound_smb_ldap.yml 这类高价值但高环境依赖的规则误报率完全由占位符质量决定建议先在模拟环境用历史日志回放验证。参考资料占位符的权威规范定义见 Sigma 规范文档中的 Placeholders 章节Sigma Specification - PlaceholdersSigma 官方博客《Building Flexible Detections with Sigma Placeholders》系统阐述了占位符的设计思路与使用方式pySigma 仓库的 sigma/processing/transformations/init.py 维护着完整的最新转换清单仓库内全部可参考的占位符规则实例位于 rules-placeholder 目录覆盖 cloudAWS/Azure、identityOkta、windowsbuiltin/dns_query/network_connection/process_creation多个产品线是学习和二次开发的最佳语料。【免费下载链接】sigmaMain Sigma Rule Repository项目地址: https://gitcode.com/GitHub_Trending/si/sigma创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
📌 标签:
工业官网
设计趋势
AI 建站
SEO
获取完整报告 →
RELATED ARTICLES
推荐阅读
2026/9/15 17:29:18
用 Odin 主进程驱动 WGPU 原生化沙盒:Electrobun Odin Alchemy Sandbox 模板深度解析
2026/9/15 17:29:18
STM32H7R CAN FD寄存器级配置与采样点精确计算
2026/9/15 17:29:18
Odin 语言 X.509 证书链验证一致性测试:x509-limbo 差分测试套件解析
2026/9/15 18:14:28
pytest 8.3.4 版本解析:Bug 修复发布详解、破坏性变更预警与升级指引
2026/9/15 18:14:28
WiFi硬件调试实战:频偏校准与天线匹配全流程详解
2026/9/15 18:14:28
二维渗漏承压含水层泊松方程求解:MATLAB有限差分代码实现
2026/9/15 18:14:28
Matlab OFDM信道模拟:从多径衰落到误码率仿真的完整实践
2026/9/15 18:14:28
阿里云 Terraform Provider 6.22.0 版本全览:新增资源、Tag Policy 合规强制与关键增强
2026/9/15 18:09:27
aws-cli 实战:使用 `aws ce get-tags` 检索成本分配标签键与值
2026/9/15 0:01:49
2026年NVMe SSD装机避坑指南:PCIe 4.0/5.0、NVMe启动与M.2 Key兼容性实测
2026/9/15 0:01:49
Flutter与OpenHarmony物理动画实现指南
2026/9/15 0:01:49
vscode插件开发之语言服务器,这次让用 TaoToken 接入的 Codex 排查 LSP 服务端连接
2026/9/15 13:08:25
拯救者Y7000黑屏故障排查与维修实战指南
2026/9/14 2:50:57
AI SDK Harness 依赖更新指南:掌握 harness 包 SDK 依赖的升级、桥接同步与一致性校验
2026/9/14 11:25:37
Refine v5 Ant Design NumberField 组件实战:基于 Intl 的本地化数字格式化