重要提示: 本README及其他文档尚未更新以反映最新测试版(因发生了大量改动)。所有内容将在稳定版发布时更新(参见下一个版本路线图)。欢迎自行运行测试版,如有问题请提出。

是什么
EDR(端点检测与响应),其工件采集由检测驱动。检测引擎基于之前的项目Gene构建,专门用于将Windows事件与用户定义的规则进行匹配。
“由检测驱动的工件采集”是什么意思?
这意味着告警可以直接触发一些工件采集(文件、注册表、进程内存)。这样你可以确保在能够采集工件的尽早时刻(近乎实时)就进行采集。
所有工作均为业余时间完成,希望能帮助到其他人,希望你喜欢。除非获得资金支持以进一步开发此项目,否则我将尽最大努力继续开发。我会尽力及时修复问题并提供更新。欢迎提出改进项目并保持其活力的issue。
为什么
- 向社区提供开源EDR
- 使检测规则透明化,让分析师理解规则触发原因
- 通过灵活的规则引擎提供强大的检测原语
- 通过大幅缩短检测与工件采集之间的时间,优化事件响应流程
如何工作
注意: EDR代理可独立运行(无需连接至EDR管理端)。
需要了解的信息
- 仅适用于Windows系统,使用ETW日志
- 依赖Sysmon处理重活(内核组件)
- 强大且可定制的检测引擎(由gene驱动)
- 由事件响应者构建,面向所有事件响应者,旨在减轻他们的工作负担
- 低占用 -> 无进程注入
- 可与任何杀毒软件共存(建议与MS Defender一起运行)
- 专为高吞吐量设计。每个端点每天可轻松丰富和分析多达1500万事件,且无性能影响。SIEM很难做到这一点。
- 易于与其他工具集成(Splunk、ELK、MISP等)
- 集成ATT&CK框架
- 拥有强大的管理API,便于管理大规模部署(暂无GUI)
安装
前提条件
- 安装Sysmon
- 配置Sysmon
- 优化的Sysmon配置见此处
- 必须记录所有ProcessCreate和ProcessTerminate事件
- 记下Sysmon二进制文件的路径,后续需要用到
注意: 事件过滤可100%通过Gene规则完成,因此无需创建复杂的Sysmon配置。
安装前建议
为充分利用WHIDS,建议改善日志策略。
- 启用PowerShell模块日志
- 审计服务创建:gpedit.msc ->
计算机配置\Windows设置\安全设置\高级审核策略配置\系统审核策略\系统\审核安全系统扩展 -> 启用
- 启用文件系统审计。Sysmon仅在新创建文件时提供FileCreate事件。如需记录其他类型访问(读取、写入等),需启用文件系统审计。
- gpedit.msc ->
计算机配置\Windows设置\安全设置\高级审核策略配置\对象访问\审核文件系统 -> 启用
- 右键任一文件夹 -> 属性 -> 安全 -> 高级 -> 审核 -> 添加
选择主体(在此输入要审计的用户/组名称)。若要记录所有用户访问,请填Everyone组。
应用于用于选择从所选文件夹开始的审计策略范围
基本权限选择要触发日志的访问类型
- 确认
- 文件系统审核日志将出现在
安全日志通道中
- 如需在端点运行杀毒软件,请保留Microsoft Defender,首先因为它是不错的AV,其次它会将告警记录在EDR监控的专用日志通道
Microsoft-Windows-Windows Defender/Operational中。
EDR端点代理(Whids.exe)
本节介绍在端点上安装代理的方法。
- 下载并解压最新的WHIDS发行版 https://github.com/0xrawsec/whids/releases
- 以管理员身份运行
manage.bat
- 选择相应选项启动安装
- 确认文件已在安装目录下创建
- 在
manage.bat中选择相应选项编辑配置文件,或使用文本编辑器编辑
- 若连接至管理端,则跳过此步(规则将自动更新)。如果规则目录为空,工具将无用,请确保其中包含一些gene规则。WHIDS附带一些规则,安装时会询问是否安装。如需最新规则,可从此处获取(取编译版)
- 在
manage.bat中选择相应选项启动服务,或直接重启(推荐选项,否则部分丰富字段将不完整,导致误报)
- 若配置了管理端,请记得运行它以接收告警和转储
注意: 安装时,Sysmon服务将被设置为依赖WHIDS服务,以确保EDR在Sysmon开始生成事件之前运行。
EDR管理端
EDR管理端可安装于多个平台,提供Windows、Linux和Darwin的预编译二进制文件。
- 如有需要,创建TLS证书用于HTTPS连接
- 创建配置文件(有命令行参数可生成基本配置)
- 运行二进制文件
配置示例
请访问 doc/configuration.md
更多文档
已知问题
- 从映射为网络驱动器的网络共享运行时可能无法正常工作(此情况会阻止whids识别自身,从而产生噪音)。例如:若
\\vbox\test挂载为Z:盘,运行Z:\whids.exe将无法工作,而运行\\vbox\test\whids.exe则可以。
下一个版本路线图
变更日志
v1.7
- 新增管理HTTP API,具有以下功能:
- 管理端点(列表、创建、删除)
- 获取管理端的基本统计信息
- 在端点上执行命令并获取结果
- 可在执行前放置文件,用于执行端点上不存在的二进制/脚本。执行后删除放置的文件。
- 可检索文件(命令执行后),用于获取命令结果
- 从端点收集文件用于取证
- 隔离/解除隔离端点:限制除与管理端通信外的所有网络流量
- 查询端点日志
- 查询端点告警
- 按时间戳透视,检索该时间点前后的日志/告警
- 访问端点报告
- 评分(相对于每个环境),用于排序端点并找出行为异常的端点
- 给定时间范围内的告警/TTP
- 管理规则(列表、创建、更新、保存、删除)
- 集成Sysmon v12和v13
- 集成ClipboardData事件
- 将剪贴板数据内容放入事件中,以便基于剪贴板内容创建规则
- 集成ProcessTampering事件
- 实现客户端证书固定,增强端点与管理服务器之间通信通道的安全性
- 日志过滤能力,允许收集上下文相关事件。通过创建Gene过滤规则实现日志过滤(参见Gene文档)
- 配置文件采用TOML格式,更易读
- 更好的安装目录保护
相关项目
赞助商

Github:https://github.com/tines 网站:https://www.tines.com/ Twitter:@tines_io