当你自己与其他人的图像高度匹配时,人脸识别系统还能发挥其作用吗?网络安全公司McAfee生成的对抗性伪图像就骗过了人脸识别系统。
选自http://mcafee.com,作者:Steve Povolny、Jesse Chick,机器之心编译,编辑:杜伟。
在进入正文之前,我们先想象一个场景:如果对象 A(正文中的 Jesse)在航空系统的禁飞名单中,因而无法通过机场的护照人脸识别系统,也从未提交过护照照片。那么有没有办法帮助 Jesse 顺利地通过护照人脸识别系统呢?
近期,世界最大安全软件公司之一的迈克菲(McAfee)对此发起了挑战,成功帮助 Jesse 骗过了护照人脸识别系统,也证明了机器有时较人类更容易出错。
迈克菲是如何做到的呢?它们引入了对象 B(正文中的 Steve),此人不在禁飞名单中,因而不受任何航空限制。所以关键是要利用 Steve 的身份通过护照人脸识别系统,也就是需要提交一张看起来像 Steve 但又能与 Jesse 的实时视频完全匹配的护照照片。
Jesse 创建了一个攻击生成模型,其中提取了 1500 张他们两人的静态照片作为数据集,通过 CycleGAN 和 FaceNet 进行训练。在经过数百次训练迭代后,终于生成了满足要求的护照照片。
最终,这张看起来像 Steve 的护照照片由 Steve 提交给政府,Jesse 使用 Steve 的护照顺利地通过了护照人脸识别系统。
这项挑战由迈克菲高级威胁研究团队(McAfee Advanced Threat Research, ATR)发起,参与人员有 ATR 团队负责人Steve Povolny以及俄亥俄州立大学大四学生、前迈克菲实习生 Jesse Chick。
接下来我们来看这项研究的技术详解。
研究用例:护照验证的实时人脸识别
研究者将用于护照验证的人脸识别作为研究用例。基于人脸识别的护照验证概念非常简单,摄像头拍摄乘客的实时视频或者静态照片,然后验证服务系统会将它们与以前收集的已有照片进行对比。这些已有照片可能来自护照或者美国国土安全部数据库等其他来源。
接着,这些实时拍摄的照片被处理成与目标照片类似的格式,包括图像大小和类型等。如果两者匹配,则护照持有者得到验证。如果不匹配,检查员将会比对登机牌和身份证表格上的照片。
所以,作为一项脆弱性研究,研究者需要分析如何才能破解人脸识别系统,包括预期的操作方法和可能出现的疏忽。他们考虑是否可以利用底层系统的缺陷来骗过目标人脸识别系统。
更具体地讲,研究者想知道是否能够创建护照格式的「对抗性图像」,然后被误验证为目标对象。在此之前,研究者曾进行过针对图像识别系统的数字和物理介质攻击。
概念攻击场景
此外,研究中采用的概念攻击场景很简单。研究者将攻击者称为「对象 A」(Jesse),他在禁飞名单中。所以,如果他实时拍摄的照片或视频与存储的护照照片比对的话,则会立即被拒绝登机并遭到警告,甚至还会被逮捕。
所以,研究者假设 Jesse 从未提交过护照照片。与此同时,同谋者对象 B(Steve)不在禁飞名单中,他协助 Jesse 骗过护照人脸识别系统。
Jesse 是模型黑客攻击领域的专家,他通过自己构建的系统生成了 Steve 的一张伪图像,然后让 Steve 提交给政府。最为关键的是这张提交上去的照片必须看起来像 Steve,又能与 Jesse 的实时视频完全匹配。这样才能帮助 Jesse 顺利地骗过人脸识别系统。
方法选择
在伪图像生成过程中,研究者首先选择使用了 CycleGAN 框架。但是,在这项人脸识别对抗攻击测试中又用到了图像验证系统,所以需要对 CycleGAN 进行扩展。
所以,他们又用到了 FaceNet。研究者意识到,模型不仅需要准确地创建逼真的对抗性图像,而且需要将对抗性图像验证为目标对象。
最终,考虑到需要首先进行白盒测试,以理解整个框架,研究者选择将 CycleGAN 和开源的 FaceNet 变体架构 InceptionResnet v1 相结合。
训练过程
研究者清楚他们需要足够大的数据集来准确地训练攻击生成模型,但在该研究中的数据集要小于很多其他的用例。这是因为他们的研究对象只有两个人:对象 A Jesse 和对象 B Steve,并在将图像输入 FaceNet 时最小化生成的两个人脸嵌入之间的「距离」,同时保持任意一个方向上的误分类。
换句话说,护照照片需要看起来像 Steve,又能完全匹配 Jesse 的实时视频。反过来也是这样。
研究者在包含 1500 张 Jesse 和 Steve 图像的数据集上进行训练,它们都是从实时视频中捕获的静态图像。此外还提供了多种表情和人脸姿势,以丰富训练数据并准确地表示(represent)为想要拍摄有效护照照片的人。
然后,研究者集成 CycleGAN 和 FaceNet 架构,并开始训练模型。
如下图所示,生成器的原始输出非常粗糙,虽然看起来有几分像人类,但辨认起来却非常困难,并且出现了极其明显的扰动(perturbation)。
但随着训练迭代的增加,图像的视觉展示效果出现了明显改观。人脸开始消除一些异常(abnormality),同时融合 Jesse 和 Steve 的特征。具体效果如下图所示:
随着训练迭代的进一步增加,判别器对生成器的输出图像越来越「满意」。虽然还需要处理一些细节,但生成的图像越来越像 Steve 了。
数百次训练迭代之后,研究者终于得到了符合要求的「候选图像」,它可以作为有效护照照片帮助 Jesse 通过护照人脸识别系统。
可以看到,Steve 的伪图像足够真实,能够令人相信它不是计算机生成的。
Demo 展示
下面的三个 Demo 视频展示了使用灰盒模型的对抗攻击。
但是需要注意的,在 Demo 展示中,对象 A Jesse 和对象 B Steve 互换了身份,即 Steve 成为了攻击者,他在禁飞名单中,想要骗过护照人脸识别系统;Jesse 成为了同谋者,他不在禁飞名单中,想要协助 Steve 通过护照人脸识别系统。
也就是说,Demo 展示的内容是 Steve 借助生成的 Jesse 伪图像通过护照人脸识别系统。此外,研究者还添加了一个随机测试对象 Sam,以作为参考。
首先是正向测试(positive test),屏幕右侧为 Steve 的真实、非生成图像。系统在对照 Sam 时是不匹配的,对照 Steve 自己时匹配度 100%。这说明系统可以正确地识别出 Steve 自己。
其次是负向测试(negative test),屏幕右侧为 Jesse 的真实、非生成图像。系统准确地识别出了 Sam 和 Steve 与右侧 Jesse 不是同一个人。这说明系统在非对抗性条件下可以正确区分不同的人。
最后是对抗性测试(adversarial test),屏幕右侧为模型生成的 Jesse 的对抗性或者伪图像。由于 Sam 不在 CycleGAN 训练集中,所以他与右侧的 Jesse 不匹配。攻击者 Steve 则对误分类为 Jesse。
所以,在这种对抗性攻击场景中,如果护照扫描仪完全取代人类检查员,则它已经误认为攻击者 Steve 与护照数据库中同谋者 Jesse 的伪图像是同一个人。由于 Jesse 不在禁飞名单中,也没有任何其他限制,所以 Steve 能够以 Jesse 的身份通过机场人脸验证并顺利登机。
而如果这时有人类检查员的参与,则很可能会辨认出 Steve 与护照上的 Jesse 伪图像并不是同一个人。这也由此说明了人脸识别系统较人类更容易出错。
目前,该研究已经在白盒和灰盒攻击测试中取得了进展,并实现了很高的成功率。他们希望启发或者与其他研究者合作进行黑盒攻击测试,从而证明该研究同样适用于护照验证系统等真实世界的目标,并由此对这些系统做出改进。
原文链接: