刑事侦查学论文

您当前的位置:学术堂 > 法学论文 > 法律论文 > 刑事侦查学论文 >

BadUSB攻击原理、类型及其侦查防范措施

来源:警察技术 作者:郭永帅;王胜和;满超
发布于:2020-03-31 共4579字

  摘    要: BadUSB是2014年黑帽大会提出的恶意硬件攻击技术,其利用USB设备固件漏洞入侵计算机系统,现有的安全系统无法防御,严重威胁了用户的安全。为防范BadUSB入侵及侦查此类案件,研究其发展历史,以BadUSB攻击原理、攻击类型为基础制作BadUSB,分析BadUSB的侦查及防范措施,为公民和公安机关了解BadUSB提供参考。

  关键词: BadUSB; 攻击原理; 攻击类型; 侦查防范;

  引言

  随着硬件技术的飞速发展,USB设备以其灵活性高、兼容性广深受人们的喜爱,USB接口是计算机系统上使用最多、最通用的接口,这也因此受到黑客们的关注,从早期的在USB设备根目录存放autorun.inf文件传播病毒,到HID攻击及现在的BadUSB,USB设备一直都是黑客们研究的重点对象。USB设备的低成本、低门槛已经使得HID攻击随处可见,不难预见Bad USB亦会飞速发展,所以对Bad USB的研究十分有必要。

  一、BadUSB的发展

  (一)USB自动运行攻击

  在早期的互联网发展中,计算机之间的数据交换受限于网络带宽和存储介质容量,为了方便应用,在可移动存储介质(软盘、U盘等)中加入自动运行的功能,在可移动存储介质根目录下添加autorun.inf和setup.exe文件,实现自动播放的功能。基于此,将正常的autorun.inf文件和setup.exe的病毒文件存放在USB根目录,实现对计算机系统的入侵。2011年,微软发布补丁修复,阻断USB自动运行功能,而后USB自动运行攻击进化为USB伪装光盘自动运行入侵。制作方法是将USB量产伪装为CD-ROM光驱,将autorun.inf文件和病毒文件制作成ISO文件写入U盘,这即是Bad USB的雏形。

  (二)USB HID攻击

  随着信息技术的发展,自动播放功能逐渐退出历史舞台,可移动存储介质飞速发展,HID协议成为USB设备常用的协议,HID协议是一种计算机协议,约定了计算机在完成通讯过程时所要遵守的规则,HID协议使得设备之间无需安装驱动就能进行交互。USB HID(Human Interface Device,人机交互设备,如键盘、鼠标等)攻击即是将U盘模拟成鼠标或者键盘,并通过虚拟键盘输入集成到U盘固件中的指令和代码进行攻击,插入U盘后便有一个无形的键盘输入指令进行恶意操作。USB HID攻击最大的特点就是恶意代码隐藏在固件之中,且具有固定的设备,如Arduino、USB RUBBER DUCKY和Teensy USB。
 

