面部识别设备中存在有风险与漏洞

  • A+

译文声明
本文是翻译文章,文章原作者Vincenzo Ciancaglini,Joey Costoya,Philippe Lin,Roel Reyes
原文地址:https://www.trendmicro.com/en_us/research/20/i/exploitable-flaws-found-in-facial-recognition-devices.html
译文仅供参考,具体内容表达以及含义以原文为准

指纹读取器,虹膜扫描仪和面部识别摄像头等生物识别安全解决方案被广泛用于管理进入禁区的操作。但是这些生物特征认证器通常在计算上很繁琐。例如,传统的面部识别安全解决方案使用外部服务进行计算来验证用户,实时通过摄像机拍摄图像,然后将其发送到进行处理的基于云的服务端。在大规模部署中,用户的验证会出现大量的延迟,并且在大量图像数据发送到身份验证服务中会消耗较多的网络带宽。

为了解决这些问题,安全解决方案制造商正在将边缘计算布置于基于面部识别的访问控制设备。在这种架构下,设备本身就是边缘节点,并且配备齐全,可以直接验证用户图像。这些具有边缘计算功能的设备仅依赖外部服务来进行协调和维护任务。

由于没有在网络上传输用户映像,因此该体系结构减少了延迟和网络带宽消耗。但是,对于在验证过程中配备有更高计算能力和更多职责的设备存在安全方面的担忧。

为了对面部识别设备中存在的安全问题有更细微的了解,我们分析了四种不同模型的安全性:ZKTeco FaceDepot-7B,海康威视DS-K1T606MF,Telpo TPS980和Megvii Koala。

实验设置

设备及其服务器组件(如果适用)是在隔离的测试网络中设置的。我们的安排模拟了这些设备在企业环境中的正常运行方式。如图1所示,该设置包含三个组件:

  • 门禁设备:这是正在测试的门禁设备。
  • 中间人(MitM)设备:此设备用于透明地捕获访问控制设备和相应服务器组件之间的网络数据包。
  • 管理服务器:访问控制设备通常随附一个包含服务器组件的软件套件。服务器组件已安装在此管理服务器中。

    Facial recognition 1.png
    ::: hljs-center

图1.我们用来评估访问控制设备安全性的设置图

:::

设备硬件中的弱点

ZKTeco FaceDepot 7B室内面部识别站

尽管设备本身采用的是加固的平板电脑模具,但设备底部的裸露USB-A端口(如图2所示)仍然易于使用。为设备提供服务的技术人员可以使用此USB端口更新设备的固件,但是恶意用户可能会在设备上安装Android软件包(APK)。

image.png
::: hljs-center

图2. ZKTeco访问控制设备底部的裸露USB端口

:::

Telpo TPS980门禁终端

该设备具有用于面部识别的前置摄像头。升级的型号带有两个摄像头和一个可选的红外摄像头。如图3所示,在设备的背面是RS-485,Wiegand和数字输出的接口,以及用于调试的USB端口。在设备背面也可以看到其序列号。在以下小节中,我们将详细介绍如何在恶意攻击中使用其中的某些功能。

image.png
::: hljs-center

图3. Telpo访问控制设备的正面和背面

:::
滥用管理员访问权限

此设备管理界面的唯一保护是密码。通过使用设备的可见序列号,我们能够使用cURL命令从Telpo云服务器获取设备密码和其他敏感信息:

image.png
获取密码后,我们可以自由管理该设备。此访问级别有权限的操作包括创建新用户和更改设备参数(例如,活动检测)。(动态检测功能可以区分静态图片和真实的活人。关闭此功能会使设备更容易受到静态图像的欺骗。)

另外,由于连接到Telpo云帐户的所有设备共享相同的密码,因此我们也能够访问其他设备。

使用通过序列号获得的client_secret信息(在前面的代码片段中突出显示),我们还可以发现可用于远程管理设备的access_token密钥。我们在以下cURL命令中显示此代码:

image.png
使用access_token密钥,我们现在可以远程管理连接的设备。可能的远程管理任务包括获取用户列表(包括他们的照片),注册新用户以及更新用户的详细信息(例如姓名和照片)。使用此技术时,可能会阻止恶意行为者的唯一途径是密钥在生成后一小时过期。

通过USB端口加载恶意文件

该设备的功能类似于普通的Android设备。这意味着恶意行为者可以使用USB端口启用MTP(媒体传输协议),并以其默认配置在设备之间来回传输文件。幸运的是,Telpo禁用了命令行工具Android Debug Bridge(adb),该工具可使用户直接与Android设备通信以进行应用程序安装,系统修改,文件传输和其他设备操作。

但是,仍然可以通过连接到USB端口来收集用户信息。注册用户的面部存储在/ Telpo_face / Registered Image /路径中。攻击者可以访问这些文件,每个文件都使用用户名和内部ID命名,例如“ John Doe-1368.jpg”。

未加密和不安全的网络流量

ZKTeco FaceDepot 7B室内面部识别站

设备和服务器之间的网络流量是通过纯文本HTTP完成的。这为恶意行为者留下了开放的途径,然后他们可以轻松地访问通往IP摄像机设备的网络,并嗅探设备与服务器之间的网络流量。从那里,恶意行为者可以获取进行攻击所需的信息。

