高级威胁检测技术 - (1)
高级威胁检测技术,首先需要组织/企业具备持续性防御的能力,所谓持续性的防御,不是说买了一堆安全设备,配置完,一次性投入就可以了。还需要投入大量的人力物力等资源。
通常可持续化发展的防御手段分为如下几个步骤:
预防阶段 → 检测阶段 → 分类阶段 → 调查阶段 → 响应阶段
持续化防御
- 预防阶段
- 如果可能的话,可以提前预防恶意软件运行或者恶意活动的发生
- 需要配置好能连续运行的产品,设备,控制好与防御相关的操作
- 防火墙
- 杀软
- IDS/IPS
- DLP
- Email/Spam/Network过滤
- 包括自动化的,可被消费的静态的威胁指标(IOCs)或者脆弱性提示的威胁指标(漏洞预警等)
- 相关的产品或设备可能会产生告警,可用于提供检测阶段的上下文
- 我们应该对组织/企业的网络系统拥有控制权,但也应该知道或预期部署在网络系统上的这些设备或产品会失败或被绕过
- 检测阶段
- 对企业范围内的网络系统相关的集中收集的数据进行分析
- 应该专注于检测异常/恶意行为(技术)而不是检测特定的方法(工具),从而实现一定程度的健壮性
- 假设 → 分析 → 验证 → 结论
- 例如检测访问lsass内存的进程而不是检测"mimikatz"
- 减少数据中的噪音从而产生真正有效的告警,以便进一步的进行威胁分类
- 分类阶段
- 威胁分类阶段需要回答问题:这是恶意的还是良性的
- 消费预防阶段和检测阶段中所产生的告警
- 也可以使用其他数据来源:内部的或外部的(威胁情报)
- 结论:良性,可疑,恶意
- 良性 - 已知是好的 → 调整检测规则,避免告警疲惫
- 可疑 - 不知道是不是好坏 → 进入调查阶段
- 恶意 - 已知是恶意的 → 进行响应阶段
- 调查阶段
- 实时响应阶段
- 收集无法进行集中化的数据或难以进行大规模收集的数据
- 内存数据
- 恶意软件
- 网络数据
- 文件系统收集和分析
- 目标是确认当前调查的事件是否是安全事件,以及是否需要进行响应
- 响应阶段
- 确定事件范围
- 什么类别的事件
- 涉及多少系统
- 对组织/企业的影响
- 采取行动,从组织/企业的网络系统中根除威胁
- 以改进为目的的事后分解
- 该事件如何进行早期的检测和预防
- 如何改善对该类事件的响应时间
- 确定事件范围
通常又被分类为威胁狩猎和应急响应:
检测和分类阶段 → 威胁狩猎
调查和响应阶段 → 应急响应
威胁狩猎
什么是威胁狩猎?
- 基于目标的防御策略
- 主动调查以确定环境中是否发生了可能会或可能不会规避现有安全控制或防御措施的特定的恶意活动
- 有针对性的,从而可以实现特定的目标
- 接受高误报的机会来尝试发现可疑的活动
- 根植于假设失陷的心态
- 主要关心后渗透阶段
- 很多现有的防御专注于防御或检测初始阶段
- 防火墙
- 杀软
- IDS/IPS
- 很多现有的防御专注于防御或检测初始阶段
- 在对手完成目标之前识别或阻止他们
什么是假设失陷(Assume Breach)?
- 从根本上来说,如果有人想进来,那么他们就能进来。接受这种假设
- 告诉客户
- 一:你在战斗,不管你认为是不是
- 二:你几乎肯定已经失陷了
什么是后渗透?
- 后渗透是杀伤链中的一个阶段,通常处于渗透和数据渗出中间
- 包括:
- 执行
- 持久化
- 提权
- 防御规避
- 凭证访问
- 信息发现
- 横向移动
- 信息收集
- 命令控制
- 数据渗出
威胁狩猎不是什么?
- 威胁狩猎不能替代其他防御性安全工具或方法
- 应该补足组织内部常用的网络安全产品(想想纵深防御)
- 威胁狩猎不是事件响应
- 威胁狩猎不是要购买并添加到设备栈的另一个安全设备
- 虽然威胁狩猎可能会利用其他技术,但它需要大量的人员和流程
威胁狩猎成熟度模型 - Hunt Maturity Model(HMM)
)
威胁狩猎成熟度模型 - 组件
- 为狩猎收集的数据的质量和数量
- 向分析师提供的数据越多,他们就可以做到的越多
- 提供的工具可以访问和分析数据
- 塑造可能的狩猎风格
- 决定可能的狩猎技术
- 分析师的技能
- 允许分析师将数据转化为检测
HMM0 - Initial
- 主要依靠自动告警的方案
- 杀软
- IDS
- 供应商解决方案
- 可能包括威胁情报
- 集中在解决告警而不是新的检测上
- 从IT系统中收集的数据很少
- 积极寻找威胁的能力有限
- HMM0的组织不被认为具有狩猎能力
HMM1 - Minimal
- 主要依靠自动告警的方案
- 杀软
- IDS
- 供应商解决方案
- 一定程度的常规数据收集以及将数据集中到SIEM
- 分析师能够从新威胁中提取指标并搜索此数据
- 渴望进入情报驱动的检测
- 检测决策主要基于可用的威胁情报
- 跟踪来自开源的或内部(交换或订阅)的最新威胁报告
- HMM1是第一个具有威胁狩猎能力的级别
HMM2 - Procedural
- 能够应用他人开发的狩猎流程
- 可能会有一些小的变化
- 无法创建自己的流程
- 专注于单一的攻击者活动
- 定期收集大量数据并集中起来
- 数据可能没有标准化或相关文档
- 通常用于简单的低出现频率分析
- 无法应用其他分析技术
- 通常大多数具有威胁狩猎能力的组织在这一级别
HMM3 - Innovative
- 拥有一支了解众多分析技术的猎人团队
- 基本统计
- 关联数据分析
- 数据可视化
- 有能力创建和发布自己的狩猎流程
- 检测/过程是可重复的并记录下来
- 保持高度的常规数据收集
- 随着狩猎流程的增长,可能会遇到可扩展性的问题
HMM4 - Leading
- 与HMM3基本相同,但增加了自动化检测
- 在添加到生产环境之前对检测进行审查
- 根据标准流程记录检测
- 自动化用于减轻分析师重复运行相同流程的负担
- 依然保持高度的数据收集
- 数据集中可用于分析
- 数据类型被文档化
- 对于跨数据的传感器数据进行标准化
- 数据类型映射到数据源,从而映射到技术
威胁猎人应该是什么样子的?
- 期望的威胁狩猎者 - 背景
- 寻求不同挑战的经验丰富的SOC分析师
- 前红队
- 模式识别的能力
- 解决问题的能力
- 沟通能力
- 恶意软件分析能力
- 数据分析和取证的能力
- 期望的威胁狩猎者 - 技能
- 对网络安全概念的深刻理解(基础)
- 对合规或安全运营的深刻理解(基础)
- 应急处理或应急响应的经验
- 脚本编程能力
- 对操作系统的深入理解
- SIEM的经验(Splunk,ELK)
- 对攻击技术的理解
- 二进制分析
- 取证响应能力
攻击技术
- 痛苦金字塔
-
什么是TTPs
- Tactics - 战术:为实现某些目标对资源的使用和有序的安排
- Techniques - 技术:用于执行任务,功能或一次行动中的非常规的方式或方法
- Procedures - 程序:规定如何执行特定任务的标准,详细步骤
-
ATT&CK
-
Tactics - 战术代表执行ATT&CK技术的原因
-
这是对手的战术目标
- Initial Access 初始访问
- Execution 执行
- Persistence 持久化
- Privilege Escalation 提权
- Defense Evasion 防御规避
- Credential Access 凭证访问
- Discovery 信息发现
- Lateral Movement 横向移动
- Collection 数据/信息收集
- Exfiltration 数据渗出
- Command and Control 命令与控制
-
Techniques - 技术表示对手如何通过执行某些动作来实现其战术目标
- 技术元数据:
- 系统要求
- 权限要求
- 有效的权限(提权阶段)
- 数据源(建议收集用于检测的数据)
- 是否可以远程执行
- 技术元数据:
- Procedures - 每种技术的实际执行
- 来自公共威胁报告或分析的参考
-
-
为什么使用ATT&CK?
- 跟踪绝大多数公共的攻击技术
- 专注于检测行为,而不是特定的工具
- 计划未来的狩猎活动
- 确定缺乏检测覆盖的地方
- 对正在收集和分析的数据进行分类
数据收集
数据源
- 由传感器或日志系统收集的信息来源,可用于收集与识别正在执行的动作、动作顺序或对手的这些动作的结果相关的信息
- ATT&CK数据源:例如:
- 文件监控
- 进程命令行
- 进程监控
- 内核驱动
- 进程的网络使用情况
- 二进制文件元数据
- DLL监控
- 加载的DLL
- Windows事件日志
- Windows注册表
- 用户界面
- API监控
- Powershell日志
- 网络流
- 网络协议分析
- Web代理
- 流量包
- 访问令牌
- 服务等
数据传感器
- 能够提供高精度和准确度原始数据的代理或服务
- 根据某种类型的输入提供输出的设备
- 能够检测或衡量主机上多个不同来源的信息的代理或服务,这些信息可以实时捕获
基于流量
- 网络数据:从网络通信收集的数据
- 通常是元数据或出站连接的内容
- 东西向(内部客户端到客户端)流量是一种有价值(横向移动的数据源)但通常不会被收集的数据源
- 例如:
- 防火墙日志
- 代理日志
- IDS/IPS日志
- 网络流数据
- Zeek
- 捕获的数据包Packet
基于主机
- 主机数据:从目标网络系统中的端点收集的数据
- Windows工作机,服务器,macOS工作机,Linux服务器等
- 例如:
- Windows事件日志
- Sysmon日志
- OSQuery
- EDR日志等
- 数据源:
- 服务,进程,命令行,加载的模块,DLL等
- 文件,注册表,配置设置
- 任务计划,cron job(*nix),Launch Agent(macOS)
- 内存数据等
Windows事件日志
- 在现代版本的 Windows 中,Windows 事件来自许多日志提供程序,包括默认的系统、安全、应用程序和防火墙日志
- 日志提供程序可以有多个通道:操作、分析、跟踪、调试等
- 有 5 种不同的事件类型:错误、警告、信息、审计成功和审计失败
- 例如:
- Microsoft-Windows-Windows Defender/Operational源是 Windows Defender 日志的操作通道
Sysmon
- Windows提供的可进行系统活动监视的工具,将活动日志记录到Windows事件日志中
- 可以设置规则来动态的过滤或排除某些事件
- 可以使用Windows日志收集或SIEM代理传输数据
- Sysmon事件ID:
- 1:进程创建
- 2:文件创建时间
- 3:网络连接
- 4:sysmon服务状态改变
- 5:进程终止
- 6:驱动加载
- 7:映像加载
- 8:创建远程线程
- 9:Raw NTFS访问
- 10:进程访问
- 11:文件创建
- 12,13,14:注册表相关
- 15:文件创建流哈希
- 17,18:管道相关
- 19,20,21:WMI相关
- 优势:
- 监控API调用
- 可通过XML动态调整规则集
- 提供映像或进程的HASH
- 使用驱动模式可以获取到更丰富的信息
- 使用sysmon进行检测攻击者的公共资源丰富
- 劣势:
- 没有预防措施,必须根据数据采取行动
- 使用Windows事件日志,日志可以被破坏,停止或清除
- 没有内置的方法来对所有主机进行配置
- 具有管理员权限可以停止服务
- 攻击者可以修改规则集(排除规则优先于检测规则,所以可能丢失关键数据)
Windows审计策略
- Windows审计策略定义了将在 Windows 安全事件日志中找到的事件类型
- 有9个大类和50个子类
- 子类提供更精细的控制
- 任何定义的顶级策略都将覆盖子类策略
- secpol.msc 或 auditpol
- 九个大类:
- Audit Account Logon Events 账户登录
- 审核凭据验证
- 审核Kerberos身份验证服务
- 审核Kerberos服务票证操作
- 审核其他账户登录事件
- Audit Logon Events 登录/注销
- 审核账户锁定
- 审核用户/设备声明审核组成员身份
- 审核IPsec扩展模式
- 审核IPsec主模式
- 审核IPsec快速模式
- 审核注销
- 审核登录
- 审核网络策略服务器
- 审核其他登录/注销事件
- 审核特殊登录
- Audit Process Tracking 详细跟踪
- 审核DPAPI活动
- 审核PNP活动
- 审核进程创建
- 审核进程终止
- 审核RPC事件
- 审核令牌权限已调整
- Audit Object Access 对象访问
- 审核已生成应用程序
- 审核证书服务
- 审核详细的文件共享
- 审核文件共享
- 审核文件系统
- 审核筛选平台连接
- 审核筛选平台数据包丢弃
- 审核句柄操作
- 审核内核对象
- 审核其他对象访问事件
- 审核注册表
- 审核可移动存储
- 审核SAM
- 审核中心访问策略暂存
- Audit Account Management 账户管理
- 审核应用程序组管理
- 审核计算机账户管理
- 审核通讯组管理
- 审核其他账户管理事件
- 审核安全组管理
- 审核用户账户管理
- Audit Directory Services Management DS访问
- 审核详细的目录服务复制
- 审核目录服务访问
- 审核目录服务更改
- 审核目录服务复制
- Audit Privilege Use 特权使用
- 审核非敏感权限使用
- 审核其他权限使用事件
- 审核敏感权限使用
- Audit Policy Change 策略更改
- 审核审核策略更改
- 审核身份验证策略更改
- 审核授权策略更改
- 审核筛选平台策略更改
- 审核MPSSVC规则级别策略更改
- 审核其他策略更改事件
- Audit System Events 系统
- 审核IPsec驱动程序
- 审核其他系统事件
- 审核安全状态更改
- 审核安全系统扩展
- 审核系统完整性
- Audit Account Logon Events 账户登录
ETW - Event Tracing for Windows
- 事件日志如何接收?通过ETW
- 每个事件日志都从特定的ETW提供商接收事件
- 并非所有 ETW 事件都设计为由事件日志使用,因此需要专门的工具来捕获这些从检测角度来看可能有价值的事件
- 内核级跟踪
- 实时从日志文件中使用事件
- 无需重新启动即可动态启用/禁用
- 三个组件组成:
- Controllers - 控制器,开始/停止会话并启动供应商
- Logman工具,Windows资源监视器
- SilkETW,开源工具
- Providers - 供应商,负责生成事件
- Consumers - 消费者,负责消费事件
- Controllers - 控制器,开始/停止会话并启动供应商
数据管道
数据传送:
- 专门构建的轻量的数据收集器,可将数据从一个来源传送到另一个来源,通常是像SIEM这样的集中式数据源
- 每一个agent设计用来完成特定的任务
- 例如:
- Elastic:Winlogbeat,Filebeat,Metricbeat,Packetbeat,Auditbeat,Heartbeat,Functionbeat
- Windows事件转发
- Splunk Universal Forwarder
- syslog
- nxlog
数据存储:
- 数据存储是对所有收集的遥测数据或事件进行集中存储
- 数据存储方案应该提供一些可以从存储介质中进行数据查询的方法
- 例如:
- 关系型数据库
- Elasticsearch
- Splunk
- Amazon S3
数据分析界面:
- 数据分析界面是分析师进入存储、集中数据的界面
- 应允许分析师运行数据集的过滤,查询或数据关联等
- 有时这也是与数据存储相同的技术
- 例如:
- Kibana
- Splunk
- Jupyter Notebooks
数据栈:
传感器(Windows日志/Sysmon) → 传送器(Winlogbeat) → 存储器(Elasticsearch) → 分析界面(Kibana)