BadUSB攻击原理、类型及其侦查防范措施
 

  (三)BadUSB攻击

  在2014年美国黑帽大会上,BadUSB由安全研究人员Jakob Lell和Karsten Nohl提出,并展示了攻击方法,可以说现如今几乎所有USB设备都有成为BadUSB的风险。不同于HID攻击将恶意代码写入Tennsy或者Arduino leonardo U盘芯片,BadUSB则是通过利用USB协议的漏洞,对USB设备的固件反编译,改写USB设备的固件系统进行攻击,并不需要特别定制,只要是可编译的USB设备都有成为BadUSB的可能,BadUSB与HID攻击特点的对比如图1所示。

  二、BadUSB攻击原理

  (一)USB设备内部结构

  以U盘为例,U盘是由USB端口、主控芯片、FLASH(闪存芯片)、底板及外壳构成。其中主控芯片相当于U盘的大脑,负责管理部件和下达指令,与计算机交互,主控芯片实际上是一个低功耗计算机,它通过从内存芯片加载基本的引导程序来启动,类似于计算机系统的硬盘驱动器包含一个隐藏的主引导记录,如图2所示。

  (二)BadUSB攻击原理

  USB设备插入计算机系统之后,需要经过枚举过程才能与计算机进行通信,枚举过程即是向主机申请端口地址,发送设备描述符的过程。在这个过程中,USB设备的信息是由自己提供的,具有可变性。

  USB设备漏洞原理:(1)由于USB设备枚举过程中,USB设备信息具有可变性,即存在USB设备具有多个输入输出的特征,并可以注销再次描述为其他的设备。(2)枚举过程中,有数据通信交换的过程,在USB协议中并没有校验过程,这会导致黑客可以随意的添加恶意数据来攻击计算机系统,如图3所示。

  根据USB设备的漏洞原理,黑客将恶意代码添加至USB设备的固件之中,而安全防护软件对USB设备的正常通信没有任何防御,致使黑客可以轻而易举的入侵计算机系统,造成巨大的损失,如图4所示。

  三、BadUSB攻击类型

  Bad USB属于硬件设施,入侵计算机系统需要对目标进行物理接触,而这种物理接触一般都是利用社会工程学的方式,如扫码赠送BadUSB设备,向目标邮寄BadUSB设备,在目标附近丢弃BadUSB设备诱使其捡到,假装上门维修等等方式,方式多种多样,但目的都是和目标计算机接触,入侵计算机系统。

  (一)键盘模拟方式

  利用社会工程学的方式将键盘模拟方式的BadUSB设备接入计算机,此时计算机系统会将BadUSB识别成一个键盘,从而执行从BadUSB输入的恶意指令,并免疫病毒查杀,从而在计算机系统内开后门提升权限。

  (二)USB设备篡改Windows系统的DNS设置

  将USB设备伪装成交换机,包含DNS服务器地址,但没有默认网关,会使得网络流量仍然能通过正常的Wi-Fi连接,但是所有的DNS查询会发送到USB制定的服务器,导致重定向攻击。

  (三)USB引导扇区病毒

  当U盘被改写成启动盘时,在U盘的固件中反编译一个集成引导扇区病毒的系统镜像,在使用BIOS启动U盘的系统时,先启动固件中隐藏的病毒系统,从而感染引导计算机系统。

  四、BadUSB制作分析

  (一)制作原理

  首先寻找已知的具有BadUSB漏洞的USB型号,重复重置更新USB固件过程,使用抓包软件获取其通信过程,获取USB设备固件命令。其次对USB设备固件进行反编译得到固件的源代码。最后将写好的恶意代码脚本编译为二进制文件.bin,使用烧录器将USB设备镜像同恶意代码文件一同烧录至固件,具体流程如图5所示。

  (二)制作BadUSB

  所需U盘芯片:Chip 2303、Chip 2307、Chip 2309;U盘类型:东芝TOSHIBA THV3SZK-16G-BK;U盘制作环境:.NET 4.0,编译工具Visual Studio 2010 Express,SDCC(Small Device C Compiler,U盘单片机编译器),Psychson项目文件。制作步骤如下:

  1. 编写脚本

  因已知芯片类型,直接编写恶意代码,恶意代码脚本语言为Ducky Script。Ducky Script脚本语法的每个命令驻留在一个新的行上,命令均为大写字母,大多数命令调用击键、键组合或文本串,而有些则提供延迟或暂停。关键代码如下:

 

  2. 编译烧录

  将恶意代码,写入自定义镜像文件,附加正常的镜像写入闪存中,关键代码如下:

  3. 实验验证

  实验环境:Windows7操作系统,i3处理器PC电脑两台,BadUSB一个。在靶机上插入BadUSB,便获得管理员账号Local000,badusb。打开靶机的控制面板-用户账户,发现已有Local000的管理员账户,说明BadUSB入侵成功。

  根据BadUSB的制作过程分析,验证了BadUSB是通过利用USB协议的漏洞,对USB设备的固件反编译,改写USB设备的固件系统进行攻击。同时在攻防练习中,Bad USB拿下目标主机只需要5秒钟,危害不言而喻。

  五、BadUSB侦查与防范对策

  (一)侦查策略

  1. 追根溯源

  Bad USB的产生必定是人为制作,USB设备的来源可以提供许多有效线索。BadUSB设备以U盘为主,一般在购物网站购买,因BadUSB具有消耗品性质,故并非单个购买,且U盘芯片具有固定的型号,芯片具有可编译的特性,如Phison 2303(2251-03),由此可根据购物网站的商家调查收货地址,以犯罪嫌疑人居住地为收货地址展开调查,锁定嫌疑人。

  2. 查找痕迹

  Bad USB在受害者计算机系统上使用,必定会安装相应的USB驱动,可通过查找受害者计算机系统U盘驱动来确定Bad USB驱动型号以及安装时间,32位的计算机系统USB驱动地址为:C:\Windows\System32\drivers,如图6所示,并通过右键属性查看时间戳、数字签名等信息,以此可查找犯罪嫌疑人计算机系统相应的USB驱动及其U盘来固定证据,锁定嫌疑人。

  3. 日志查看

  Windows日志文件记录着Windows系统运行的每一个细节,可以此寻找犯罪嫌疑人的信息,从安全日志中寻找管理员账户的增加和删除;在系统日志可查询计算机系统上传文件的信息和端口的开启信息;在FTP日志中寻找上传FTP的地址信息;在程序日志中寻找邮件发送的地址信息等,可将系统日志导出至日志管理软件,方便查找线索,同时可从防火墙查看出端口访问记录,找出线索。

  4. 取证侦查

  Bad USB入侵计算机系统后,使用取证软件对计算机系统进行数据恢复、侦查取证。查看邮件程序收发信息、DNS的篡改信息、服务器上传文件信息等,对之前的侦查措施有查遗补缺的作用,也可对犯罪嫌疑人的计算机系统进行取证,查找网页历史记录、购物软件等是否存在关于Bad USB的相关信息。

  5. 手印视频侦查

  Bad USB入侵计算机系统必须要和计算机接触,显示器、机箱都容易留下手印痕迹,可使用磁性指纹刷显现指纹,再进行指纹对比,查找犯罪嫌疑人。同时,调取相应监控,以计算机系统BadUSB驱动安装时间为基数,核查监控录像,缩小范围,寻找嫌疑人线索。

  (二)防范措施

  1. 停用命令提示符

  Bad USB的入侵都是在命令行上运行恶意脚本,停用命令行可以阻断BadUSB对恶意脚本的调用,从而在根源上防范BadUSB。停用命令提示符步骤如下:打开“运行”窗口,输入命令“gpedit.msc”并按回车,从打开的“组策略编辑”界面中,依次展开“用户配置”-“管理模块”-“系统”项,从右侧找到“阻止访问命令提示符”项,右击并选择“编辑”项。从打开的“阻止访问命令提示符”界面中,勾选“已启动”项,同时设置“禁用命令提示符脚本处理”,点击“确定”即可完成设置。

  2. 命令行记录工具

  Win10下命令行工具PowerShell自带记录命令行命令功能,命令行记录功能虽然不能起到防范作用,但可以做到最大程度的挽回损失,并根据BadUSB脚本反追踪黑客。由此可以将启动CMD命令行设置为启动PowerShell,并输入命令$MaximumHistoryCount=10000,使其记录PowerShell输入的10000行命令,并通过Invoke-History来查看已经输入的命令,由此实现命令行记录功能。

  3. USB设备白名单

  USB设备通常没有唯一的序列号,但可使用市场上的设备防护软件如Endpoint Protector、USB Block等对USB设备进行授权设置白名单并进行防护。例如USB Block可以针对每一个USB设备进行授权,只有在白名单中的设备才能正常使用。而未经授权的USB存储设备则无法使用,同时也可以阻止其他USB设备的插入,当其他USB设备插入时,需要手动允许,由此可防范BadUSB的入侵。

  4. 磁盘加密

  磁盘加密可以防止计算机系统上的数据泄露,也可以一定程度上阻止Bad USB的入侵。如Windows自带的Bit Locker软件,使用TPM芯片加密保护Windows操作系统和用户数据,使得计算机系统上的数据无法被上传以及篡改。

  5. 禁止USB固件更新

  Bad USB就是利用USB设备固件更新的漏洞制作,禁止对USB设备的更新及使用时检查USB设备的固件可以简单有效的对BadUSB进行防护。

  6. 安装安全防护软件

  安全防护软件如防火墙、360安全卫士、金山毒霸等能有效的限制计算机软件权限提升以及DNS的篡改,安装安全防护软件非常有必要。

  六、结语

  Bad USB是一种新型的恶意软硬件结合的USB设备攻击技术,有多种入侵路径,比之HID攻击威胁更大。一旦通过USB外设或其他途径感染,恶意代码可以隐藏在外设中,避免被系统清除,危害巨大,但并不是无法防范和侦查的,只要提高安全意识,就能防范于未然。与此同时,BadUSB也有很多积极的用法,如U盾、共享加密U盘等等,更值得去研究。

  参考文献

  [1] 姜建国,常子敬,吕志强,董晶晶. USB HID攻击与防护技术综述[J].信息安全研究, 2017(02):129-138.
  [2] 赵司琦,俞继伟,王广田,谢怡宁.基于Arduino的Tennsy Bad USB改良型共享云盾的设计与研究[J].电脑知识与技术,2017(36):36-38+45.
  [3] 吕志强,刘,常子敬,张宁,姜建国.恶意USB设备攻击与防护技术研究[J].信息安全研究, 2016(02):150-158.
  [4] 唐文誉,王轶骏,薛质.高防护环境下的恶意USB设备攻防研究[J].通信技术, 2017(01):144-150.

作者单位:安徽公安职业学院
原文出处:郭永帅,王胜和,满超.BadUSB的分析与侦查防范[J].警察技术,2020(02):68-71.
相关内容推荐
相关标签:
返回:刑事侦查学论文