你的USB设备还安全吗?USB的安全性已从根本上被打破!

  前言:

  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的安全性已从根本上被打破!,布布扣,bubuko.com

时间: 2024-12-29 10:02:04

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

从linux usb设备节点来认识usb linux usb认识

首先从dmesg来认识usb: <6>[   19.610046] msm_hsic_host msm_hsic_host: Qualcomm EHCI Host Controller using HSIC <6>[   19.620391] msm_hsic_host msm_hsic_host: new USB bus registered, assigned bus number 1 <6>[   19.659942] msm_hsic_host msm_hsic

USB设备

在终端用户看来,USB设备为主机提供了多种多样的附加功能,如文件传输,声音播放等,但对USB主机来说,它与所有USB设备的接口都是一致的.一个USB设备由3个功能模块组成:USB总线接口.USB逻辑设备和功能单元.这里的USB总线接口指的是USB设备中的串行接口引擎(SIE):USB逻辑设备被USB系统软件看作是一个端点的集合:功能单元被客户软件看作是一个接口的集合.SIE.端点和接口都是USB设备的组成单元. 为了更好地描述USB设备的特征,USB提出了设备架构的概念.从这个角度来看,可以认为

USB设备驱动概述

USB设备驱动 ·  17.1 USB总线协议 ·  17.1.1 USB设备简介 ·  17.1.2 USB连接拓扑结构 ·  17.1.3 USB通信的流程 ·  17.1.4 USB四种传输模式 ·  17.2.1 观察USB设备的工具 ·  17.2.2 USB设备请求 ·  17.2.3 设备描述符 ·  17.2.4 配置描述符 ·  17.2.5 接口描述符 ·  17.2.6 端点描述符 ·  17.3.1 功能驱动与物理总线驱动 ·  17.3.2 构造USB请求包 ·  17

USB设备驱动开发之远程访问USB设备(一)

By Fanxiushu 2016 05-15  转载或引用本文,请注明原始作者. 使用过vmware的人都应该知道,vmware虚拟机有这样的一个功能, 当在宿主机上插入一个USB设备的时候,通过设置,可以在vmware的虚拟机系统里边能访问到这个USB设备, 而且访问这个USB设备,就跟真的把这个USB设备插入到这个虚拟系统中一样,跟真实的几乎没任何区别. 再看一种情况,假设有两台机器C和S,C 机器是你正在使用的机器, S机器在远端,你只能通过远程控制S. S机器的配置和功能都很强大,大部

关于citrix xendesktop USB设备直接映射到虚拟机

USB设备直接映射到虚拟机里 以小米手机为例,因为小米手机需要加载驱动,也就是安装小米助手,通过USB映射本地的可移动设备是不可行的,我们可以通过USB设备重定向,直接将小米手机重定向到远端虚拟机,远端虚拟机也需要安装小米助手.远端使用时,本地是不能用的,本地端使用时,远端是看不到的.设置如下: 1.  打开终端客户机的设备管理器,查找需要重定向的USB设备 2.  记下USB设备的VID值.PID值.Class值.subclass值    3.  记下后在DDC上新建一条策略,点击USB设备.

USB设备---URB请求快

1.urb 结构体USB 请求块(USB request block,urb)是USB 设备驱动中用来描述与USB 设备通信所用的基本载体和核心数据结构,非常类似于网络设备驱动中的sk_buff 结构体. struct urb { /* 私有的:只能由USB 核心和主机控制器访问的字段 */ struct kref kref; /*urb 引用计数 */ void *hcpriv; /* 主机控制器私有数据 */ atomic_t use_count; /* 并发传输计数 */ u8 rejec

USB设备驱动之设备初始化(设备枚举)

USB设备从接入HUB到正常工作之前,都属于设备枚举阶段.所谓设备枚举,就是让host控制器认识USB设备,并为其准备资源,建立好主机与设备间的数据传递机制. 该阶段的工作,是USB通信协议规定的,所以属于ISO标准流程.设备枚举阶段也对应了USB设备的五种状态. 设备枚举阶段分为如下8个步骤: 获取设备描述符 复位 设置地址 再次获取设备描述符 获取配置描述符 获取接口,端点描述符 获取字符串描述符 选择设置配置 其中,步骤1与4都是获取设备描述符,两者有什么区别? 步骤1中只取得设备描述符的

在Hyper-V中使用USB设备的方法(简略)

当前Hyper-V Server不支持USB的设备,如果你有USB设备需要在虚拟机中使用,例如USB的加密狗.智能卡.网上银行的U盾等,可以通过USB Over Network软件,通过网络,使用USB设备. USB Over Network是一款"客户/服务器"软件,是这么一款功能强大 USB 设备共享软件.它使用方便,可以允许分享和获取本地或者网上的USB设备.本软件包含 x86 和 x64 两个版本,并为客户端和服务端,方便用户选择安装. 本文通过一个实例,介绍这款软件的使用.

【安全牛学习笔记】使用 USB 设备来安装系统

在开始之前请务必备份所有数据.用于安装 KaliLinux 系统的 USB 启动设备将在另外一台机器上创建完成. 第一步是获取 Kali Linux 系统 ISO 镜像文件.本指南将使用最新版的包含Enlightenment 桌面环境的 Kali Linux 系统进行安装. 在终端下输入如下命令来获取这个版本的 ISO镜像文件. $ cd~/Downloads $ wget-c http://cdimage.kali.org/kali-2016.2/kali-linux-e17-2016.2-a