冬训营丨量时度力 —— 威胁检测引擎的优化与算力支撑

时间 :  2022年01月26日  来源:  安天


1.自主创新、与时俱进的安天威胁检测引擎

首先了解一下什么是威胁检测引擎。从技术定义来看,威胁检测引擎是依赖于一组可扩展维护的数据结构,能够对待检测对象进行威胁检测和处理的程序模块统称。从应用场景的角度来看,威胁检测引擎是网络安全产品的动力之源,能够被广泛应用于各种安全产品、安全设备、新兴场景以及信息化和数字经济产业中的各类场景中,相关的产品只要通过接口对其调用就可以获得威胁检测能力。

威胁检测引擎只是我们看到的冰山一角,威胁对抗依赖于先进科学的体系架构、大规模的分析维护团队、强大的计算能力以及长时间样本和经验的积累,因此威胁检测引擎的开发有着高技术难度、高开发量和高维护量的特点。这也是我们看到的全球数以千计的网络安全企业中拥有桌面独立反病毒产品的只有几十家,而能够提供独立威胁检测引擎的厂商屈指可数的原因。

安天拥有20多年的威胁对抗经验,自2000年起开始自主研发威胁检测引擎,具备了全格式识别和全向量拆解的深度威胁分析能力,包括了虚拟执行、智能启发、向量检测和深度学习等多种技术,打造了具备先进的威胁检测能力、超高的检测性能和全平台兼容能力的“威胁检测发动机”。2016年,为应对威胁的演变,特别是APT的出现,安天研发了下一代威胁检测引擎,把传统引擎从单纯的结果鉴定器升级为识别器、鉴定器、拆解器和分析器的复合体,进而支撑用户场景下的未知威胁检测、攻击技战术揭示、情报运营、态势感知和追踪溯源等工作。

持续创演的安天威胁检测引擎

2.威胁检测引擎对算力的依赖

威胁引擎检测的本质是依托模式识别和特征工程来实现的,从算力的角度看,引擎对资源的消耗主要分为三个阶段:第一个阶段是引擎初始化,引擎会加载预处理库、检测特征库到内存中,该阶段需要消耗相应的IO资源和内存资源。第二个阶段是检测分析阶段,引擎会对内存中的待检测对象进行检测分析计算,包括识别、预处理(解包、脱壳和拆分等)、分析、特征匹配、鉴定和处置等,该阶需要消耗相应的CPU资源和内存资源。第三个阶段是返回检测结果,引擎通过结果分析模块将检测结果输出给用户,在这个过程中,引擎则要依赖于IO资源。

从上述的威胁检测引擎的算力消耗模型可以看到:引擎对于待检测对象的预处理、分析和检测匹配工作上有大量的解密、解码、解压、虚拟执行、多种HASH算法以及多种匹配的算法,这些都对算力有着重度依赖。

然而,随着网络安全和信息化的高速发展,系统复杂性、资产规模和网络带宽在不断扩展。与此同时,威胁也在演进,威胁的规模和复杂度不断提升,导致了恶意代码数量不断膨胀以及检测规则的增加。在过去二十年间,恶意代码变种数增加了约600倍,安天引擎的检测规则同样增加了约500倍。恶意代码手段愈加复杂,利用了更多种类的文件格式,采用了更多的压缩、加密、变形混淆等技术手段达成逃避检测的目的,并结合多种技战术达成相关作业意图。从威胁对抗的角度,威胁检测引擎势必加强相关的能力,包括全格式识别拆解能力、深度的预处理能力和细粒度的检测能力等,这些变化都给引擎带来了更大的算力支撑需求。

3.安天威胁检测引擎在算力上的优化

在二十一年的网络威胁对抗历程中,安天主要聚焦在两个维度上的工作:一方面是努力达成用户的安全价值,实现有效对抗所面临的网络威胁;另一方面则是致力于在当前的硬件体系架构上充分发挥算力,达成高速检测的目的,适应高速检测场景。为了优化引擎的算力消耗,安天在软件和硬件上都进行了大量的思考与实践。

在软件层面的优化上,安天在研发威胁引擎时进行了检测方法、算法、特征以及指令等多维度的优化尝试。典型的案例是安天在2003年研发“探海威胁检测系统”时进行的优化工作。

在新技术维度上,为了减少I/O的消耗,安天在网络流量检测上使用了零拷贝的技术(大约是在2002年),进行并行协议栈和高速反病毒引擎的结合尝试,解决了内核空间到用户空间的内存访问多次读写的问题,从而减少了CPU的开销和内核态切换的开销,达到性能的大幅度提升的目的;

