防护HID攻击的USB硬件外设的设计研究

known 发布于 2025-08-25 阅读(388)

中图分类号:TP309.1 文献标识码:A 文章编号:2096-4706(2025)08-0025-05

Abstract: Aiming at the isue that existing operating system security mechanisms can not securely detect and protect the underlying firmwareof USB devices,this research explores howto monitorand prevent HIDmaliciousatack behaviorbased onacomparativeresearch onvarious defense means.Basedonthe STM32FO3 single-chipmicrocomputer,itdesignsahardware peripheralthatcanautomaticallmonitorUSBdevicesandinterceptHDatacksiatimelymaner.Theprotectionalgorithmof thedeviceisesigndandoptiized,andtargetedprotectiontestingexperimentsareonducted.Thexperimentalsultsow thatthe devicecanimplement fcientandautomaticintercption when necesarywithoutafectingthenoraloperationof USB devices,thereby protecting the security of the computer and its internal files.

Keywords: HID attack; Bad USB;USB protection; hardware peripheral

0 引言

研究目的与现状

信息安全在我们所处的这个时代显得尤为重要,除了来自熟知的软件方面的攻击,硬件攻击的手段也应引起足够的重视,其风险更高,危害更大,防范手段也很有限。大部分防病毒手段是通过软件防护来实现的,杀毒软件功能也日趋完善,能够防止大部分的病毒入侵。然而出现了一种新的攻击方式,它操作方式简单,比较容易掌握。极少有杀毒软件能够对它做出识别,它就是HID(HumanInterfaceDevices)攻击。现如今对HID设备的安全性讨论越来越多,HID的攻击事件也越来越频繁。然而还没有一个非常可靠的防御有威胁的HID设备的解决方案。本研究在对HID的攻击原理及各种防御手段进行研究的基础上,试图设计一种可以有效防御多种HID设备攻击的硬件外设,以防范此类病毒的攻击。

计算机系统运行期间发生的安全隐患主要集中在移动存储设备中和外部设备上[],本研究针对HID的攻击原理,尝试设计出一种能够自动监测USB设备并及时拦截HID攻击的硬件外设,同时又不会影响USB设备的正常运行,并且在必要的时候实施高效的、自动的拦截,从而保护计算机与其内部文件的安全。

1.1 HID设备的威胁性研究

HID攻击的原理是通过一个类似于U盘的设备模拟鼠标或者键盘的信号从而执行某些命令来达到入侵计算机的目的[2]。目前常见的HID攻击设备主要有Teensy USB,RubberyDuck 和 Arduino Leonardo。这几种工具均能实现将远程的木马下载至本机运行,其中RubberDucky甚至可以不需要下载,直接植入木马[3]。由于操作系统默认来自HID设备的信号源自用户操作,从而使得HID设备的攻击指令具有了当前用户的最高权限。具体来说可以实现信息窃取、远程操控、系统破坏,甚至硬件损毁等攻击行为。

1.2HID设备的防护现状研究

目前已出现的针对HID设备防护的产品有一个共同的缺点,那就是会破坏USB接口原有的功能。目前解决方案的原理是直接切断USB接口中负责通信的两条信号线从而使HID攻击设备失效。但是切断了这两根线之后,电脑除了供电,连普通U盘等USB设备也都失去了通信功能。

2 研究过程与方法

2. 1 设计原理

