对门控系统的攻击面检查

一、引言

近年来,许多企业出于对安全的考虑,开始逐步使用电脑化的门控系统:要求用户拥有中央数据库授权的口令或者刷卡,以确保那些没有授权的人无法进入公司区域或者公司的受限区域。

没有完美的系统,迄今为止大多的尝试都围绕着社工方面(诸如紧随溜进)或者设法占有必要的令牌以绕过该套系统。

但是攻击者通过利用门控系统自身的软硬件弱点也是可以进入的。

在本篇文章里,我们将展示一款在门控系统市场领先产品的严重安全漏洞, 通过它们不仅能够获取安全场所的访问权限,也可以获取所在企业的机密信息。

这些弱点包括,但不限于:缺少默认配置密码,无需认证的控制端口, 硬件缺少认证, 攻击者对数据库的可能拷贝, 利用缓冲区溢出攻击造成的拒绝服务, 硬编码的密钥导致的可能性的欺骗。

为避免厂商解决问题期间可能的恶意攻击, 我们不会指明哪家的门控系统有问题, 有些技术细节也做了处理。 我们期望待厂家解决这些问题之后,再发布一篇完整的文章,包括那些具体的细节。

我们试图概述这些系统的安全问题, 而不是在某个点上深入研究, 所以进一步的研究纲要也是必须的。 在稍后的后续研究章节里有相关大纲。

通过该项研究, 我们建议有关机构应该尽可能的将他们的物理安全设备同网络隔绝, 以最小化一个沦陷的系统对其他系统的突破。

二、背景

我们有一款门控系统, 由英国一家占有较大市场份额的厂商提供。 该系统包含两部分——运行在微软Windows机器上的软件管理服务器; 一个定制的物理控制器,上面跑着一些软件组件,以便连接到管理服务器上。

在研究期间, 我们试图识别系统的痕迹, 发现系统上的弱点, 尤其是那些造成未授权访问的。

三、门控制器

我们所检测的这款门控制器是问题制造商的最新可用款, 因此可以对该类系统的现存风险做一个现实的评估。

每个控制器就是一个定制的硬件,由电池供电。 与两块门相连,每个都有一个进入时读取器和一个锁(必要时,出来的也有)。 同时还有一个辅助的输入设备(用于输入PIN码), 一个输出设备——用作门开之后的状态显示灯。

最重要的是,控制器连接到了管理服务器上。在老的款型中,通过串口连接, 但在新款里,还可通过IP进行连接,由一款流行的串口转以太网的设备提供。

这个串口转以太口的设备可通过web和telnet方式远程管理, 在其默认的配置中, web接口和telnet访问都没有配置密码。

控制器在其默认配置里提供了几种连网服务。 下面我们将介绍其中所发现的漏洞:

3.1 控制端口

通过该控制端口可配置控制器。 虽然所用协议的具体细节尚未公布,但第三方的研究者已经在网上发布了一些相关信息。

它既不需要也不支持认证,指令可以通过UDP直接发送到目标主机或者广播到广播域里的所有设备。

特别的,如果web和telnet接口设置了密码,一个Get配置请求被发送到该接口, 密码就会被包含在响应中。 如果在控制面板里选择了高级密码选项,该情况就不会出现, 但在基本的默认配置下是这样的。

即使没有这一点,基本模式下的密码也极其危险, 因为不能超过5个字符。

也 可为控制器设置一个新的IP地址。这实际上就成了拒绝服务攻击,因为管理服务器无法与控制器通信。 对于攻击者,控制住控制器本身也是必须的, 因为串口 到IP的转换器只允许一个连接, 管理服务器也试图保持持续的连接。 只有打断管理服务器和控制器间的连接, 攻击者才有可能控制住门。

一旦IP地址被更改了,就无法阻止门控系统被重新配置,系统可以被修改, 或者安装新的软件, 攻击者可以获取到对门的完全控制权。

四、管理服务器

在默认设置下,没有开启防火墙, 管理服务器在网络上暴露了一些服务:

4.1 远程配置服务

有个远程配置端口, 但端口扫描即可使其崩溃, 所以它不是一直可见的。

一旦建立连接, 远程配置服务器在读取指令前,读取4字节,用于创建缓冲区。 如果缓冲太大,程序就会崩溃——所以即使是无意的,也很容易就造成了拒绝服务。 但这并不允许远程代码的执行。

该程序使用了Windows的API调用,利用硬编码的密钥,对C/S间的传送的数据进行加解密, 这就很容易对信息进行拦截、欺骗。 而这些信息本身是以人为可读取的xml形式存在的。

