文│ 中国科学院信息工程研究所 刘宝旭 张方娇 刘嘉熹 刘奇旭
算法、数据与算力是人工智能发展的三大核心要素。近些年来,在算法增强、数据爆增及算力提升等多种有利因素的驱动下,人工智能飞速发展并在各行各业得到广泛应用,在网络空间安全领域也不例外。网络攻防对抗不断演化升级,人工智能因其具备自学习和自适应能力,可为自动化网络攻防提供助力,已成为网络攻防的核心关键技术之一。
一、人工智能在网络攻防领域的应用
为了更好地理解人工智能在网络攻防领域的应用,现从攻防视角及攻防主体采用人工智能意图这两个维度共四个方面展开(如下图所示)。
人工智能在网络攻防领域的应用
(一)人工智能助力网络攻击
人工智能使得网络攻击更加强大,一方面,可将参与网络攻击的任务自动化和规模化,用较低成本获取高收益;另一方面,可以自动分析攻击目标的安全防御机制,针对薄弱环节定制攻击从而绕过安全机制,提高攻击的成功率。调研近几年人工智能在网络攻击方面的应用研究显示,利用人工智能开展的网络攻击方式包括但不限于:定制绕过杀毒软件的恶意代码或者通信流量;智能口令猜解;攻破验证码技术实现未经授权访问;鱼叉式网络钓鱼;对攻击目标的精准定位与打击;自动化渗透测试等。
1. 恶意代码免杀。利用深度强化学习网络提出一种攻击静态 PE(移植文件)反杀毒引擎的黑盒攻击方法,这是当前第一个可以产生对抗性 PE 恶意代码的工作,在模拟现实的攻击中达到 90% 的成功率。
2. 基于生成对抗网络框架 IDSGAN 生成恶意流量。基于生成对抗网络的框架 IDSGAN 利用生成器将原始恶意流量转换为对抗性恶意流量,可以欺骗和逃避入侵检测系统。实验证明,多数对抗流量可以欺骗并绕过现有的入侵检测系统的检测,规避率达到 99.0% 以上。
3. 智能口令猜解。基于多数据集的密码生成模型 GENPass,借用 PCFG(概率上下文无关文法)和GAN(生成式对抗网络)的思想,通过长短时记忆神经网络训练,提高了单数据集的命中率和多数据集的泛化性。
4. 新型文本验证码求解器。提出一种基于 GAN的通用有效的文本验证码求解器。通过将验证码所用的字符、字符旋转角度等参数化,自动生成验证码训练数据,并使用迁移学习技术调优模型,提高了验证码识别模型的泛化能力和识别精度。该方法可以攻破全球排名前 50 网站使用的所有文本验证码(截至 2018 年 4 月),包括谷歌、eBay、微软、维基百科、淘宝、百度、腾讯、搜狐和京东等网站。
5. 自动化高级鱼叉式钓鱼。基于 Twitter 的端到端鱼叉式网络钓鱼方法,采用马尔可夫模型和递归神经网络(LSTM)构造更接近于人类撰写的推文内容。经测试发现,该钓鱼框架成功率为 30%~60%,一度超过手动鱼叉式网络钓鱼的成功率(45%)。
6. 网络钓鱼电子邮件生成。基于 RNN(循环神经网络)的自然语言生成技术 NLG,自动生成针对目标的虚假电子邮件(带有恶意意图),并通过个人真实邮件数据和钓鱼邮件数据进行训练。实验证明,RNN 生成的电子邮件具有更好的连贯性和更少的语法错误,能更好地进行网络钓鱼电子邮件攻击。
7. DeepLocker 新型恶意软件。该恶意软件具有高度的针对性及躲避性,可以隐藏恶意意图直到感染特定目标。一旦人工智能模型(深度神经网络 DNN)通过面部识别、地理定位、语音识别等方式识别到攻击目标,就会释放出恶意行为。人工智能的使用使得解锁攻击的触发条件几乎不可能进行逆向工程。
8. DeepExploit 全自动渗透测试工具。利用 A3C 分布式训练的强化学习高级版算法实现自动化渗透测试,可以自动完成情报收集、威胁建模、漏洞分析、漏洞利用、后渗透并生成报告。
9. 基于深度学习的 DeepDGA算法。采用 Alexa 网站上收录的知名域名作为训练数据,利用LSTM 算法和 GAN 构建模型,生成的域名与正常网站域名非常相似,很难被检测出。
10. 基于人工智能的漏洞扫描工具。从 2019 年 8 月 开 始,Instagram 的用户发现账户信息被黑客更改,无法登录账户;2019年 11 月,Instagram 代码中的 bug导致数据泄露,在用户浏览器的网页地址中可以显示用户的密码。据推测,在两次攻击中,攻击者采用了基于人工智能的工具扫描的服务器漏洞。
以洛克希德-马丁公司于2011 年提出的网络杀伤链(CyberKill Chain)模型(将攻击过程划分为侦查跟踪、武器构建、载荷投递、漏洞利用、安装植入、命令与控制、目标达成共七个阶段)作为参考,描述人工智能在网络攻击中的应用研究情况(如下表所示),可以看到黑客在网络杀伤链模型的各个攻击阶段都尝试使用人工智能技术进行优化以期获得最大收益。
人工智能在网络攻击中的应用研究
(二)人工智能助力网络防御
网络安全威胁层出不穷且呈现智能化、隐匿性、规模化的特点,网络安全防御面临着极大的挑战。人工智能驱动的网络防御拥有强大的自主学习和数据分析能力,大幅缩短威胁发现与响应的间隔,实现了自动化快速识别、检测和处置安全威胁,在应对各类安全威胁发挥着重要作用。尤其是,人工智能在发现未知威胁及 APT 等高级威胁方面有很大优势。
人工智能为人们应对日趋复杂的网络安全问题不断提供新的思路。目前,人工智能已经应用于恶意软件/流量检测、恶意域名/URL 检测、钓鱼邮件检测、网络攻击检测、软件漏洞挖掘、威胁情报收集等方面。具体应用研究包括:
1. 恶意软件检测。将恶意软件样本转换为二维图像,将二维图像输入到经过训练的深度神经网络 DNN,二维图像会被分类为“干净”或“已感染”。该检测方法达到了 99.07%的准确性,误报率为 2.58%。
2. 未知加密恶意流量检测。在无法通过对有效传输载荷提取特征的情况下,基于 LSTM 的加密恶意流量检测模型经过为期两个月的训练之后,可以识别许多不同的恶意软件家族的未知加密恶意流量。
3. 恶意(僵尸)网络流量检测。利用深度学习且独立于底层僵尸网络体系结构的恶意网络流量检测器 BoTShark,采用堆叠式自动编码器 Autoencoder 和卷积神经网络 CNN 两种深度学习检测模型,以消除检测系统对网络流量主要特征的依赖性。该检测器实现了 91% 的分类准确率和 13% 的召回率。
4. 基于人工智能检测恶意域名的方法。针对威胁情报误报/漏报多且不可控的特点,将威胁情报作为训练集,采用支持向量机 SVM 学习威胁情报背后的数据特征,通过人工智能强大的泛化能力,减少漏报并让安全系统变得可控。
5. 运用机器学习检测恶意 URL。结合域生成算法 DGA 检测的机器学习聚类算法可以获得较高的恶意 URL 检出率,不仅可以检测已知的恶意 URL,并且也能检测到从未暴露的新变种。
6. 新型网络钓鱼电子邮件检测。利用深度神经网络 DNN 对网络钓鱼电子邮件进行检测,并且通过实验证明 DNN 在钓鱼邮件的检测上可以实现 94.27%的检测性能,进一步证明了深度学习技术在自动化网络钓鱼识别中的可行性。
7. 基于人工智能的网络安全平台 AI2。该平台结合无监督机器学习和有监督学习的方法,首先用无监督机器学习自主扫描日志文件,分析人员确认扫描结果,并将确认结果纳入 AI2 系统,用于对新日志的分析。该平台能检测出约 85% 的网络攻击。
8. 基于机器学习的通用漏洞检测方法。这是第一个基于漏洞不一致性的通用漏洞检测方法。区别于已有漏洞检测方法,该方法使用两步聚类来检测功能相似但不一致的代码片段,无需花费大量时间进行样本收集、清理及打标签。同时,该方法采用手工分析聚类结果,以更快定位真正的漏洞。该方法发现了开源软件中未知的 22 个漏洞。
9. 基于深度学习的威胁情报知识图谱构建技术。利用深度置信网络 DBN 训练的模型,对威胁情报的实体和实体关系进行自动化抽龋该方法较浅层神经网络的识别准确率有较大提高,比人工抽取的速率也有很大提高,可为自动化构建威胁情报知识图谱提供有力的保障。
10. 基于混合词向量深度学习模型的 DGA 域名检测方法。首次结合了 DGA 域名的字符级词向量和双字母组词向量,以提高域名字符串的信息利用度,并设计了基于混合词向量方法的深度学习模型,模型由卷积神经网络 CNN 和 LSTM 组成。实验证明该方法有着较好的特征提取能力与分类效果,并在一定程度上缓解了数据不平衡带来的负面影响。
从上述应用研究可以看出,目前人工智能应用研究主要以恶意行为检测为主,在检测成果基础上不断提升响应处置、积极防御和威胁预测的能力。
(三)针对人工智能自身安全问题的攻击
随着人工智能的广泛应用,由于技术不成熟及恶意应用导致的安全风险逐渐暴露,包括深度学习框架中的软件实现漏洞、恶意对抗样本生成、训练数据投毒及数据强依赖等。黑客可通过找到人工智能系统弱点以绕过防御进行攻击,导致人工智能所驱动的系统出现混乱,形成漏判或者误判,甚至导致系统崩溃或被劫持。人工智能的自身安全问题,主要体现在训练数据、开发框架、算法、模型及承载人工智能系统的软硬件设备等方面,具体如下。
1. 数据安全。数据集的质量(如数据的规模、均衡性及准确性等)对人工智能算法的应用至关重要,影响着人工智能算法的执行结果。不好的数据集会使得人工智能算法模型无效或者出现不安全的结果。较为常见的安全问题为数据投毒攻击,通过训练数据污染导致人工智能决策错误。例如,垃圾邮件发送者通过在垃圾邮件中插入“好话”,实现简单的“回避攻击”以绕过垃圾邮件过滤器中的分类器,从而使得恶意邮件逃避垃圾邮件的分类检测(最早研究)。
2. 框架安全。深度学习框架及其依赖的第三方库存在较多安全隐患,导致基于框架实现的人工智能算法运行时出错。来自 360 安全实验室等单位的研究人员,对 Caffe、TensorFlow 和 Torch 三个主流的深度学习框架实现中存在的安全威胁进行了研究,发现框架中存在堆溢出、数字溢出等许多漏洞,其中 15 个漏洞拥有 CVE 编号。
3. 算法安全。深度神经网络虽然在很多领域取得很好的效果,但是其取得好效果的原因及其算法中隐藏层的含义、神经元参数的含义等尚不清楚,缺乏可解释性容易造成算法运行错误,产生对抗性样本攻击、植入算法后门等攻击行为。有研究人员介绍了针对 Gmail PDF 过滤的逃逸攻击,利用遗传编程随机修改恶意软件的方法,实现了对基于 PDF结构特征的机器学习恶意软件分类器的逃逸。该方法不仅成功攻击了两个准确率极高的恶意 PDF 文件分类器,而且可对 Gmail 内嵌的恶意软件分类器进行攻击,只需 4 行代码修改已知恶意 PDF 样本就可以达到近 50% 的逃逸率,10 亿 Gmail 用户都受到了影响。
4. 模型安全。模型作为人工智能应用的核心,成为攻击者关注的重点目标。攻击者向目标模型发送大量预测查询,利用模型输出窃取模型结构、参数、训练及测试数据等隐私敏感数据,进一步训练与目标模型相同或类似模型;采用逆向等传统安全技术把模型文件直接还原;攻击者利用开源模型向其注入恶意行为后再次对外发布分享等。2017 年,Papernot 等人提出一种黑盒模型窃取攻击,通过收集目标分类器的输入和输出构建综合数据集,用于训练目标模型的替代品(本地构建的相似模型),实现对目标模型的攻击。除了最新的深度神经网络外,该方法也适用于不同的机器学习分类器类型。
5. 软硬件安全。除上述安全问题外,承载人工智能应用的(数据采集存储、应用运行等相关)软硬件设备面临着传统安全风险,存在的漏洞容易被攻击者利用。在 Black Hat 2018 大会上,腾讯科恩实验室介绍了在避免物理直接接触的远程攻击场景下,针对特斯拉 Autopolit 自动辅助驾驶系统的攻击测试情况。整个的攻击过程从利用 Webkit 浏览器漏洞实现浏览器任意代码执行开始,最终获得了 Autopilot的控制权。
攻击者可以针对上述人工智能自身存在安全问题发起攻击,其中较为常见的攻击为对抗样本攻击,攻击者在输入数据上添加少量精心构造的人类无法识别的“扰动”,就可以干扰人工智能的推理过程,使得模型输出错误的预测结果,达到逃避检测的攻击效果。此外,对抗样本攻击具有很强的迁移能力,针对特定模型攻击的对抗样本对其他不同模型的攻击也同样有效。
(四)针对人工智能自身安全问题的防护
随着数据量及算力不断提升,未来人工智能应用场景不断增多,人工智能自身安全问题成为其发展的瓶颈,人工智能自身安全的重要性不言而喻。针对人工智能自身在训练数据、开发框架、算法、模型及软硬件设备等方面的安全问题,目前较为常用的防护手段有:
1. 数据安全。分析异常数据与正常数据的差异,过滤异常数据;基于统计学方法检测训练数据集中的异常值;采用多个独立模型集成分析,不同模型使用不同的数据集进行训练,降低数据投毒攻击的影响等。
2. 框架安全。通过代码审计、模糊测试等技术挖掘开发框架中存在的安全漏洞并进行修复;借助白帽子、安全研究团队等社区力量发现安全问题,降低框架平台的安全风险。
3. 算法安全。在数据收集阶段,对输入数据进行预处理,消除对抗样本中存在的对抗性扰动。在模型训练阶段,使用对抗样本和良性样本对神经网络进行对抗训练,以防御对抗样本攻击;增强算法的可解释性,明确算法的决策逻辑、内部工作机制、决策过程及依据等。在模型使用阶段,通过数据特征层差异或模型预测结果差异进行对抗样本检测;对输入数据进行变形转化等重构处理,在保留语义前提下破坏攻击者的对抗扰动等。
4. 模型安全。在数据收集阶段,加强数据收集粒度来增强训练数据中环境因素的多样性,增强模型对多变环境的适应性。在模型训练阶段,使模型学习到不易被扰动的特征或者降低对该类特征的依赖程度,提高模型鲁棒性;将训练数据划分为多个集合分别训练独立模型,多个模型投票共同训练使用的模型,防止训练数据泄露;对数据/模型训练步骤加噪或对模型结构进行有目的性的调整,降低模型输出结果对训练数据或模型的敏感性,保护模型数据隐私;将水印嵌入到模型文件,避免模型被窃取;通过模型剪枝删除模型中与正常分类无关的神经元,减少后门神经元起作用的可能性,或通过使用干净数据集对模型进行微调消除模型中的后门。在模型使用阶段,对输入数据进行预处理,降低后门攻击可能性;在模型运行过程中引入随机性(输入/参数/输出),使得攻击者无法获得模型的准确信息;混淆模型输出和模型参数更新等交互数据中包含的有效信息,减少模型信息可读性;采用访问控制策略(身份验证、访问次数等)限定对模型系统的访问,防止模型信息泄露;对模型文件进行校验或验证,发现其中存在的安全问题。
5. 软硬件安全。对模型相关数据在通信过程或者存储时进行加密,确保敏感数据不泄露;对软硬件设备进行安全检测,及时发现恶意行为;记录模型运行过程中的输入输出数据及核心数据的操作记录等,支撑系统决策并在出现问题时回溯查证。
近几年,也出现了一些针对算法模型评估的工具或产品。瑞莱智慧和阿里于 2020 年分别发布了针对算法模型自身安全的检测平台,除了可对算法模型进行安全评估,还针对模型给出防御增强建议;今年 5 月,微软开源了内部使用的 AI 安全风险评估工具 Counterfit,该工具可被用于进行红队演练、渗透测试及漏洞扫描,同时在遭受攻击时可以记录攻击事件。
在具体到人工智能业务应用时,还需要结合具体应用场景制定安全机制,确保业务应用的安全性。
二、人工智能应用情况及问题分析
综上所述,人工智能在网络攻防领域已经有较多的应用研究,应用潜力巨大。国内外也在积极探索自动化网络攻防的可能性,但是网络攻防的独特属性及人工智能技术的特点给人工智能在网络攻防领域的应用带来一定的局限性。
(一)网络攻击
人工智能在网络攻击方面的应用已经有了较多的尝试,而且取得了较好的效果。但是,人工智能的作用仍旧受限。在漏洞挖掘方面,目前相关挑战赛及赛题主要考察二进制程序的漏洞挖掘。虽然自动化工具已经显示出了较强的漏洞发现利用能力,但是对有较强的逻辑分析能力的漏洞,还无法完全靠自动化工具去挖掘。
此外,由于人工智能模型所需的计算力、人力等成本较高,现实中采用人工智能技术方法的网络攻击较少。目前,尚未有利用人工智能方法进行大范围网络攻击的真实案例。
(二)网络防御
人工智能的应用大大提升了网络安全的防御水平,但是也存在一些问题。以深度学习为代表的人工智能技术虽然能自动提取特征,但面临数据饥饿、可解释性等问题。数据量越多,人工智能模型的准确性就会越高。但是,在恶意代码检测、软件漏洞挖掘等领域,仍缺乏较好的数据集,导致基于人工智能方法的检测率和准确率较低。使用深度学习等人工智能算法,虽然可以较好识别出未知威胁,却往往知其然不知其所以然,算法模型缺乏可解释性,无法确定威胁来源。
此外,由于人工智能在网络安全领域的应用比较特殊,误报的代价较高,人工智能在网络防御方面的应用多采用人工智能和人相结合的方式。2020年 RSA 大会针对 102 名网络安全行业专业人士的调查结果显示,有近 60% 的受访者认为,相比于人工智能的自动化处理,通过人工验证的网络安全威胁更让人信服。
三、总结展望
人工智能有着独特的价值和优势。攻击者以人工智能为武器,使恶意攻击行为可以自我学习,并根据目标防御体系的差异自适应地“随机应变”,通过寻找潜在的漏洞达到攻击的目的。同时,采用人工智能技术可以改善网络安全现状,能更快地识别已知或未知威胁并及时响应,可以更好地应对复杂的网络攻击。目前,科研机构与产业界已达成共识,融入人工智能技术将成为网络攻防的新常态。人工智能在网络攻防领域的应用还处在初期阶段,人工智能只是辅助手段,距离实现真正的自动化攻防,还有很长的路要走。
(本文刊登于《中国信息安全》杂志2021年第6期)