按照数据—信息—知识逐层提炼的模式,基于记忆的APT攻击检测系统结构分为三级,系统整体架构图如下:
基于记忆的检测系统架构图
存储层
存储层完成对从互联网直接获取的实时数据流的预处理和存储管理工作。对实时数据流首先进行传输层的会话还原,消除因网络条件造成的乱序、重传、延迟等对后续分析的干扰;然后进行应用协议识别,判断数据流上所承载的具体应用;最终从非结构化的数据流中抽取结构化的元数据信息,以便后续的各类统计和关联分析。
预处理后的原始数据流,既包括完整的全流量数据,又包括提取后的元数据。考虑到海量数据的存储压力,可对不同类型的数据采取灵活的管理策略:
(1) 对于全流量数据,进行窗口长度为星期级的存储。由于全流量数据会占用海量存储空间,不宜进行长期存储,但全流量数据对于后续的回溯分析又是必须的。为此采用折中的存储策略:只存储最近几周(例如1-2周)的全流量信息,对于超期的数据进行降解处理。
(2) 对于元数据,进行年度级的存储。提取后的元数据只包含应用层会话的关键信息,其数据量大约相当于全流量信息的5%,这类信息对后续的统计、关联和数据挖掘具有重要的作用,且占用的空间在可接受范围内,因此在平台中进行长期存储。
分析层
分析层完成从原始流量数据中产生独立报警信息的工作,主要方法包括:
(1) 对于能引起网络流量显著异常的攻击,如DDoS、扫描、蠕虫传播等,可通过异常流量检测和统计分析的方式进行识别。通过建立全面、完整的安全基准指标体系,可以快速识别网络流量异常;通过统计分析,可准确定位异常的位置和原因。
(2) 对于不引起流量异常的未知攻击,可通过可疑行为建模的方式进行识别。例如对于尚未提取特征的木马,其连接控制端的时候可能会存在未知的加密传输、疑似心跳信号的间歇性连接、恶意域名访问、异常的上下行流量比等行为,通过对这些可疑行为进行关联,就有可能检测到木马连接行为。
(3) 对于通过异常检测模块产生的各类报警,由于缺乏攻击签名信息进行验证,其准确度往往低于基于特征匹配的误用检测。为此还需要结合原始报文,对报警的有效性进一步确认。通过报文所承载的应用层对象做细粒度的协议解析和还原,可辅助分析人员判定会话内容是否包含攻击数据,从而进一步产生精确报警。
展示层
展示层完成从孤立的攻击报警信息生成完整的攻击场景的关联工作,并提供可视化分析前端工具,帮助分析人员从存储的海量历史数据中获取知识。对于攻击场景关联,常见的方法是基于关联规则匹配攻击场景。由于APT攻击手段的复杂性,在实际环境中往往会因为报警事件的缺失导致无法进行完整攻击路径图的匹配,进而导致建立APT场景失败,为此要解决基于不完整攻击路径的攻击场景匹配问题。对于多维数据可视化分析,要提供给分析人员一套能从地址、端口、协议类型等维度对数据进行统计展示的工具,并支持按照不同的粒度对数据进行钻取,方便分析人员在大数据中定位可疑行为。