最新消息:阿啰哈,本人90后,目前单身,欢迎妹子们来撩!.(。→‿←。) 微信:frank01991

新的U盘自动运行——BadUSB原理与实现

Security 林志斌 790浏览

漏洞背景

    “BadUSB”是今年计算机安全领域的热门话题之一,该漏洞由Karsten Nohl和Jakob Lell共同发现,并在今年的BlackHat安全大会上公布。

 

       笔者感觉比较有意思,使用他们的代码做了个类似的U盘,用户插入U盘,就会自动执行预置在固件中的恶意代码,下载服务器上恶意文件,执行恶意操作——注意,这里的U盘自动运行可不是以前的autorun.inf自动运行程序哦,具体的技术细节可以参考后文内容。

视频地址:http://v.youku.com/v_show/id_XODQ0NzYxNDg0.html

      BadUSB最可怕的一点是恶意代码存在于U盘的固件中,由于PC上的杀毒软件无法访问到U盘存放固件的区域,因此也就意味着杀毒软件和U盘格式化都无法应对BadUSB进行攻击。

 

BadUSB原理

       在介绍BadUSB的原理之前,笔者在这里先介绍下BadUSB出现之前,利用HID(Human InterfaceDevice,是计算机直接与人交互的设备,例如键盘、鼠标等)进行攻击的两种类型。分别是"USB RUBBERDUCKY"和"Teensy"。

 

TEENSY介绍

       攻击者在定制攻击设备时,会向USB设备中置入一个攻击芯片,此攻击芯片是一个非常小而且功能完整的单片机开发系统,它的名字叫TEENSY。通过TEENSY你可以模拟出一个键盘和鼠标,当你插入这个定制的USB设备时,电脑会识别为一个键盘,利用设备中的微处理器与存储空间和编程进去的攻击代码,就可以向主机发送控制命令,从而完全控制主机,无论自动播放是否开启,都可以成功。

 

       关于TEENSY,可以参考天融信阿尔法实验室的《HID攻击之TEENSY实战

 

USB RUBBER DUCKY介绍

       简称USB橡皮鸭,是最早的按键注入工具,通过嵌入式开发板实现,后来发展成为一个完全成熟的商业化按键注入攻击平台。它的原理同样是将USB设备模拟成为键盘,让电脑识别成为键盘,然后进行脚本模拟按键进行攻击。

       这两种攻击方式,是在BadUSB公布之前,比较流行的两种HID攻击方式,缺陷在于要定制硬件设备,通用性比较差。但是BadUSB就不一样了,它是在“USB RUBBER DUCKY”和“Teensy”攻击方式的基础上用通用的USB设备(比如U盘)。

 

U盘的内部构造


 

       U盘由芯片控制器和闪存两部分组成,芯片控制器负责与PC的通讯和识别,闪存用来做数据存储;闪存中有一部分区域用来存放U盘的固件,它的作用类似于操作系统,控制软硬件交互;固件无法通过普通手段进行读取。

 

       BadUSB就是通过对U盘的固件进行逆向重新编程,相当于改写了U盘的操作系统而进行攻击的。

 

USB协议漏洞

       为什么要重写固件呢?下面我们可以看看USB协议中存在的安全漏洞。

       现在的USB设备很多,比如音视频设备、摄像头等,因此要求系统提供最大的兼容性,甚至免驱;所以在设计USB标准的时候没有要求每个USB设备像网络设备那样占有一个唯一可识别的MAC地址让系统进行验证,而是允许一个USB设备具有多个输入输出设备的特征。这样就可以通过重写U盘固件,伪装成一个USB键盘,并通过虚拟键盘输入集成到U盘固件中的指令和代码而进行攻击。

 

BadUSB利用代码分析

       笔者对KarstenNohl和Jakob Lell公布的代码进行简单的一个流程解析。

 

        这样一个带有恶意代码的U盘就产生了,更详细的可以搜索Karsten Nohl 和 Jakob Lell公布的代码。

 

总结

     “USB RUBBER DUCKY”、“TEENSY”、“BadUSB”三种最终都是利用了USB协议的漏洞而进行攻击的,“BadUSB”和另外两者的区别在于:BadUSB可以利用普通的USB设备,而不需要进行硬件定制,更具有普遍性。

 

       HID攻击方式有很多种,BadUSB作为其中一种是通过伪装成键盘设备来实现的,同时HID攻击也可以通过伪装成网卡进行DNS劫持攻击。

 

       BadUSB的危害目前局限于单向感染,即USB设备感染PC,暂无发现从PC感染USB设备案例。

 

       为了预防此类安全风险,需要我们在日常使用USB设备时,不要使用陌生的USB设备,避免USB存在恶意代码导致安全风险。

 

延伸:更多的USB接口攻击

 

       通过USB接口攻击的案例很多,BadUSB只是一类,还有通过USB接口横跨PC和Mobile平台进行攻击的案例。

 

       比如今年爆发的WireLurker蠕虫,感染病毒的电脑系统会通过USB接口去间接感染iOS设备,即使是未越狱的设备也无法避免;还有前段时间发现的电子香烟通过USB传播恶意软件到PC;最近央视也报道了充电宝盗取手机隐私的案例

 

       对于愈演愈烈的USB风险,应用层还没有见到好的解决方案。倒是硬件层面比较容易解决。比如360无线安全研究团队的SecUSB,还有我们腾讯安全应急响应中心的SecLine。原理都是将USB中的两根数据线去掉,具体细节可以参考《揭秘:充电宝是如何盗取你的个人隐私的》。

 

           或许未来SecUSB或者SecLine将成为USB接口标配。

via: http://security.tencent.com/index.php/blog/msg/74

转载请注明:林志斌 » 新的U盘自动运行——BadUSB原理与实现

发表评论
取消评论
表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址