5

人工智能技术在高级威胁检测中的应用实践-51CTO.COM

 2 years ago
source link: https://netsecurity.51cto.com/article/711160.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

高级持续性威胁拥有着形式多变、持久化、对抗性与隐蔽性强等特点,是目前各大企业在威胁监测方面所面临的一项严峻挑战。而AI技术的赋能,能够使高级威胁检测技术的检测效率与准确性大幅提升。在不久前的【T·Talk】系列技术分享活动的第十期中,我们特别邀请到了金睛云华技术总监富吉祥为广大听众分享如何利用AI技术解决传统特征检测技术难以解决的安全问题。【T·Talk】也将本期分享的核心内容进行了整理,希望能为大家带来一些启发。

高级威胁检测技术挑战

高级持续性威胁通常指有组织的团队,针对特定目标,综合利用其所了解的信息,构造相应的武器和攻击手段,在长周期中对目标进行持续渗透的网络攻击活动。攻击链包括不同阶段,例如扫描探测、尝试攻击、漏洞利用、木马下载、远程控制、横向渗透、行动收割。整个攻击过程是复杂的,攻击手段、攻击武器与载荷是高明的。业内通常将这类威胁定义为高级持续性威胁。

图片

在高级持续性威胁的攻击过程中,需要对攻击手段进行检测和发现,以便对其进行响应和处置。但目前传统的特征检测技术,并没有办法很好地应对其中的高级攻击。传统的攻防手段对抗过程,通常是在一个新的威胁产生后,防守方要想办法获得样本,再基于样本对其进行特征分析并识别威胁,最后更新到可以对威胁进行防御或检测的网络安全设备中,升级后具备检测能力。

但在升级安全防护或检测设备前,未知威胁存在防御真空期。此外,还有一些恶意代码的变种,例如目前互联网上有很多恶意样本、木马病毒。攻击者会赋予样本绕过防御手段或者检测手段的能力。在这个过程中,攻击者会改造样本,把能被杀软发现的特征隐藏或混淆,将样本进行变种。在此之后,杀软、文件哈希码或特征码就已经无法再对其进行有效检测了。

图片

在整个攻击链条的过程中,有些行为是容易被检测引擎或不同手段发现的。但在过程中也会存在一些难以发现的隐藏部分,对攻击过程的判断同样是非常重要的。例如目前很多的网络攻击已经采用了加密手段,在整个网络流量中,我们只能看到一些握手交互和证书信息。仅通过这些信息并没有办法判断加密的流量载荷是否存在问题,以及是否潜藏木马与恶意攻击行为。

当攻击入侵成功之后,会与其命令控制服务器进行回联,以时刻保持通信的畅通,并接收攻击者下一步的攻击指令。防火墙是目前常见的网络安全设备,它通常不会对DNS、HTTP、ICMP等常用协议进行拦截或者深度检查。因此在上述的回连过程中,如果想去隐蔽的通信,使用标准的网络协议去进行命令与控制通信会是一种比较好的手段。

图片

而恶意的加密代理会将整个会话过程完全加密。像比较常见的的洋葱头、暗网浏览器,可以隐蔽访问行为和访问的内容。Open VPN也可以很好地将通信行为隐蔽掉。这些线索就是发现整个攻击链条的关键。

人工智能技术在高级威胁检测领域的实践

网络中的行为是通过协议进行交互的,访问网站、发送消息或邮件,都会在网络中产生双向的交互行为,客户端和要访问的服务端,之间会有多轮的交互。在这个过程中,发送的请求信息通常比较少,网站端返回的信息则比较多。针对这一过程,我们可以将其可视化的呈现出来,并对网络行为进行建模。

图片

在木马数据外泄的过程中,也涉及多轮的数据交互。这个过程中会话数据在时间和数据包大小上的分布,会形成一个显性的模式。在对这个模式进行识别的过程中,需要想办法去对整个流量的模式进行构建。对此,可以通过人工智能建模的方法将这一模式学习下来。

现阶段多应用人工智能技术,例如苹果的siri语音识别。首先捕获语音,然后将语音信号转化成数字信号,再对其进行线性参数提取,目标是要将其通过多维的数据形成特征向量。最后再交由人工智能算法对其进行建模。建立好模型后,就可以对训练过的语音进行有效识别。

图片