在这种情况下,恶意行为者可以收集的最重要数据是令牌值。这是设备和服务器之间的共享机密,在设备首次向服务器注册时设置。因为令牌值随设备的每个HTTP请求附加到cookie头,所以我们能够获得令牌值,如图4所示。

image.png
::: hljs-center

图4.作为cookie存储的令牌值

:::
从我们观察到的结果来看,服务器识别IP摄像机设备的唯一方法是通过此令牌值。如果获取了令牌,则任何HTTP客户端都可以模拟服务器上的访问控制设备。在我们的例子中,我们使用cURL在获得令牌后模拟访问控制设备。我们还观察到令牌值似乎没有过期。两周后使用相同令牌进行的同一实验仍成功进行了攻击。

通过cURL注册新用户

具有管理员访问摄像头设备权限的人员可以添加新用户。管理员拍摄新用户的照片和个人详细信息,然后设备将信息上载到服务器。如前所述,服务器通过令牌值(由于流量的明文性质而容易获得)来对设备进行身份验证。

使用获得的令牌值,我们能够向服务器发送模拟用户注册流量的HTTP请求。以下cURL命令序列将一个新用户注册到服务器:

image.png
第一个cURL命令为我们的新用户注册元数据。在这种情况下,用户ID和PIN都设置为“ 11111”,特权设置为“ 0”(普通用户),名称设置为“伪造”。第二个cURL命令为我们的新用户设置照片。这张照片将成为面部识别的基础。设备将图像上传到服务器,然后服务器将照片分发到其他连接的访问​​控制设备。

userdata.post文件包含我们通过POST提交给服务器的数据。在我们的例子中,文件包含以下内容:

image.png
在服务器与连接的访问​​控制设备之间的下一个同步事件上,新用户将被所有设备识别。

通过cURL将用户提升为管理员

使用令牌值也可以将用户提升为管理员。为此,我们使用了以下cURL命令:

image.png
cURL命令将特权设置为“ 14”,这是使用户成为管理员的值。服务器和所有连接的IP摄像机的下一次同步后,此用户将识别新管理员。

如前所示,具有获取的令牌值的任何人都可以模仿设备和服务器之间的网络流量。我们还发现,可以收获用户照片并从更新命令中获取数据。

Megvii考拉人脸识别门

Megvii Koala有两个版本:一个在线版本,其中数据库托管在云中;一个离线版本,用户在本地托管数据库。在脱机版本中,访问控制设备和服务器之间的网络流量是通过HTTP完成的。由于HTTP流量的纯文本性质,此版本容易受到远程攻击。

我们发现可以模拟已连接的访问​​控制设备并发送将识别并验证的服务器数据。为此,我们使用了设备的媒体访问控制(MAC)地址,该地址可以通过Nmap在网络上以明文形式找到,也可以(在某些情况下)在设备背面打印出来。我们发送了带有MAC地址的cURL请求,以诱骗服务器认证注册用户并打开门。以下是此技术的示例:

image.png
它使用以下值:

  • MACADDRESS:这是连接的访问​​控制设备的MAC地址。
  • 0:这是为fmp_threshold设置的值,以禁用活动性检测例程。
  • mugshot.jpg:这是预先注册的用户的照片。服务器将使用该图像进行面部识别程序。

如果操作成功,则服务器将返回以下JSON数据:

image.png
返回的JSON数据的重要部分如下:

image.png

如果can_door_open的值为“ true”,则将向门发出信号以释放锁并打开。

这种方法要求恶意行为者首先拥有注册用户的图像,他们可以很容易地获得这些图像-他们可以简单地在社交媒体平台上搜索公司员工的照片。有了图像,即使实际用户不在附近,他们也可以远程解锁门。

海康威视DS-K1T606M人脸识别终端

对于此设备,我们注意到与服务器的通信似乎是编码的自定义二进制格式。有迹象表明该协议未加密。例如,可以从网络数据包中读取设备的序列号。

但是,即使所使用的协议是二进制编码的,也没有记录在案,仍然有可能从服务器和设备之间的网络流量中获取数据。当新用户使用设备注册其信息和面部图像时,该设备将在下一次服务器同步期间将该数据上载到服务器。在同步过程中,可以从网络流量中获取用户信息甚至是面部识别图片。

最佳做法和缓解措施

针对特定技术获得的安全实践很少转移到不同的介质中。当我们查看将HTTP用于API通信时,这一点很明显。HTTP是在1990年代为桌面Web浏览器引入的,多年来,安全性实践得到了改进:强化协议,确保通信被加密,确保会话不可重用。边缘计算是一种相对较旧的技术的相对较新的介质,许多边缘设备制造商尚未采用这种安全措施。我们的案例研究表明,诸如访问控制摄像头之类的关键设备如何依赖经过实践检验的协议(如HTTP),但是部署的系统却缺少某些安全点。

为了减轻依赖这些设备所涉及的风险,企业用户可以遵循以下安全部署准则:

  • 检查设备本身的安全性,并对任何基于边缘的安装执行风险分析。
  • 管理硬件弱点,例如可见的设备信息和可访问的端口。
  • 将边缘设备及其服务器隔离在网络空间中,并使外部用户无法访问它们。
  • 采用基于网络的IP过滤(例如,以防火墙或访问控制列表的形式),以仅允许来自批准的网络端点的通信。