平台数据流转
原始日志、异常记录、原始告警,本质都是 JSON 格式字符串,每条日志 / 告警都由一个个字段组成。

原始日志包括各种类型的网络设备或安全设备日志,比如WAF告警、防火墙放行阻断日志、全流量网络连接日志、EDR告警/审计日志等。这些设备日志发送到平台后,平台会基于资产信息和网络设备信息对设备日志加上一些字段,比如来源/目的资产id、来源/目的安全域、数据流向方向等。


模型从原始日志中检测到安全威胁后,就会将其以告警的形式输出。每条告警都会包含告警名称、告警类型、安全告警威胁等级、告警描述等关键字段,用以展示基础告警信息。

异常记录也是有模型输出,其主要用于安全告警的二次分析,包括关联、统计等。异常记录了包含的内容与告警相同,只是存储位置不同。

模型编写
模型结构
基本信息:ID、名称、标签、描述等基本信息

检测数据源:配置哪些数据需要经过该模型检测
基于不同模型类型有不同的可选项,包括原始日志、异常记录、原始告警、统计指标等
数据类型:可通过选择数据类型快速筛选出特定安全设备的特定类型日志。

检测条件:配置模型的告警条件
使用AiQL语言,不详细赘述。

输出内容:配置模型触发后的输出内容
不是很重要,不详细赘述。

四大模型
规则模型
提取规则特征
数据源:原始日志、异常记录
告警条件:满足过滤条件即产生告警
转发模型也属于规则模型
xxxx项目发现平台无告警产生但是存在原始日志,要求解决存在问题从原始日志中转出原始告警和异常记录
做转发模型的时候主要关注,原始日志产生的设备,该设备是否存在ruleType(探针告警类型)、Category(告警类型)、SubCategory(告警子类型)的相关字段来定义告警类型,当不存在相关字段的时候需要在日志字段中寻找特征自定义告警类型。
示例这里根据severity(威胁等级)来判断告警,比较粗暴简单。

常规的规则模型依靠特征,没啥好说的,了解攻击特征就能够将其转化为规则模型。

关联模型
数据源:原始日志、异常记录
告警条件:满足过滤条件的原始日志/异常记录同时满足关联条件则告警
四大关联时序

示例关联,flower_by
关联逻辑:当出现Shiro反序列化漏洞的告警之后出现TCP外连情况,并且外连请求的时候发现请求体中出现反序列化攻击的attacker IP、端口,那么可以判断Shiro反序列化攻击成功并且攻击者通过该漏洞进行了外连。

示例关联,and


示例关联,repeat_until

统计模型
外部统计:爆破、利用尝试等,攻击定义时根据分析经验设定阈值。
内部统计:账号异常登录等,在实际的业务环境设定的行为标准,作为异常分类决策阈值。
数据源:统计指标、原始日志、原始告警、异常记录
告警条件:满足统计条件就产生告警
将经过过滤条件筛选出的数据,进行分组聚合,将符合过滤条件的进行告警

情报模型
数据源:原始日志、异常记录
告警条件:满足过滤条件的每组原始日志/异常记录的指定字段与威胁情报库中的IOC匹配则产生告警。

项目建模思路
明确需求
明确想要实现什么,以及能否通过模型实现
模型能做什么?
规则:将满足查询条件的日志变成告警,比如转发模型将安全日志->安全告警
关联:将一定时间窗口内的多条具有相关性的日志变成告警,比如webshell上传告警日志关联webshell访问告警日志
统计:将一定时间窗口内满足统计条件的日志变成告警,比如短时间内大量登录失败日志产生暴力破解告警
情报:选择日志中的某个字段,与威胁情报库中的情报进行匹配,对匹配上的日志变成告警,比如http访问的日志来源IP与恶意IP情报进行匹配产生可以攻击告警。
告警抑制、输出活动列表等
模型做不了什么?
无法历史回溯:如果想要建立一个本地情报库,当情报库中增加一条IOC情报的时候,就查找一遍过去30天是否有匹配这条IOC的日志。由于模型是基于实时流量计算引擎做检测的,因此无法实现这种场景,需要代码实现。
无法自动生成历史基线将其作为指标进行检测
无法判断同一条日志的A字段与B字段相等
初步设计
基于现场数据源情况初步设计
现有的检测逻辑->检测现场数据源要求是否符合
基于策略知识库、以往的模型实现等,找到能够满足检测能力需求的检测逻辑,并判断该检测逻辑所需的数据源在客户现场是否满足
梳理现场有哪些数据源,即有哪些设备类型以及每种设备能产生什么告警和审计日志。基于现有的数据源,设计能够满足检测需求的检测逻辑
模型落地
基于特定场景、特定需求进行模型编写即可
可能会出现日志解析调整问题,安全设备上报的数据里面有一个关键字段,但包含在日志描述里面,没有单独解析出来,这时候需要在SOC测调整日志解析规则
模型调优
通过构造测试日志或者搭建靶场环境进行测试触发模型
判断是否正常告警(是否存在漏报)
判断是否存在非预期告警(是否存在误报)
判断模型告警的输出内容是否有误
红队终端防护项目建设
终端防护主要从内网攻击的几个模块继续构建
权限维持
权限提升
横向移动
命令与控制
凭证访问
痕迹清理
Windows块
Linux块
最佳案例
主机上cobalt strike工具执行pass-the-hash攻击成功











评论