当今说到渗透测试,第一时间脑海中浮现的还是 SQL Injection
、RCE
、LFI
等这样针对软件层面的漏洞。然而随着 21 世纪计算机行业的快速发展,程序员在编码层面的规范越来越多也越来越完善,软件层面的漏洞正在被大量地消灭中。上世纪 60 年代,社会工程学正式作为科学出现。其主要思想是随着计算机科学的发展,人为因素将成为安全的最大软肋。社会工程主要利用人性的弱点,对人做欺骗,达到通过内部人员得到有效身份信息的目标。硬件入侵作为社会工程学的一个分支,近年也得到了很大的曝光。
以 Teensy
为代表的 USB HID 攻击设备主要是利用了 USB 协议的漏洞。在操作系统中,有以下规定:
- 任何符合 HID 接口协议规范的设备都可以称为 HID 设备
- 操作系统内置了 HID 设备的驱动驱动,无需额外安装
- 定义 HID 的接口种类和数量由设备申请自由决定
- HID 设备拥有直接操作主机的特权
- 主机不会判定 HID 设备发送的数据的可靠性
所以,通过修改芯片信息,我们可以让操作系统将我们的 USB 设备识别为任意一个 HID 设备,并使用该 HID 设备的特权向操作系统发送数据。例如,我们可以通过对 Teensy
开发板编程使其被操作系统识别为一个键盘,然后按照预先编程向操作系统输入键盘指令,已实现下载恶意脚本并运行的行为。
针对 USB 接口协议的这个漏洞,目前业界已经有一定的解决方案了。
- 拓展加固 USB 协议,在原有协议基础上拓展了认证,签名算法。其缺点为不向下兼容。
- 对 USB 属性枚举检查,由用户决定设备是否具有威胁。其缺点为自动化水平不高,内容单一,防护力不强。
- 基于击键特征的检测技术,以正常输入作为模版,利用键动力学身份认证算法,鉴别身份。其缺点为只能识别模版库中存在的内容。
《计算机学报》2019年第五期的《USB HID攻击检测技术手段》提出了一种基于多元击键特征的 USB HID攻击检测算法。该算法根据人类用户自然击键习惯将数据流切分为特征稳定的短击键序列,通过融合隐藏在噪声中的多组短序列数据提取出稳定的多元特征,并利用这些特征汇聚成为特征知识,为 SVM 分类器提供决策依据。 基于这种算法的安全策略实现了实时认证实时授权的检 测机制并从数据组表征的自然击键事件中得到了丰富稳定的击键特征。这些特征不单是击键间隔,还包括错误率、 速度、节奏波动等多元特征。该文提出的 HID 攻击检测算法在真实环境中的测试显示且分类准确率达到了 99.9127%。相比现有的检测技术,该算法具有自动识别、高准确率、高鲁棒性等优点,可以部署在个人电脑上保护 用户隐私,可以抵御包括 BadUSB 在内的多种恶意工具的攻击。
简单的说就是继当今已经普及市场的指纹识别和人脸识别后,我们或许可以通过这个技术开发出第三个民用生物识别系统,通过对人敲打键盘的各种数据来鉴别当前这个人的身份。论文的内容比较好懂,而且我认为比较有实际意义,比较推荐阅读一下。
本文作者 Auther:Soptq
本文链接 Link: https://soptq.me/2019/09/04/detect-usbhid-attack/
版权声明 Copyright: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明出处。 Content on this site is licensed under the CC BY-NC-SA 4.0 license agreement unless otherwise noted. Attribution required.
发现存在错别字或者事实错误?请麻烦您点击 这里 汇报。谢谢您!