同理,当需要识别网络流量模式时,也可以借助相似的过程。首先采集样本,包括上行和下行这种双向的网络会话包,然后对其进行数字化,以解析数据包中的内容。再通过不同方式,例如网络层、传输层和应用层的协议解析,解析其中的内容。在这个过程中也可以对数据包进行统计,再使用预先调制好的算法对数据进行学习,最后将其应用到检测和防御的网络安全设备之中。

在上述过程中,首先需要关注的就是数据的来源。互联网上很多木马外联的时候是外发的加密流量。在这种情况下,可以将木马样本捕获,并将其放到沙箱集群环境中,让其与互联网产生网络流量,并对加密的PCAP流量进行捕获。同时,许多网站或学术的机构也会公开一些加密的PCAP流量,包括公司或学术组织也会积累一些在此研究领域的恶意加密流量,这些都是有效的数据来源。

图片

当然,并不是所有原始流量或文件都可以直接应用的。在完成捕获后,还需要对其进行分析,判断数据质量并筛选数据。将流量通过标准引擎或安全设备引擎进行解析,以便提取其中的特征数据和统计数据。获取到数据后,AI工程师对数据进行判断,并将数据分成几类,用几个模型或算法对其进行识别与分类。

分类的第一个维度是判断流量中是否存在相关的其他协议流量。很多木马会考虑模拟正常的web访问行为,以降低其恶意行为的被发现概率。这种情况下,可以将会话相关的DNS上下文捕获,并对其进行分析与数据提取。第二个维度是会话要先进行TLS的加密身份认证,部分会话没有完成认证过程,部分会话完成了身份认证过程,这样可以获得不同类型的交互数据。

我们可以根据上述的两个维度:DNS是否有关联,还有其身份认证是否完整,去进行实践。把数据分成四组,后续通过这些数据进行分别训练,让不同模型对相应的子类别的数据进行有效的识别。

对数据进行分类后,就需要提取特征以构建特征向量。首先可以根据是否有DNS关联的数据来区分它要提的内容。如没有DNS关联的数据,则提取它的统计数据和TLS协议数据。其次是加密证书相关的数据。将这些数据合在一起,生成特征向量。对于有DNS关联类别的数据,则要考虑将DNS相关的域名长度、域名后缀、TTL等字段进行提取,以形成特征向量。

接下来,在建模与训练前还需要进行可视化的数据降维分析。判断AI算法是否能有效地将数据进行分类。AI算法要对数据做分类,从降维数据图来看,实际上可以理解为在找一个曲线或曲面,其能够将两类数据很好地区分开。降维的算法有很多,例如PCA算法等,可以根据不同的实践过程选用不同的算法。

图片

接下来则是建模的过程。人工智能有不同的算法类别,例如传统的机器学习以及近几年热门的深度学习。对恶意加密流量识别效果更好一些的是通过集成学习的算法,在一个集成学习模型里使用多个机器学习算法,或用一个机器学习算法去建立多个子模型。集成环境下的识别效果和准确率会更高。

第二类问题,高级威胁其中一种是恶意文件的变种,其变化速度很快。传统的特征码很难跟得上样本新变种的产生速度。对此,可以将文件转化成图像,并通过卷积神经网络对图像的识别能力来对文件本身进行间接识别。相比于传统的特征检测算法,使用卷积神经网络对图像识别,它的计算复杂性并没有那么高。

这里首先需要将恶意代码映射为灰度图像,并提取其灰度图像特征。而后利用恶意代码灰度图像特征进行聚类,将聚类结果进行恶意代码家族标注。再建立卷积神经元网络CNN模型,并设置网络结构参数和训练参数。接着利用恶意代码家族灰度图像集合训练卷积神经网络,并建立检测模型。最后利用检测模型对恶意代码及其变种进行家族检测。

图片

另一类问题是目前很多恶意程序从企业内部向外通信的时候,会使用隐蔽隧道。其中,DNS隐蔽隧道可以将待外泄数据以BASE64编码后作为子域名,利用DNS协议穿过防火墙将数据传送到受控服务器。也可以使用DNS协议的TXT等记录类型发送请求和响应。同理,黑客注册这个域的解析服务器,以获取想要的数据内容。

ICMP隧道是比较常用的手段之一。它主要可以利用ICMP的Echo、Reply的数据包,找到其中的字段,然后将我们的数据进行填充。同理,也可以去通过编码或者加密将外发数据转化形式,然后通过一次次的多频次的外发,将数据外发到受控的控制端上去。

