冬训营丨探海算沙 —— 流量检测能力要求变化与算力代价
时间 : 2022年01月26日 来源: 安天
网络流量威胁检测和响应是发现网内受攻击资产,监控威胁活动的重要环节。随着黑色产业链的泛化,攻击者攻击门槛不断降低,应用流量手段有效应对威胁,发现风险,治理网络的重要性也随之增强。在引入新能力的基础上,增强流量监控的实时性,以同时应对更大的流量和更隐蔽的威胁成为新的挑战。
1.抗击高级威胁所需的能力和算力代价
在对抗高级攻击者时,流量访问是攻击者建立桥头堡后进一步探测和横向移动的的必由之路。在敌将在内、敌已在内,我中有敌,局部失陷的基础敌情想定的推演下,结合我方情况,参考我方高价值目标的网络拓扑情况,提早部署防御,在抵达目标的业务路径和数据访问路径上增加关卡,迫使攻击者按照预先设计好的路径进行访问。而探海,作为流量监测设备,在识别分析威胁的同时,全方位采集,为积极防御的智能化响应能力提供数据基石。
在检测能力方面,探海具有多维度的基础检测能力。从流量中全量采集威胁要素,为分析载荷高度定向、一次性投放等行为做出能力基础。对这些采集的要素,从包、流、会话、文件、事件、深度分析等维度进行检测,检测的方式包含威胁情报、协议行为、文件载荷、文件行为等方面。全要素日志同时进行留存分析,以提供威胁的向前追溯和向后守候能力。
在采集要素的多维度检测方面,基于下一代威胁检测引擎,除了黑白信息之外,也能提供载荷的核心行为如广告传播、DDoS、远控等;威胁行为如信息获取、对抗分析等行为。输出内容也包含载荷被相关威胁行为体利用的情报知识和基于ATTCK框架的载荷行为揭示,以为威胁分析师的分析研判,提供更明确的上下文信息。
在另一方面,探海能基于流量提取出全要素。采集的全要素除进行检测之外,还可用于长期留存。这些留存的全要素作为日志留存,可用于威胁猎杀,损失和攻击复盘。全要素日志可低损耗的保存流量传输上下文。而在安天对HangOver这个APT组织进行复盘时,发现该攻击持续超过一年时间。之前我们通过流量截获了多个该组织使用的攻击活动并零散的做了一些威胁响应和威胁分析工作,但直到最后一个攻击活动截获7个月之后,才基于威胁情报归并了相关攻击的上下文。因此,网络安全法的6个月网络日志要求是合规的基础要求,而在实际的分析清点过程中,应当尽量留存更长的时间,从而更深入的进行威胁分析。
一个攻击的简单例子,攻击者通过水坑、鱼叉式钓鱼建立起初次接触后,横向移动到内网主机和内网服务器上,并窃取数据资产。如果我们在其必经之路上,进行全要素的记录,结合经过场景适配的威胁情报和私有化生产的威胁情报,我们就能针对网内的威胁实施威胁猎杀。同时对已知失陷节点,进行全流量留存,反馈私有化情报生产。当发现C&C连接时,将攻击者导入网空模拟诱导环境中进行反制,我们就能化被动为主动,重新夺回主动权。
要素采集和分析是应用威胁情报,进行威胁检测和威胁猎杀的基础。完整的要素留存,能提供丰富的匹配点。有效的解码分析,可规避注入URI编码、Base64邮件编码等方面的简单绕过。多维度的向量采集,特别是同时包括网络要素采集和载荷行为要素采集的能力,可有效对抗攻击者的攻击躲避行为。
基于有效的全要素采集分析能力,探海可应用向量级威胁情报,进行丰富有效的威胁检测。向量级威胁情报基于安天的全域威胁感知能力和高级威胁对抗经验。而基于下一代威胁检测引擎的向量提取能力,可进行载荷的指令级、API级、功能级的向量提取,有效应用威胁情报,实现对诸如APT、僵尸网络、受控主机、勒索病毒感染、被利用挖矿和DDoS等情况的有效觉察。
探海支持丰富多彩的协议应用的元数据化。适应包括云环境和网络虚拟化环境的9种隧道环境。基于协议特征,识别200多种协议,可以发现443端口传输明文协议等规避检测行为。对13种协议传输的文件进行了还原。深入提取了34种协议的传输上下文信息以用于研判、留存。对所有传输的协议报文均进行了有效检测。
依托于长期以来的威胁对抗经验,在元数据化的过程中,探海持续的将威胁分析经验转换为标签规则,这些标签可用于减少威胁分析过程中所需要关注的信息量,传递标签背后的知识。同时,这些标签可用于构建识别出特定的攻击场景。譬如说,跨境邮件通讯的附件中包含脚本,是Locky勒索病毒家族的常见手段。
而在近期log4j的威胁响应过程中,一台服务器,只要下载了java的class文件,则可判断为攻击成功。通过文件识别还原能力,探海能识别网内的字节码传输动作,在相关威胁流行的情况下,直接发现被攻击成功的主机。
这些全要素中依据威胁对抗经验提供的标签和场景,可用于构建符合客户业务实际的威胁蹲守能力,依据场景、敌情的分析和对我情的掌握,可共同指引,加速掌握全网态势。
而在对“我情”的掌握中,全面掌握资产是重中之重,全要素可用于从网内识别提取出资产、业务的扩展元数据和用户的行为,构建出资产画像、业务活动画像和设备资产拓扑,结合主动扫描和入网运营记录,达成全面掌握资产,支持场景化实体分析和基于我情的沙箱、蜜网的目的。
目前,探海的ND20000型号已经实现在单台设备上基于通用网卡和x86通用处理器,实现了对骨干网30Gbps的全流量检测能力。同时跟踪2000万连接,支持100万以上的浮动关键字和1万以上的正则匹配。具备超大文件还原检测功能。部分协议支持跨会话的分片还原。
下面,我们看看实现骨干网30Gbps全流量检测能力的算力代价。探海采用了2颗16核的至强处理器,开启了超线程,其中6%的CPU资源用于进行数据包的获取,50%的资源用于报文的提取、检测和还原,37%的资源用于模型算法检测,剩下的算力用于上下文理解和元数据配对编码丰富化、辅助其他设备和人对流量和威胁进行增强理解认识。
从内存的角度而言,16%的内存预先分配。用于数据报文的获取。18%的内存用于处理流表项。26%的内存用于模型检测和统计分析。27%的内存保留用于用户分析。剩下的内存用于内部组件的通讯和预留。
而若将所有进行解析数据联动到其他设备上,典型情况每秒会产生20多万事件,占用大约2G的带宽。
在从海量流量中寻找威胁的方面上,探海积累了一些经验:首先,在海量流量应对中,由于内核-用户态上下文的切换成本,内核的预先处理和iptables等预设技术不是我们的帮手,而是性能问题所在。通过程序直接访存、网卡DMA的方式去主动的绕过内存,将时间片的应用集中到流量数据面业务处理上是问题的关键。
其次在内存应用的方面,大量采用空间换时间的方式,使用预分配的技术避免内存碎片,并确定性的通过NUMA技术明确内存访问时间。如果出现大包,则进行分段处理。为了适配协议关键字段跨包和巨型帧的相关情况,研发了流式处理技术,可以通过状态迁移模式进行解析、识别、匹配,有效处理跨内存分片问题。使用引用计数进行报文暂存,避免暂存过程中的拷贝。
再次在硬件利用方面,通过RSS方式去做多核CPU均衡。与此同时,网卡如果不支持对部分新近出现的流行协议,尝试使用匹配表解决非标称协议,或退化到软件重分配。基于FlowDirector将发现的DDoS相关流量进行清洗,避免长时间占用深度解析流表,降低资源开销。
在准备分析的预处理方面,探海需要对协议的编码进行解析,以恢复出原始内容供匹配。典型的会有http的url、form、gzip等编码,邮件的base64编码。对TLS等加密协议,会需要对X509证书的asn.1编码进行解码。对DNS协议,utf-8编码的域名的恢复等。这些都涉及查表、位移等运算,需要耗费CPU性能。
在识别方面,探海应用基于协议内容的协议识别,以发现类似于443端口传递非加密流量的情况。而根据对协议的理解,探海可基于协议特征恢复乱序或未成流流量的解析。这些匹配也需要消耗CPU算力。
为了方便威胁分析人员和其他设备理解威胁,设备保留相关请求的上下文信息,如:协议头跨包情况的解析留存,请求向、响应向的配对分析。多流协议的跨流分析等。这些都会需要暂存上下文,设备以空间换时间,尽量利用引用计数进行留存,以消耗内存为代价,省出CPU。
另外的算力消耗,是海量数据带来的挑战。对一个千兆网络全流量的留存,会导致至少一天10TB的存储消耗,在流量日志方面,若我们进行简略的五元组记录,需要每天12G的存储空间。而附加上更多传输上下文,则需要48G的存储空间。Netflow的留存需要90G的存储空间,而这还没有计算索引所需要的空间。我们做了一些统计,对千兆网络的分析会产生大量的日志量,每天可以达到4亿。这些日志的存储,不管是在单一设备上,还是态势感知带来的集群中,都会带来极大的挑战。另一方面,设备有可能会产生告警,告警虽相对流量很少,但相对人能处理的量级来说,依然巨大。需要基于威胁认知对告警进行融合和认知,才能够降低分析人员的负担,识别重要的威胁。
与此同时,探海有效应用向量级威胁情报进行威胁检测,可以提供抗变性极强的检测能力。但在分析方面,即使在平台侧可利用向量级威胁情报,提供对威胁的更好的分析能力,由于算力限制,相关工作难以在探海上进行。而威胁情报的交换属性,带来了丰富多彩的安全检测的哈希算法和匹配算法。如ssdeep等模糊哈希,可在payload发生变化的时候仍然可以进行检测,但在有效应用这些算法方面,需要设备事先对对应对象进行有效运算元数据化,不管是对每一个流计算待匹配元数据,还是从所有元数据中计算找到情报命中的值,都将消耗大量CPU资源,因此,只有提供更多的算力,才能更好的应用威胁情报。
2.智能化发展趋势期待更多算力支持
网络威胁检测及响应技术能帮助用户有效、尽早地发现新型变种威胁。要达成这个目标,必须要解决看得见、想得清楚、说的明白、可处置的问题。通过更高级的威胁情报和更智能的算法,解决看得见的问题。通过业界最佳实践,智能推演和专家经验的结合,解决想的清楚的问题。通过人在回路中的巡线扩线,解决说的明白的问题,最后形成可处置的方案。
在看的见的方面,探海采用基于文件行为序列泛化的向量检测能力加强对格式文档和可执行程序的检测能力。例如,对于office文件的向量,可以提取来源信息,攻击目标信息,攻击手段信息等。提取的向量主要包括标题、主题、标记、类别、备注等文件说明信息和作者名、最后一次保存作者名、版本号、公司、管理者和创建保存时间等文件来源信息。通过标题和主题,我们可以确定攻击者的主要目标人群是什么。例如,我司关于xxx的补助领取通知.doc,显然是面向公司职员。文件创建者和最后一次保存作者名等等可以让我们知道该文件是被修改的还是伪造的。而一些有特色的或不符合规范向量可以帮助我们预防和识别恶意软件。比如文档备注包含特殊代码等文档内容向量包含宏代码和附带文件等。从附带文件中同样可以提取出一系列的文件信息和内容信息。通过相似度计算划分行为,过滤误报,形成告警,产生对载荷的潜在行为的理解,如执行其他程序、检测环境、命令与控制等。这是一个CPU密集型的操作,主要算力消耗在查找树遍历和相似度计算上。
同时,探海采用语义分析及污点传播执行技术来应对WebShell。通过剥离上传载荷,进行预处理后,构建出语法树,并对语法树进行推导,形成关键函数的执行和用户输入之间的连接关系识别,进而基于知识图进行检测遍历,达到对小马、大马的通杀效果。不管是一句话木马,或者是冰蝎、哥斯拉,又或者是某些APT组织的攻击武器,都能很好的发现。与此同时,由于机理,越复杂,使用绕过技术越多的马,越需要深入的语法树构建过程和语义分析过程,因此对CPU存在非常密切的消耗。
刚刚的例子解决了WebShell实体上传的问题,但对于哥斯拉、冰蝎等加密的WebShell流量,通常只能使用弱特征进行匹配检测。探海通过使用以香农信息熵为核心的向量和群组聚类分析来识别WebShell的加密通讯,在预处理后的数据基础上进行运算,能有效识别出混乱度高,显示显著离群特征的传输,与此同时,通过对典型流量的区分和对特殊文件格式的误报清洗后,得出高可靠的告警。由于对目标路径中的每个包中的每个字节都需要计算概率,涉及到遍历、自增、概率运算、求和求log等数学运算。也涉及到群体划分等算法,因此是一个CPU密集型的运算。
我们在实验室中,使用机器学习和人工智能算法对威胁检测做过很多尝试。有一些取得了不错的检出率和召回率。但实际能应用在设备上的其实并不够多。主要原因之一是模型的大小。上百个G的模型对应用和更新模型都会存在一些挑战。应用模型的原始数据的清理也存在较大的算力消耗。就客户期望而言,客户期望能对模型做迁移学习或现场训练,来做到对流量的深度适配识别,但这些动作非常消耗CPU、IO等算力资源。目前典型场景我们是一个2U的设备,但要做到类似的工作,我们可能需要一个4U,或整柜交付的情况,从而效果和性价比之间会有显著的矛盾。更强大、更智能的这样的一个威胁检测能力,需要更强大的算力去做一些支撑。
在想的清楚方面,探海支持对攻击事件的自动关联,通过关联攻击链,寻找出攻击的步骤和走向。通过对攻击资源和装备的识别和描述,依据威胁情报和ATTCK的赋能,得出结论,描述攻击者属于哪个攻击组织,还原攻击事件。
结合网空威胁框架的关联分析,是对攻击者的动态攻击活动、攻击手法、入侵过程的生动再现。探海已经深度支持了业内公认的两大网络威胁框架,一个是 ATTCK,一个是NSACSS。威胁框架是基于现实世界中观测到的攻击者的战术和技术的知识,将攻击行为按照目的进行分类,并对各类别中具体的攻击技术加以描述的这样一套知识体系。探海通过支持ATTCK和NSACSS,可有效揭示威胁所处的攻击阶段,呈现攻击方法和手段;帮助建立对攻击链的完整认知。
威胁框架的识别和研判介于宏观与微观之间,属于中观的范畴。由研判微观的原始的单一告警事件聚合而成,结合资产和情报,可酝酿出对网内整体情况的研判。威胁框架可以用于了解过去发生了什么,现在正在发生什么,结合威胁情报提供的攻击者的技战术和我情资产数据,可用于预测未来将要发生什么。这些过程中,需要对原始事件进行误报排除、攻击确认、佐证数据对照分析,结合威胁情报做可信度评估综合研判得出结论。研判的过程涉及数据识别、索引、提取、老化等操作,消耗磁盘的IO资源和内存用于缓存。
通过人在回路中的猎杀分析,可发现网内的异常情况,及早发现高级威胁。相关数据可支撑对APT组织的追踪,绘制事件全貌。通过情报的赋能,从网内实时流量和历史记录全要素日志中,挖掘线索,建立假设和推定,并在确认后,获取新的攻击者基础设施信息、载荷信息、攻击武器、攻击装备,分析产生更多情报,闭环挖掘,直到梳理清楚事件全貌。
探海可提供丰富的数据,用于支持归纳攻击组织、攻击资源及攻击装备。通过对网络流量多层次的检测,获取威胁的关键载荷和行为。提取出payload,供相似性分析。放马源归类、传输协议及其对应的路径、用户名、文件名、PDB等,可用于聚类归纳攻击组织。恶意代码的C&C和传播关系,可用于关联发现攻击者掌握的资源,并形成更多的情报,梳理攻击者全貌,指导缓解措施的应用,并从资产中根除攻击者。
威胁猎杀的核心是人在回路中的闭环,建立假设,并收集证据进行证实或证伪假设。证据的加入可扩展问题的边界或缩小问题的范畴。这就势必需要有适合人类处理的响应时间,考虑到日志数据和原始数据的数据量和增量而言,这并非易事。同时,考虑到人与人之间的互动协同,工作分配和归纳汇总。分析完成后的报告撰写工作,数值的精确性,这些都需要大量的算力做支撑。对日志的解析、分词、索引、检索、抽样、统计、分布,用于支撑快速判断有无、抽取、步骤快照记录等功能。同时,要有效缩小问题的范畴和撤销已被证伪的假设,势必对存储和IO存在巨大的挑战。现有的操作数据的技术有许许多多,但要满足分析人员的应用,将是对CPU、磁盘存储、内存、IO的全面需求,并亟待满足。
探海的基础功能是威胁的感知和元数据的提取。作为感知器,响应的时间是核心,发现的时间,分析的时间,辅助进行理解决策的时间。最终做到在态势感知的协同之下,完成策略的处置和效果的监控。这一切的有效达成,都离不开算力的支持。
3.自主先进背景下的流量检测能力变化
我国各领域的数字化进程推进,催生出巨大的信息安全市场,由于信息安全自主可控的需要和国际环境贸易摩擦的加剧,我国大力提倡产业升级,高质量的发展基础硬件、基础软件。以跳出供应链随时断供,受制于人的局面。
安天积极支持国产替代战略,助力推进国产基础硬件软件与网络安全领域的深度融合。探海追随国产替代号角,全面兼容了国内的兆芯、龙芯、飞腾、海光等各类指令集的主流CPU,基于麒麟操作系统,推出了自主可控平台的设备。完整适配了x86平台上的探海功能。
在完整适配功能的同时,我们也清醒的意识到,我国在这个领域毕竟是后来者,最近几年,国产化的性能及功耗性能比都有了长足的进步,但比起老牌大厂,差距依然存在。这是基于SPEC CPU2006测评工具指出的国产CPU性能情况,可以看到,性能已有了大幅度的提升,但比起intel而言,单核性能和核心数目,还有待进一步的增强。而我们为了满足更高等级的安全需求,intel的CPU也已经显出疲态。同时,通用CPU领域,主频和核心数的增长远远比不过流量需求的增长,为了满足更大的流量,更高效的流量处理方式势在必行。
这是一个不恰当的对比,机器学习的主要算力消耗是浮点矩阵的运算,以浮点运算言,我们可以看到,目前的各类硬件的表现情况,以每秒钟可执行的浮点数运算次数Flops作为评价指标,国产的各类硬件正奋勇直追,排在中间的是intel的低端CPU和偏高端的CPU,在这之上的是游戏机,再之上的是运算加速卡和显卡。可以看出,在浮点数运算方面,专用算力是能提供就通用算力大得多的计算资源的。
而网络安全也是算力消耗的大户,那么,它的消耗主要是在哪呢?流追踪和解码是协议识别解析元数据化的关注点,检测方面,可能是浮动关键字、正则表达式或者是哈希,更高级的检测,可能是对于模型的抽取或者是匹配。同时,报文来的时间参差不齐,很难在较短时间内找到能对应上类似操作的数据,因此SIMD的应用上存在一定的困难。而不同的环节在CPU消耗,内存消耗和io消耗上会有不同的需求和衡量指标。度量核心,更好的解决关键问题,将是有效提升安全算力的重要部分。
4.思考和总结
我们已经商业化应用基于通用处理器的探海来处理30GBps的流量。通用处理器应用的核心技术包括NUMA、SIMD指令和网卡的offload功能。它主要依靠SIMD指令和更多核心,通过增加并行度来解决算力的增长问题。在过去的一段时间内,价格的降低主要依靠摩尔定律。但目前由于晶体管尺寸接近物理极限,摩尔定律已接近失效,他的增长速度已经显著慢于流量增长速度。国产通用处理器依然还处于摩尔定律的覆盖范围内,因此我们还能期待国产通用处理器的算力爆发式增长。
另一种算力的提升形式是SmartNIC,核心技术在于片上的FPGA、高速片上互联和并行计算。但没有好用的IP核在某种程度上限制了FPGA的应用,高速流量领域的时序处理非常复杂,难以处理。同时,在复杂应用方面,片上内存太小,作为浮动关键字的offload而言,与安全的算力需求来说,依然有较大差距。同时,目前应用较多的数据中心领域,应用该板卡主要解决协议加密的offload问题,而安全更关注匹配和各类哈希算法。
还有一种算力是机器学习领域常用的GPU。并行度和GPU的核心目前均有较大提升。但GPU获取任何数据报文均需要占用总线带宽,从内存上批量拷贝。访存速度成为挑战。另外,GPU片上内存太小,难以处理复杂应用,且不好并行化的应用难以很好的应用GPU的功能。
如何CPU、内存、主板为国产化的环境下,在单一设备上达成骨干网流量处理,具备一定的复杂规则处理能力的设备,我们一直在努力。
网络流量的实时性和分析的深入性之间存在着永恒的矛盾。分析的广度和深度的迭代,带来了永不满足的算力需求。在更大流量不断涌现的今天,随着情报驱动安全,AI赋能安全的智能化趋势,算力需求和成本的平衡也成为需要不断思索的课题。国产化基础通用算力和专用算力之间如何高效配合,达成对威胁的有效防护,等待着我们的进一步探索和实践。