机器学习是人工智能的一个分支,通过经验学习和适应的技术来使计算机模仿人类认知。其特征是基于经验和模式学习,而非基于推论(原因和结果)学习。目前,机器学习方面的深度学习已经能够自主建立模式识别模型,而无需再依靠人类来构建模型。
传统网络安全技术很难检测到随着时间推移而演变的新一代恶意软件和网络攻击,基于ML的动态网络安全解决方案能够利用以前的网络攻击数据来应对更新但相似的风险。使用AI来加强网络安全可以为用户系统提供更多保护,如通过自动化复杂流程来检测攻击并对违规行为做出反应等。
随着模式识别模型在检测网络安全威胁时变得更为有效,黑客将针对底层模型的工作和学习机制展开研究,寻找混淆模型的有效方法来规避模型的识别,并有望建立起属于攻击者自己的AI和机器学习工具来发动攻击。
下面笔者将与诸君共同分享攻击者将会如何利用AI来达到目的。
1. 恶意软件逃逸
大部分恶意软件都是通过人工方式生成的,攻击者会编写脚本来生成电脑病毒和特洛伊木马,并利用Rootkit、密码抓取和其他工具协助分发和执行。
这个过程能加快么?机器学习可以帮助创建恶意软件吗?
机器学习方法是用作检测恶意可执行文件的有效工具,利用从恶意软件样本中检索到的数据(如标题字段、指令序列甚至原始字节)进行学习可以建立区分良性和恶意软件的模型。然而分析安全情报能够发现,机器学习和深度神经网络存在被躲避攻击(也称为对抗样本)所迷惑的可能。
2017年,第一个公开使用机器学习创建恶意软件的例子在论文《Generating Adversarial Malware Examples for Black-Box Attacks Based on GAN》中被提出。恶意软件作者通常无法访问到恶意软件检测系统所使用机器学习模型的详细结构和参数,因此他们只能执行黑盒攻击。论文揭示了如何通过构建生成对抗网络(generative adversarial network, GAN)算法来生成对抗恶意软件样本,这些样本能够绕过基于机器学习的黑盒检测系统。
如果网络安全企业的AI可以学习识别潜在的恶意软件,那么“黑客AI”就能够通过观察学习防恶意软件AI做出决策,使用该知识来开发“最小程度被检测出”的恶意软件。2017 DEFCON会议上,安全公司Endgame透露了如何使用Elon Musk的OpenAI框架生成定制恶意软件,且所创建的恶意软件无法被安全引擎检测发现。Endgame的研究是基于看起来有恶意的二进制文件,通过改变部分代码,改变后的代码可以躲避防病毒引擎检测。
今年3月发表的论文《Adversarial Malware Binaries: Evading Deep Learning for Malware Detection in Executables》通过研究使用深度网络从原始字节中学习恶意软件检测方法所存在的漏洞,提出了一种基于梯度的攻击:输入数据的微小变化会导致在测试时的错误分类,因此只需在每个恶意软件样本末尾更改少量特定字节,就可在保留其入侵功能的同时逃避安全检测。结果显示修改少于1%的字节,对抗恶意软件二进制就可以高概率躲避安全检测。
2. 高级鱼叉式钓鱼攻击
对抗机器学习的一个更明显的应用是使用智能社会工程中的文本到语音转换、语音识别和自然语言处理类似算法,通过时间递归神经网络教授软件的电子邮件写作风格,使其真实性、可信性得以增强。因此从理论上来说,网络钓鱼邮件可能将变得更加复杂和可信。
在迈克菲实验室2017年预测中表示,犯罪分子将越来越多地利用机器学习来分析大量被盗记录,以识别潜在受害者,并构建能够更加有效针对这些人的内容详尽的钓鱼类电子邮件。
此外,在2016年美国黑帽会议上,John Seymour和Philip Tully发表了题为《Weaponzing data secience for social engineering:automated E2E spear phishing on Twitter》的论文,提出一种时间递归神经网络SNAP_R,学习如何向特定用户发布网络钓鱼帖子在这里鱼叉式钓鱼将用户发布的帖子作为训练测试数据,根据目标用户(包括发布或跟帖用户)时间轴帖子中的主题动态播种会使得钓鱼帖子更有可能被点击。通过在Twitter社交平台上测试发现,为用户量身定做的钓鱼帖子,其点击率是有史以来所报道过大规模钓鱼攻击活动中最高的。
3. 利用AI击败验证码
目前,对人和机器的区分主要采用“全自动区分计算机和人类的公开图灵测试”(Completely Automated Public Turing test to tell Computers and Humans Apart,CAPTCHA),俗称验证码,以防止人们使用自动化机器人在网站上设置虚假帐户。在登录网站时,用户必须通过解决视觉难题来证明他们是人类,而这需要识别以某种方式失真或动画化的字母、数字、符号或对象。reCAPTCHA项目是由卡内基梅隆大学所发展的系统,主要目的是利用CAPTCHA技术来帮助典籍数字化的进行,这个项目将由书本扫描下来无法准确被光学文字辨识技术(OCR, Optical Character Recognition)识别的文字显示在CAPTCHA问题中,让人类在回答CAPTCHA问题时用人脑加以识别这些文字。
早在2012年,研究人员Claudia Cruz、Fernando Uceda和Leobardo Reyes就发布了一个机器学习安全攻击的例子。他们使用支持向量机(SVM)以82%的精度破解了图像运行系统reCAPTCHA,也正因此所有验证码机制都进行了针对性的安全改进,面对这些新型验证码系统研究人员则开始尝试使用深度学习技术予以破解。
Vicarious一直在开发针对概率生成模型Recursive Cortical Network(RCN)的算法,旨在通过分析图像中的像素来识别物体,以查看它们是否与物体的轮廓匹配。2013年,Vicarious宣布它已经破解了Google、Yahoo、PayPal和Captcha.com使用的基于文本的验证码测试,其准确率达到了90%。标准的reCAPTCHA测试中,软件可成功解开三分之二的验证问题。在机器人检测系统测试中,雅虎验证码的成功率为57.4%,PayPal的成功率为57.1%。
去年BlackHat上的“我是机器人”研究揭示了研究人员如何破解最新的语义图像CAPTCHA,并比较了各种机器学习算法。
4. 绕过安全检测的钓鱼网页
《Cracking Classifiers for Evasion: A Case Study on the Google’s Phishing Pages Filter》指出,Google中的钓鱼网页分类器是通过机器学习训练得到的,攻击者利用逆向工程技术获取到分类器的部分信息后,藉此所生成的新钓鱼网页能够以100%的成功率绕开Google的钓鱼网页分类器。早期开发的分类器属于研究性质,在部署于客户端环境中时,其安全性并没有得到应有的重视。
研究客户端分类器安全挑战所选取的案例为部署在Chrome浏览器上、用户数量超过十亿的谷歌钓鱼网页过滤器(Google’s phishing pages filter ,GPPF),针对客户端分类器的新攻击方法被称为分类器破解。成功破解GPPF分类模型,可以从中获得足够知识(包括分类算法、得分规则和特征等)以进行有效的躲避攻击。攻击者通过逆向工程能够获取到84.8%的评分规则,其中覆盖了大部分的高权重规则。基于这些破解信息实施针对GPPF的两种规避攻击,在100个真正的钓鱼网页进行测试后发现,所有钓鱼网页(100%)都可以很容易地绕过GPPF检测。研究表明现有的客户端分类器很容易受到分类器针对性攻击。
5.让机器学习引擎“中毒”
一个更加简单而有效的AI利用技术是让用于检测恶意软件的机器学习引擎“中毒”,使其无效,就像过去犯罪分子对杀毒引擎所做的一样。机器学习模型需要从输入数据中进行学习,如果该数据池“中毒”,则输出也会“中毒”。深度神经网络训练需要大量的计算资源,因此,许多用户在云端进行训练或依靠预先训练的模型进行识别,并针对特定任务进行微调。纽约大学的研究人员在论文《BadNets: Identifying Vulnerabilities in the Machine Learning Model Supply Chain》中展示了外部训练的神经网络存在的漏洞:对手能产生一个恶意的训练网络(后门神经网络或BadNets),同时在MNIST数字识别和交通标志检测任务中展示了BadNets攻击的有效性。
黑客正在越来越多的利用AI漏洞构建“对抗样本”进行躲避攻击,目前所能采取的应对措施主要是:用博弈论或者概率模型预测攻击策略构造更强健的分类器,采用多个分类器系统增加规避难度,并优化特征选择来制作特征平均分配等。更多的AI攻击应对方法还在探索之中。