在检测方法维度上,安天对数据包级的检测对象进行包级别的动态检测,直接使用编码后的特征匹配。这种方式相对于传统的方法省去了解码的过程,可直接进行特征匹配,减少了解码运算对算力的需求,进一步减轻了网络设备还原处理的压力;

在检测算法维度上,安天在原有多模匹配算法的基础上自研改进开发了多种高速的多模匹配算法,提高了检测效率;

在特征维度上,安天通过特征筛选技术加速了网络场景下的检测效率,并推出了当时全球第一个具备千兆检测能力的网络安全设备。

关于软件层面优化的案例还有很多,包括用跳转表代替传统的指令逻辑、使用缓存机制减少预处理所需时间、使用状态机代替正则匹配和多模匹配代替单模匹配等一系列的工程化实现,然而这些优化只能最大限度的去发挥现有算力的能力,且已经进入瓶颈状态。

在硬件层面上,安天曾寄希望于通用算力集成规模的高速增长。然而,面对高速增长的威胁恶意代码的数量和检测规则数量,通用处理器虽然做了包括CACHE扩容、指令预取以及虚拟化等技术在内的优化工作,却仍然不能满足引擎对安全算力的需求。引擎的深度预处理带来了计算资源的处理压力,局部性差异导致了cache失效的性能恶化。最终的情形是:处理器一方面承担了来自操作系统、应用及业务、进程调度、中断响应和内存分配访问等方面算力需求,另一方面还要负担来自安全检测的算力需要,通用算力的使用已接近极限。

除CPU外,安天也尝试通过GPU加速的方法来探寻新的算力支撑,但是GPU和CPU的工作原理本质上没有改变,GPU和CPU都属于通用处理器,都需要进行取指令、指令译码和指令执行的过程,这种方式屏蔽了底层IO的处理,使得软硬件解耦,但造成了数据的搬移和运算无法达到更高效率。GPU虽然扩充了计算单元,但是结构依然存在瓶颈,且功耗成本更高。

通用算力的解决路径不再奏效,安天开始尝试扩展专用安全算力,将安全算力”卸载“,即利用专用算力承担安全检测工作,在实现有效的威胁对抗、满足高速检测的基础上为其它业务释放通用算力。引擎算力的优化,是否可以通过打造专用芯片来实现?

4.安天威胁检测引擎结合专用芯片

算力是当今数字化、信息化过程中的基础必要条件,在威胁对抗的领域需要更多的算力为支点,在通用算力面临集成规模限制、体系结构无法满足安全威胁检测领域的算力条件下,事实上我们需要真实地解决"安全算力"的问题。

安全算力的优化体现在两个层面,一个方面是通用算力的“卸载”。不同于通用处理器都需要进行取指令、指令译码和指令执行的过程,造成了数据的搬移和运算无法达到更高效率。专有安全算力芯片的功能设计优化了数据处理的效率。例如: 在规则匹配上,连续特征匹配在通用设计中依托于库函数memcmp,在指令执行的维度,从时钟周期的消耗角度来看,通用芯片需要处理大约20条指令完成一个4字节匹配,需要消耗大约至少60个时钟周期,而专用芯片只需要1个周期即可完成,如果将这样一系列复杂的功能由安全算力芯片来完成,即可达成专有安全算力芯片处理安全相关的事务,有效释放通用算力的目的。另一方面是在特定场景下专有安全算力芯片在运算速度上优于通用算力,如在特征计算测试中,处理完相同大小的文件集合,专用芯片的速度大约比通用芯片快20倍。

目前,安天己经完成了硬件级专用检测芯片的部分功能的设计工作,并且完成了对包括特征计算、匹配的加速等功能的验证。通过威胁检测引擎与安天打造的硬件级专用检测芯片相结合,形成了威胁检测领域的专有"安全算力",有效地达成了将安全需求从通用算力上“卸载”的目标,释放更多的通用算力给其它相关业务所使用。

展望未来,威胁检测引擎的检测能力、效率以及算力成本之间的平衡已经成为用户的迫切需求。软件层面的算力消耗优化虽然在一定程度上奏效,但在现阶段还是无法很好地通过威胁检出效果与算力资源消耗的“双重考验”,而通用算力的使用接近极限。因此,打造安全算力芯片,通过威胁检测引擎与专用芯片的结合提升引擎性能、释放通用芯片动能将会是优化引擎性能和解决“安全算力”问题的发展方向和必然趋势。安天的专用检测芯片将在特征匹配、解压算法、HASH运算和密码运算等方面持续发力,努力打造性能和成本的双重优势。引擎与专用芯片的结合将为整个网络安全生态体系提供更强大、更快速的威胁检测能力。