HTTP隧道同样是一种常用的隐蔽隧道。HTTP是一个应用层协议,应用层协议在两端建立好访问通道之后,我们可以用HTTP隧道去承载一些传输层、TCP/IP层的数据,其实就是通过上层的应用层去承载数据。在这样的情况下,防火墙很难去对它进行有效拦截。

针对上述问题的建模,第一步是要获得相应的工具流量或真实的隧道流量。之后对DNS等协议流量的特征向量进行提取,提取的内容包括协议本身的内容,以及统计的特征值,共同构成特征向量。最后再给到机器学习模型或集成学习算法模型进行训练。模型训练好之后,就可以有效地对前面提到的这些工具进行流量的模式识别。

图片

上述所提到的模型,可以使用一些方式提升其准确率。与人工智能相关的是,可以使用不同的算法针对一个细分问题的不同类别数据进行分别建模,再将模型集成应用。或使用同一个算法针对不同数据进行建模,再将模型并行使用。除了使用人工智能方式外,我们也可以考虑利用黑名单或白名单等手段提升模型准确度。

在建模的整体过程中,其实需要大量的流程和工具,可以通过建模平台和工具脚本将整个过程串联起来。目前许多算法平台以及TensorFlow、MLlib等库都是可以应用的。后续也可以通过多轮地迭代,去持续提升模型对新的样本类别的适应性或降低模型的误报率。

应用案例与实践效果解析

应用层面,如果数据输入来源是流量,则可以将训练后的模型放到设备之中,而后将原始的网络流量给到设备,这样设备就可以去用内置解析引擎对流量进行协议解析,特征向量提取,之后可以给到AI模型检测。

在对模型的训练过程中,特别是神经网络这类深度学习算法对算力的要求比较高,可以使用多台设备或多块显卡进行训练,机器学习算法对算力要求不高。同时,也可以使用一个分布式的架构对模型进行应用,前端设备专门进行流量的协议解析,解析之后生成元数据,后端的设备提取特征向量,再将特征向量给到模型进行检测。

图片

针对威胁的判断过程中,不光可以用AI模型,也可以综合其他的检测手段。例如杀毒软件引擎、Yara、特征、情报等,都可以去综合地结合在一起应用,而不仅是使用AI模型的检测效果。针对恶意加密流量,可以在现网中应用,但对恶意加密流量在现网中的应用会有一个困难,就是如果发现了问题,很难去判断这个问题是否真实存在,对此可以通过其他的间接手段来进行校验。

例如发现内部主机访问了外部的服务器,产生了恶意加密流量的告警行为。则可以对原主机进行判断,确认其近期是否受过攻击,是否存在恶意样本或病毒木马,是否受到过漏洞攻击成功的行为。同时,远端可以根据IP或域名情报判断远程的服务器是否存在问题,如果两端存在问题,则整个事件是恶意的概率就会比较大。

如果是web类的攻击,我们则可以去提取它的载荷,比如它是SQL注入,SQL注入之后,在流量中能提取到它注入的内容,经过解码之后,就可以看到它注入的语句。像Webshell也是可以看到它里面的内容是否是一个不正常的访问行为,XSS等威胁同理。

用AI算法进行威胁检测后,也可以通过智能方法将威胁和我们所关注的资产、资产的网络行为以及外部的威胁情报等不同维度的元素进行关联,并利用知识图谱技术,形成了一张动态图。相对于只看表单数据,然后在不同数据间进行关联,智能关联能够有效提升分析溯源的效率,是提升运营效率的一个有效手段。

最后列举一个案例,下图是一个完整的攻击过程。一个勒索软件被投递到内部关注的资产,资产进行了DNS的解析行为,得到了IP,再之后发生了HTTP的隐蔽隧道,整个流程中不同的事件都会被原始地记录下来。同时,系统自动将不同的事件串起来,形成一个更高级的告警。同时整个过程也可以可视化的动态的展示出来,便于我们理解、回溯到底哪些资产、哪些外部的IP或设备与我们产生了联系。

图片

富吉祥,毕业于东北大学信息安全专业。曾就职于KDDI中国、华为、盛邦安全,目前在金睛云华任职售前负责人和技术总监,从事产品与解决方案工作。具有超过10年的网络安全领域经验,擅长人工智能、大数据和网络流量分析技术高级威胁检测分析领域的应用。历年来以演讲嘉宾身份受邀出席ISC网络安全大会、XCon安全焦点信息安全技术峰会,接受权威媒体安全牛《牛人访谈》专访,在《企业高级威胁防护指南》报告发布会上做演讲分享,在业界享有良好口碑。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK