前言:

  USB设备使用方便,但也可能被用来携带恶意软件、病毒,感染计算机系统。通过禁用自动播放功能、杀毒软件查杀、不定期的对设备进行格式化等操作可以确保它是干净的。但它存在的安全问题要比我们想象的更深,问题不仅在于它携带了什么,还在于通过它的工作方式就能产生安全隐患。

  USB隐藏的危险:

  安全研究员Karsten Nohl 和Jakob Lell 发现了从根本上颠覆USB安全性的方法。他们创建的恶意软件,暂且称为BadUSB,可以被安装到USB设备中完全控制PC,无形中修改内存中的文件,甚至重定向用户的互联网流量。由于BadUSB不是存储在USB设备的闪存中,而在于可以控制其基本功能的固件中,攻击代码在设备内存被用户删除后仍可以隐藏很久。两位研究者表示修复这一问题并不容易,除非禁止USB设备的传播或将USB端口封起来。

  ‘IN THIS NEW WAY OF THINKING, YOU HAVE TO CONSIDER A USB INFECTED AND THROW IT AWAY AS SOON AS IT TOUCHES A NON-TRUSTED COMPUTER.’

  Nohl和Lell并不是第一个之处USB设备可以存储和传播恶意软件的人,但他们并没有止步于仅仅将自己的代码复制到USB设备的内存中。他们花了几个月的时间对USB的固件进行逆向工程,而固件决定着USB的基本通信功能——控制芯片让设备能和PC通信,用户可以移动和修改文件。他们最重要的发现是USB设备中的固件可以被二次编程已隐藏攻击代码。你可以把它给那些做安全研究的人,他们会扫描并删除一些文件,然后告诉你设备室"干净"的。但除非他们具备逆向工程的能力并对固件进行分析,前面描述的"清洗"过程根本不会碰到BadUSB。 

  所有形式的有固件的的USB设备,从键盘到鼠标再到智能手机都可以被重新编程。除了常见的USB设备,Android手机连接到PC上同样会遭受攻击,一旦受感染设备连接到PC,BadUSB可以做的事情就像变戏法一样,它可以将安装的软件替换为损坏的或者有后门的版本,甚至还可以模拟USB键盘突然就输入命令,通过键盘能做的都可以做到 —— 基本电脑能做到的一切。 

  该恶意软件也可以悄悄地劫持互联网流量,改变计算机的DNS设置以将流量牵引到它设置的服务器。如果代码用于手机和其他连接到互联网的设备,它还可以扮演中间人,秘密地监听通信。 

  我们大多数人都学会了不要随便运行USB上的可执行文件,但这并不能阻止新的感染方式,即便用户意识到可能会遭受攻击,确认USB设备未被攻击也基本上是不可能的。这些设备并没有"代码签名"的设置—— 确保新加入的代码都有设备制造商不可伪造的签名机制,甚至没有任何可以信的USB固件可以用来对比。

  任何时候将Upan插到电脑上,其固件就会被那台电脑上的恶意软件再编程,U盘的主人很难检测到它。同样的,USB设备也可以悄悄地感染用户的计算机。这其实是双向的,任何人都不可信。  

  BadUSB传播过程中无法被检测到的能力引起了一个疑问:是否能安全地使用USB设备。当我们把USB端口给人访问时,人们可以再上面做点坏事,但现在又有了一种新的可能的方向,这意味着一个受感染的USB设备是一个非常严重的实际问题。

  Blaze推测USB攻击实际上早已成为NSA的普遍做法,他提到了早些时候斯诺登泄露的被称为Cottonmouth的间谍设备。该设备据说隐藏在一个USB外设中,为秘密地安装恶意软件到目标机器上收集NSA需要的信息。

  THE ALTERNATIVE IS TO TREAT USB DEVICES LIKE HYPODERMIC NEEDLES. [皮下注射器的针]

  Nohl说他们将他们的研究告知过一个台湾的USB设备制造商,一系列的邮件交流后,该公司不承认这种攻击存在的可能[换做是我估计也不愿意承认呢]。Nohl认为短期内无法通过技术手段给该问题打上补丁,为避免该问题,你只能不让USB设备和电脑相连[谁知道还有没其他办法绕过呢,USB终归是要拿来用的]。信息安全的本质问题是信任,但在这种情况下一切都变得不可信。当USB接触到不受信的电脑后,你最好是当它已经被感染了,并将它扔了[太严重了吧!不过政府部门及一些信息比较敏感的地方还是需要提高警惕啊]。这两名研究者将在今年的黑帽大会上公布他们的发现,但还没有决定发行哪一个BadUSB设备攻击,因为这可能会导致USB的恶意固件会快速传播。

  要实行一项新的安全模式,首先需要让设备制造商相信威胁真的存在,同时用户也需要提高自己的安全意识,因为说不定哪一天我们就碰到了一个这样的BadUSB!

参考:

  http://www.wired.com/2014/07/usb-security/

  https://www.blackhat.com/us-14/briefings.html#badusb-on-accessories-that-turn-evil