4.2 数据库管理程序

数据库管理程序提供了网络访问,以便可以远程的控制备份的开始和结束。 在没有任何凭据的情况下,也可以轻松的访问它,在攻击者控制下的机器上创建数据库的备份拷贝。

(对此的PoC已经开发出来了,但考虑到漏洞仍然存在,所以进行了裁剪处理)。

这样一来, 攻击者不但可以访问到机密信息(比如员工的名字、PIN码等),还可以与4.1节中提到的更改IP地址联合使用。

一旦将数据库导入到他们自己的控制软件中,攻击者就可以更改控制器的IP, 使其连到自己的服务器上。 这使得攻击者获取了对门的完全控制权,同时还允许授权用户像往常一样认证出入,不会引起啥怀疑。

进行逆向的结果表明,数据库的管理员可以从备份中进行数据恢复——这意味着攻击者可以可以用他们自己的版本对数据进行替换。 但在测试的这个版本中已经不再支持。 在早期的版本中,可能就存在这样的漏洞。

攻击者也可以阻止合法的备份——如果指定了一个错误的或者不可访问的备份地址,备份任务就停留在队列中,后续的任务会对其进行覆盖。

4.3 其他软件

一个独立的软件模块(我们这里不会透露的,以防被识别利用),处理软件和硬件间的通信。它维持持久的连接, 随时记录相关信息。

由于时间的限制,我们对其处理卡号的增删所发送的消息未能进行完全的解码, 但我们发现它对卡号仅是与一个常量进行异或运算来进行加密。

五、进一步研究的方向

鉴于软件和硬件间的消息没有时间戳处理, 所以可以对消息进行回放,将其发送到另一个门控器上,来增加卡号。 然而,要进行这样的尝试, 需要解析初始连接的握手协议, 这个目前还没有成功实现。

我们同样也注意到,软件和硬件模块间的通信包含了一个定期轮询消息,每隔固定的时间间隔发送。少量的其他信息也重复的发送。 这些都有待于解析,但是很可能将来的研究会证明这些都是可预测的,也很容易模仿。

另一个可后续研究的方向是对高级密码选项设置的密码进行破解,以此获取用户帐号。

六、漏洞总结

默认配置

串口转以太的设备上运行的web服务器没有设置密码。

控制端口未认证

无需密码即可通过控制端口对设备的再配置。 没有任何选项可以进行设置。

密码获取

Telnet 和web访问的密码在使用基本密码模式时可以通过控制端口获取到。

未认证的管理接口

在默认的管理服务中没有设置密码, 使得未授权用户也可对管理服务器进行访问。

拒绝服务

设备的IP地址可能被更改,导致管理口无法控制门或者查看信息。

设备侵占

没有任何认证阻止对门控系统的再配置。 如果IP地址被更改了,攻击者可通过安装对门控系统重置、再配置。 这使得攻击者获得对门的完全控制权。

数据库管理程序没有认证

数据库管理没有认证, 允许攻击备份到本地。

硬编码的加密密钥

远程配置服务器用了一个硬编码的加密密钥, 攻击者以此可以对传送中的消息进行欺骗、解密。

对卡号的异或处理

在软件和硬件间进行通信的软件并没有对卡号加密,仅是与一个常量的异或处理。

七、结论

虽然门控系统可以阻止一些初级的攻击者,我们对一款领先品牌的检测表明,即使使用一些相对简单的攻击技巧,也可以获取到系统的控制权。更何况在强烈的攻势之下呢,估计也就很少有用啦。

我们已经发现了系统中的一些漏洞,从用户层面可更改的,到需要厂商来解决的更深层次的。 最为重要的是,控制端口、数据库管理程序认证的缺失意味着攻击者在不引起用户注意的情况下就可以对门控系统进行完全的控制。

在该领域迫切的需要进一步的研究, 因为这份初级的报告表明许多的物理安全系统很难应对或者压根不能应对有针对性的攻击。

考虑到这一点,将物理安全系统同公司的网络隔离是很必要的。攻击者即使获取到对的网络一个很低的访问权限,以很小的代价,就能获取到对机构物理安全设备的整个控制权。

我们建议所有的物理安全系统————不仅仅是门控系统,还有像闭路电视,以及其他任何的可能影响建筑的物理安全的——都应该保证系统和网络间的空隙。 在我们看来这是任何想保护其物理财产的机构至少要做的。

收藏 评论

相关文章

可能感兴趣的话题



直接登录
跳到底部
返回顶部