编者按:本文来自于微信公众号 “量子位”(微信公众号:QbitAI), 动点科技经授权发布。

危机纪年第 8 年,正准备进入冬眠的面壁者罗辑感染了时下流行的 “轻流感”。

一开始,他的症状和别人差不多,流鼻涕、嗓子疼。

可是两天后,情况变得不一样起来,罗辑开始发烧,到了夜里,病情更是急剧恶化,呕吐、吐血等等症状相继出现。

到第二天凌晨,他休克了,嘴唇发紫,身上几乎看不到生命迹象。

——《三体 II 黑暗森林》

如果你还对《三体》有印象,大概记得这个名叫 “基因导弹” 的暗杀武器。它可以大范围散布,对一般人影响极其轻微,但是,一旦它识别出了暗杀目标的基因特征,就会在这个人的血液中制造致命毒素。

在计算机的世界里,也有这样的病毒。

今天,IBM 研究院在计算机安全大会 BlackHat 上展示了他们制造的恶意软件:DeepLocker。

这个恶意软件运用 AI 来识别攻击对象,有针对性地发作。而在目标出现之前,它只会藏身在普通的软件之中默默休眠,几乎没有一个病毒该有的特征,隐蔽性极强。

人脸识别、地理信息、语音识别、全方位数据分析等等方式,都可以用来锁定攻击目标。

也就是说,这是一个可能只有你自己会中招的电脑病毒。

IBM 说,他们制造这个 AI 病毒,是为了研究 AI 在危险分子手里会被拿来干什么坏事。

箱子里的 WannaCry

为了展示 DeepLocker 的能力,IBM 设计了一个概念验证测试:

把大名鼎鼎的 WannaCry,藏到一个普普通通的视频会议软件里,让它在认出某个人的脸时解锁、执行。

WannaCry 去年 5 月爆发,被称作 “自熊猫烧香以来影响力最大的病毒之一”,影响了至少 150 个国家、30 万名用户,造成损失 80 亿美元。被感染的电脑会锁定,弹出一个索要比特币的对话框。

原本的 WannaCry 利用 Windows 系统漏洞传播,打上安全补丁就可以有效防范。

而藏在视频会议软件里的 WannaCry 就不一样了:用户会主动下载安装使用,在攻击发动之前,就算感染了全世界的电脑,也是无声无息。

有多少人用这个软件来开视频会议,DeepLocker 就能看见多少人的脸。然后,它会在帮人开会的过程中,悄悄将人脸输入到自己的 AI 模型里进行识别,除此之外毫无异常。

如果攻击目标出现在视频会议之中,异常立刻就来了。DeepLocker 识别出目标,就会启动 WannaCry。

在这个测试里,DeepLocker 就是锁着 WannaCry 的箱子,而攻击目标的脸,就是它的钥匙。

道高一尺,魔高一丈

既然想用强大的病毒,为什么还要把它锁进箱子里呢?

做好隐蔽工作,能让病毒更广泛地传播,更有效地骗过所有人、所有防火墙的眼睛,渗透到那些防范严密的地方。

纵观计算机病毒的发展历程,可谓道高一尺,魔高一丈,帮病毒伪装成安全无害的样子,蒙混到各种系统之中的方法,层出不穷。

上世纪 80 年代的病毒还很单纯,通过改变有效载荷,隐藏在程序中,迷惑系统放他进门;随后,反病毒行业炼成了分析混淆代码的能力,可以推断出这种病毒的恶意意图。

90 年代,恶意软件作者们开始给恶意负载加密来蒙混过关,让恶意代码只有在被解密到内存中、即将执行的时候才能检测到;反病毒行业祭出了虚拟运行软件、让病毒暴露本质的沙盒。

2000 年之后,杀毒软件普及,为了想逃过沙盒的检查,有了检测到自己在虚拟环境中就停止执行的病毒;

而在目前的 2010 年代,病毒已经不再针对所有电脑 “大杀特杀” 了,而是通过对目标属性的检测,找出攻击目标,仅仅对设定的目标发动攻击。