你的USB设备还安全吗?USB的安全性已从根本上被打破!的更多相关文章

  1. USB 设备类协议入门【转】

    本文转载自:http://www.cnblogs.com/xidongs/archive/2011/09/26/2191616.html 一.应用场合 USB HID类是比较大的一个类,HID类设备属 ...

  2. USB设备的基本概念

    在终端用户看来,USB设备为主机提供了多种多样的附加功能,如文件传输,声音播放等,但对USB主机来说,它与所有USB设备的接口都是一致的.一个USB设备由3个功能模块组成:USB总线接口.USB逻辑设 ...

  3. KVM客户机使用主机USB设备

    有些时候KVM客户机还是要使用USB设备,比如USB密钥等 KVM命令行参数 -usb 打开usb驱动程序,启动客户机usb支持 -usbdevice devname 为客户机增加usb设备,devn ...

  4. Linux下usb设备驱动详解

    USB驱动分为两块,一块是USB的bus驱动,这个东西,Linux内核已经做好了,我们可以不管,我们只需要了解它的功能.形象的说,USB的bus驱动相当于铺出一条路来,让所有的信息都可以通过这条USB ...

  5. kvm云主机使用宿主机usb设备

    有些时候KVM客户机还是要使用USB设备,比如USB密钥等 KVM命令行参数 -usb 打开usb驱动程序,启动客户机usb支持-usbdevice devname 为客户机增加usb设备,devna ...

  6. USB设备驱动程序学习笔记(一)

    现象:把USB设备接到PC1. 右下角弹出"发现android phone"2. 跳出一个对话框,提示你安装驱动程序 问1. 既然还没有"驱动程序",为何能知道 ...

  7. USB设备---URB请求块

    1.urb 结构体 USB 请求块(USB request block,urb)是USB 设备驱动中用来描述与USB 设备通信所用的基本载体和核心数据结构,非常类似于网络设备驱动中的sk_buff 结 ...

  8. USB设备驱动总结

    现象:把USB设备接到PC        (韦老师总结) 1. 右下角弹出"发现android phone" 2. 跳出一个对话框,提示你安装驱动程序 问1. 既然还没有" ...

  9. 12、USB设备驱动程序

    linux-3.4.2\driver\hid\usbhid\usbmouse.c 内核只带USB驱动程序 (hub和usb是两个不同的设备,hub在内核上电的过程中在usb_hub_init函数中调用 ...

随机推荐

  1. js高程读书笔记(第4章--变量、作用域和内存)

    JavaScript变量松散类型的本质,决定了它只是在特定时间用于保存特定值的一个名字而已.由于不存在定义某个变量必须要保存何总数据类型值的规则,变量的值及其数据类型可以在脚本的生命周期内改变. 1. ...

  2. 理解javascript中的浏览器窗口——窗口基本操作

    × 目录 [1]窗口位置 [2]窗口大小 [3]打开窗口[4]关闭窗口 前面的话 BOM全称是brower object model(浏览器对象模型),主要用于管理窗口及窗口间的通讯,其核心对象是wi ...

  3. Eclipse迁移到Android studio步骤如下:

    一.从Eclipse中导出:1.将你的ADT插件版本升级到22.0以上.2.在Eclipse中,选择File-->Export.3.在弹出的导出窗口中,打开Android的文件夹,选择“Gene ...

  4. Android之genymotion模拟器安装于配置

    今天是双休日,可怜没人陪,只好一个人玩电脑了,之前别人一直给我推荐genymotion模拟器,说各种方便,秒杀Android自带模拟器,所以就趁这个周末搞了一下,总体感觉还挺不错的,确实比Androi ...

  5. Android获取短信验证码

    Android开发中关于短息验证码的设计层出不穷,越来越多的应用为了更好的提高软件的安全性,开始使用通过服务器向用户发送验证码的方式,来保护用户个人信息的安全性.无论是用户注册时的信息验证还是当用户发 ...

  6. 一起学微软Power BI系列-官方文档-入门指南(6)Power BI与Excel

    今天介绍了官方入门文档中有关PowerBI和Excel的知识.前几篇入门文档有点仓促,加上最近时间的研究,会有更多技巧性和入门型的文章或者视频发布,最后2篇入门文档将更加详细一点,因为部分文章进行简单 ...

  7. 2012-09-10 23:30 如何解决HtmlAgilityPack得到的InnerText中有残留的script、样式的问题

    那么如何解决HtmlAgilityPack得到的InnerText中有残留的script.样式的问题呢,在google上搜索“HtmlAgilityPack script innerText”找到了s ...

  8. AngularJS之代码风格36条建议【一】(九)

    前言 其实在新学一门知识时,我们应该注意下怎么书写代码更加规范,从开始就注意养成一个良好的习惯无论是对于bug的查找还是走人后别人熟悉代码都是非常好的,利人利己的事情何乐而不为呢,关于AngularJ ...

  9. Android微信分享图片大于32k进行压缩

    微信分享视频的时候,需要传一个图片数组,大小不能大于32k. 解决方案:使用Bitmap自带的compress方法解决了这个问题. 源码如下: <span style="font-si ...

  10. canvas实现拖动页面时显示窗口视频

    简介 当前主流的视频网站目前有不少新鲜好玩的功能,最明显的莫过于小视频的显示--当视频不在当前视口范围 时,会在右下角用一个小窗口来显示当前的视频,而且可以拖拽. 今晚心血来潮,起了动手试试的念头.我 ...