USB,Universal Serial Bus(通用串行总线),是一种计算机与外围设备进行数据交互的通信协议
USB协议
USB2.0 或 USB3.2, 指的是传输标准; 而USB Type-C 或 USB Type-A, 指的是物理接口
USB(HID)描述符
USB的硬件端口是统一的,但是USB设备却是多种多样的,USB主机根据USB设备的描述符来区分不同的USB设备。
每一个USB设备都有自己的描述符,当插入USB设备之后,主机会向从机发送命令,从机收到命令之后,会返回特定的描述符信息。主机通过解析收到的描述符,来识别设备的相关信息,这个过程,就是设备枚举(enumeration)过程。
USB有5种标准设备描述符,分别是:设备描述符、配置描述符、字符串描述符、接口描述符、端点描述符。
技术路线
通过分析USB.HID恶意行为的特点及利用的漏洞,构建相应的恶意行为检测特征模型,实现对基于USB.HID恶意行为协议的外设检测与防护能力,保证多种场景下USB外设使用安全。
1、核心流程
-
检查软件所在系统上连接的USB设备有哪些
-
通过软件能够控制系统上连接的USB设备连接、断开的管控能力
-
USB和系统间通信数据流的监测和防护
-
通过黑白名单的方式设置USB访问
-
USB恶意行为协议风险等级划分、风险预警
2、关键技术
1、USB设备插拔监控与控制
通过对USB设备插拔进行监控与控制,筑起针对恶意USB工具的第一道防线。
利用WMI监控“InstanceCreationEvent”事件以及“InstanceDeletionEvent”事件,实现对USB设备插拔的实时监控。
基于对“USB HID恶意行为对抗模型的研究,定义一系列ACL(Access Control List,访问控制列表)规则,结合ACL.匹配机制并利用WDK(Windows Driver Kit)中的Windows API实现对USB设备的动态管控。
2、USB.HID恶意行为按键注入识别
利用Windows钩子机制,在操作系统和应用程序之间设置键盘消息钩子,钩取键盘消息,在键盘消息钩子函数的内部,对键盘消息进行查看、修改、拦截,从而最终完全控制键盘注入内容。
结合组合键检测算法及序列键检测算法,对按键注入内容中存在的单键、组合键及序列键进行识别,从击键键值特征方面,实现USB.HID恶意行为按键注入识别的目标。
基于击键动力学对人类打字习惯的研究,采集大量人类合法用户以及USB.HID恶意行为按键注入的击键数据,并将预处理后的击键数据,例如DUT(down-up time)、DDT(down-down time)、VT(typing speed)、ER(errorrate)等作为数据集,训练基于击键时间戳特征的USBHID恶意行为按键注入的检测模型,从击键时间戳特征方面,实现USBHID恶意行为按键注入识别的目标。
3、USB数据包捕获与分析
对USB数据包进行捕获与分析,还原与审计USB异常行为。
通过创建子进程调用USBPcap命令行工具,并将USB数据包从stdout输出重定向,USB异常行为检测系统实现了USB数据包的捕获,随后根据USB数据的格式解析规范,对不同传输类型的USB数据包进行格式解析,通过数据监视窗口实时显示解析后的USB数据报文,并将其存储,定义USB数据保存时间及存储空间阈值,灵活存储USB数据,将USB异常行为与其对应的USB.数据相关联,实现USBHID恶音行为的还原与审计。
原文始发于微信公众号(数据安全治理技术):USB外设安全检查和防护
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论