HID设备攻击理论上无法从软件层面进行防御,计算机在启动的时候便开始接收HID信号,操作系统则在启动之后一段时间才开始运行,而杀毒软件(绝大多数)依赖操作系统执行,从而导致HID设备有机会在杀毒软件启动之前就进行攻击[4。要想从根本上防御HID设备,本研究设想从硬件角度入手,通过单片机对USB接口中的两根信号线进行识别,在识别出的内容中一旦监测到有侵略性的内容便拉低信号线电平从而使HID设备失效,图1为设计原理图。

图1设计原理图

2.2 具体的研究过程

2.2.1 自制的HID攻击设备

不管是电脑、手机还是考勤机,几乎所有的电子设备都需要依赖键盘来进行输入,所以便诞生了无处不在的USB标准:HID。键盘的设备基本上都可以被大多数操作系统(Windows,macOS,Android等)自动探测并接入。结合计算机对键盘自动信任和超过1000字/分钟的通过脚本模拟的按键操作,所有传统的安全措施都可以被轻松绕过[5]。而实现这种操作只需要插入一个特制的U盘设备,几秒后就完成了。图2为自制的HID攻击设备,攻击者可以操控这台电脑,获取里面的机密资料,小到个人、大到企业乃至国家的机密资料都有可能泄露。

图2自制的HID攻击设备实物

2.2.2 HID渗透原理解释

HID渗透实质上是通过特殊单片机作为硬件,运行一个可以模拟出键盘信号的程序。BadUSB设备通过模拟类似于“Win+R”“Cmd”“Shutdown”之类的指令的键盘输入来达到破坏电脑系统、提升权限、远程控制等一些危害性很大的破坏行为[。而键盘的使用权限在不进行系统深度修改的情况下是不可以被禁用的(即使有管理员权限)。所以BadUSB所模拟的代码可以在杀毒软件还没执行的时候甚至是操作系统还没有运行的时候就开始工作,所以从根本上通过软件来防御HID攻击是不可靠的。

2.2.3产品初步设计思想及算法实现

通过学习现有杀毒软件的杀毒方式,将所学到的思想应用到“硬件杀毒”中。现在的杀毒软件有一种杀毒技术叫做特征码杀毒,当反病毒软件进行反病毒扫描时,先将被扫描的文件进行脱壳,然后将其特征码与病毒库的记录比对,如果存在相符的则表明这个文件是一个已知的威胁[。在硬件杀毒中也可以采用类似的思路,即通过单片机监测USB设备发送数据时的行为特征来实现,因为HID攻击发生时发送的数据都是有规律的操作,而人为正常的操作不可能有那样的连贯性和规律性,这就是HID攻击与正常操作时的不同之处。

2.2.4 代码实现设计

节选部分源代码,内容如下: #defineDATA_P1

#defineDATA N2

#defineLED3

#define SEGLEN5

#defineFTNUM2

booleanbufferP = 0 :

booleanbufferN

boolean dete=1;

int feature[FTNUM][SEGLEN]; boolean check[FTNUM];

/*

* The representation of states: * 0:P--0;N--0;

* 1:P--1;N--0;

* -1:P--0;N--1;

* 2:P--1;N--1;

* -2:Undetermined

*/

int state;

int Bstate;

int seg[SEGLEN];

void setupO{

pinMode(DATA_P,INPUT);

pinMode(DATA_N,INPUT);

pinMode(LED,OUTPUT);

segInit;

digitalWrite(LED,LOW);

//Serial.begin(9600);

}

//程序主循环

void loopO{

bufferP=digitalRead(DATA_P);

bufferN digitalRead(DATA_N); Bstate=getState(bufferP,bufferN);

if(state!=Bstate){ state=Bstate; pushState(state); showSegO; dete=detect1Olldetect2(; if(dete){ detectedO; }

}

}

(20 (204

*当系统检测到威胁之后执行的代码。

*/

void detectedO{

//强制拉低信号线电平,使攻击设备失

pinMode(DATA_P,OUTPUT);

pinMode(DATA_N,OUTPUT);

digitalWrite(DATA_P,LOW); digitalWrite(DATA_N,LOW);

//使LED 闪烁报警

while(1){ //Serial.println(\"Detected!!\"); digitalWrite(LED,HIGH); delay(100);

digitalWrite(LED,LOW); delay(100); } } /* * @ param:在USB的信号针脚读取的原始数据 * @retum:USB 所处于的状态 * The representation of states: * 0:P--0;N--0; * 1:P--1;N--0; * -1:P--0;N--1; * 2:P--1;N--1; * -2:Undetermined */ int getState(boolean P,boolean N) { int Bstate;a if P = =0 amp;amp; N = = 0 { Bstate : } if P = =1 amp;amp; N = =0 { Bstate : = 1 : (204号 if P = =0 amp;amp; { Bstate = - 1 : 3 (204号 if P = =1 amp;amp; { Bstate . 3 (20号 return Bstate; }

3 解决方案设计

本研究编写了上述检测的程序之后,程序逻辑上没有问题但在实际调试的过程中却总是出现无法预料的错误。最后只能通过串口调试一步步监视程序的运行情况,发现UNO单片机的处理速度比较慢,已经开始出现跟不上USB接口时钟周期的问题,于是更换芯片。如图3和图4所示,笔者最先想到的是ArduinoDUE开发板,这块开发板拥有一个32位8 4 M H z 频率的处理器[8],性能比UNO单片机高出一个数量级,并且程序代码通用。于是将原来的代码,烧录到了DUE上并运行,最后发现之前的那些错误都消失了,通过提升芯片的运算能力解决了之前的错误。然而对于一个可产品化的项目,ArduinoDUE无论是从成本上还是从体积上都是无法满足需求的。于是决定将代码移植到STM32芯片上。基于体积、功率、性能、功能、成本几个因素的考虑,笔者最终选择了STM32F030芯片,这款芯片主要的特点是超低功耗和超低成本,而且性能上也能满足需求。

图3STM32实物图图4ArduinoDUE开发板

经过多次调试,最终实现了防御HID攻击的效果,但仍存在一些问题需要解决。其中,体积过大是一个重要问题,监测部分裸露在外,这使得产品非常不便携。后来,笔者在SolidWorks上建模,并使用3D打印机打印了外壳,将开发板放入外壳后,产品体积大幅缩小。图5即为产品完成最终效果图。

图53D打印外壳、手工焊接及成品组装完成效果图

4USB设备防护效果测试

为了防止病毒破坏电脑,笔者在笔记本电脑上运行了Windows10虚拟机来进行防病毒测试,实验设备为BadUSB和普通的U盘设备,步骤如下:

1)首先插入这个特制的USB防护装置然后在上面接入普通的键盘鼠标,还有一个正常的U盘,经过10分钟的正常使用,和对U盘进行读写后没有出现任何干扰操作的行为。

2)然后插入BadUSB,USB防护装置迅速对U盘进行了切断,并且报警灯闪烁,说明防病毒机制起到了作用。

3)最后拔掉USB防护装置,直接把BadUSB插入电脑,电脑弹出了一个CMD窗口,之后BadUSB自动输入了渗透代码,电脑自动关机。这一切的动作非常迅速,用户根本来不及做出反应而且杀毒

软件也没有报警。

通过CMD窗口执行了Shutdown命令,虚拟机随即关机。当然,实验时控制关机是无害的,但如果黑客取得控制权,他们就可以为所欲为。这也验证了攻击是有效的。

5 研究展望

目前该HID攻击防护装置只能防御某种特定的攻击,而要想防御普通的U盘木马等还需要结合杀毒软件,今后设想把Arduino主板换成IntelEdison,可以实现普通木马的防御甚至加入一些Python的人工智能库实现更高级的功能,并且可以增加云查杀功能。

本研究中的USB防护装置暂时只支持USB2.0传输协议,如改用USB3.0接口可以在平时使用时达到更高的传输速度。而且它的体积比较大,只能插USB太浪费,可以增加其他接口和功能使其变成一款外置Dock。产品分级化,既提供应对普通消费者的体积小的便携的版本(缺少云查杀等高级功能),又同时提供针对企业用户的高安全性、高效率的专业版本。通过采用FPGA+IntelAtom双处理器的方案,增加深度学习算法进一步提高检测精确度。

加入串口更新病毒库的上位机程序,设计PCB电路板将整个产品一体化。优化供电方案,避免有时因USB接口接触不良而导致的处理器复位而带来的误检测[1]。建设病毒库云端网站,结合上位机便于用户的更新。让设备的USB接口具备调试功能,降低设备的复杂度。优化产品PCB设计,加入高压保护装置,使得其可以抵御BadUSB高压放电的硬件破坏性攻击。将防御设备内嵌在产品内部,从而进一步提升安全防御能力。

6结论

目前,针对HID攻击的研究还缺少安全风险模型和具体的指导规则,这也将是本研究面临的新难点。文章试图给出特征码等风险验证规则,提出并设计的防范HID攻击的简易设备,能够优化防病毒手段,有助于防护进行攻击的病毒和恶意软件,增强系统的整体安全性。同时我们应树立安全防护意识,做好计算机软硬件的保护,从而更好地提高信息安全水平,适应人工智能时代对系统安全的新需求。

参考文献:

[1]王国勇.网络环境下计算机硬件安全保障及维护策略分析[J].网络安全技术与应用,2021(10):176-177.

[2]蒋平,李冬静.信息对抗[M].北京:清华大学出版社,2007: 1-11.

标签:  设备 

免责声明

本文来自网络,不代表本站立场。如有不愿意被转载的情况,请联系我们。

iidomino cuppor