名盛一时的 “震网”(Stuxnet)就是这样。它在全球范围传播,感染了伊朗 60% 的个人电脑,却不发动全面的攻击。

专家认为,这个病毒的目标是伊朗的铀浓缩设备,只有遇到西门子 SIMATICWinCC 监控与数据采集(SCADA)系统,才会发起攻击。

就像一个藏身于角落的狙击手。

今天的 DeepLocker,运用 AI 把病毒的针对性和隐蔽性又提升了一个等级。

病毒怎么认出攻击目标?

IBM 做出的这个 DeepLocker,是一个只攻击特定人员的计算机病毒。

搭载了人工智能模型的 DeepLocker,可以将正常的应用、病毒、和目标属性组合在一起,拼成一个看起来人兽无害的 “乖乖女”,无论用静态、动态还是手动分析的方法来分析这只 “乖乖女”,系统都无法监测出有什么问题。

但是,当 “乖乖女” 碰到不同的用户,她却表现出了不同的样子:

碰到不符合目标属性的用户,“乖乖女” 不把他当做攻击目标,就变成了一个外表美丽、内心邪恶的 “绿茶婊”,表现出正常的样子,;

可是如果她碰到了符合目标属性的用户,“乖乖女” 分分钟变成了 “女魔王”,露出一脸恶毒样,开始大肆攻击她的设定目标。

如此一来,正是那些不符合目标属性的 “无知用户” 的纵容,让 “乖乖女” 更容易传播,有机会接近目标用户,使目标用户中招。

而病毒又是怎样去识别目标的呢?

前文提到的攻击铀浓缩设施的震网是用的传统的 “if…else” 结构,如果发现系统中安装了西门子的 STEP7,就启动攻击。

而 AI 时代的目标属性识别则采取了复杂的 DNN 结构,通过 DNN 来判断多个维度的目标属性,在 DNN 判断为符合时,病毒启动攻击。

而能让 DNN 来识别的目标属性则很多,可以是摄像头拍下的用户照片,也可以是用户行为,还可以是用户的地理位置、活动信息、软硬件特征等多种因素。

比如人脸识别。

就像之前那个把 WannaCry 藏在视频会议软件中的例子一样,当 DNN 判断出,电脑摄像头前的人是某个特定的目标人物时,就会启动攻击。

所以,计算机病毒是否攻击你也要看脸了,那些 “看一眼,电脑就炸” 的电子设备杀手们,可能只是长得比较像病毒的攻击目标。

目标属性和密匙被加密到了 DNN 中。

首先,将目标属性和密匙集成在 DNN 中,密匙将病毒加密到隐藏的有效载荷中。

而后,当 DNN 检测到符合属性的目标时,通过恢复钥匙,将隐藏的有效载荷中的病毒解密出来。

而钥匙本身,就是符合属性的目标。

以人脸为例,当系统检测到人脸时,根据面部特征生成高位人脸特征,之后通过钥匙生成模型,将特征转化为一串密码。如果密码正确,也就是说人脸符合目标属性,病毒就会被放出来。

DeepLocker 的优越性在于,一方面不会显示程序正在寻找的内容,比如人脸、组织或环境特征,隐藏它在寻找的人;另一方面,DeepLocker 会完全伪装成人畜无害的样子,隐瞒程序的恶意用途,收起自身的锋芒。

背后的科学家们

现在,我们来介绍一下这项研究的作者。

一作 Dhilung Kirat,IBM 汤姆斯沃森研究中心科学家,出生在尼泊尔。除了做研究之外,他还是一名业余摄影师。

别的科学家的主页都是论文,他的主页打开之后,画风是这样:

这样:

这样:

简直不要太美丽。

二作 Jiyong Jang 也是汤姆斯沃森研究中心的亚裔科学家,本科和硕士毕业于韩国延世大学,后来去了 CMU 读博。

最后一位作者 Marc Ph. Stoecklin,IBM 认知安全和网络情报团队的负责人,曾就读于洛桑理工学院和瑞士联邦理工学院。