警惕移动设备攻击

时间: 2006-09-06 10:10:53    来自:计算机世界网
 

  MP3播放器、数码相机存储卡和USB存储棒等便携式移动存储设备不仅能带走数据,还可以用来实现更为险恶的企图。

  在信息安全方面,关于iPod、数码相机存储卡和USB存储棒等带来的威胁已经有很多的报道。因为所有这些设备基本上都是大容量存储设备,所以窃贼(无论是内人还是外人)就很容易溜入贵组织,迅速下载一批机密文档,随后溜之大吉——你却一直以为他们只是在听一些歌曲。窃贼可以把企业机密资料藏在这些移动存储设备上,如果他们真想掩饰行踪,甚至可以删除文件,那样更难在偶尔的审查中被发现。然后等他们到了家,就可以使用删除恢复程序恢复机密资料。

  把iPod或者USB存储棒插入运行WindowsPC,该设备实际上可以接管电脑、搜寻机密文档,拷贝到iPod或者USB存储棒的内部存储空间,然后作为已删除文件隐藏起来。另外,这种设备可以植入间谍软件,甚至破坏操作系统的安全。让这一切成为可能的两项特性就是Windows自动运行(AutoRun)工具以及外设使用直接存储器存取(DMA)的功能。对于第一个攻击途径,你能够封堵,也应当加以封堵;第二个途径却是设计缺陷导致的,这个缺陷可能会在今后伴随我们多年。

  是漏洞而不是特性

  自动运行是Windows内置的一项特性,一旦光盘、DVD或者USB驱动器插入基于Windows的电脑,就会自动运行由文件autorun.inf指定的程序。这项特性存在的目的,是为了让安装光盘插入到驱动器里面后,软件开发商的漂亮界面可以出现在电脑屏幕上。遗憾的是,对于自动运行程序能够做什么,基本上没有什么限制——Windows而言,它就是用户在运行的另一个程序。所以,如果有人把恶意程序放在USB存储棒上,然后诱骗其中一个用户把这个存储棒插入基于Windows的电脑,他就找到了破坏机器的理想攻击途径。

  事实上,自动运行完全是个坏主意。把光盘或者USB存储设备插入电脑的人通常只是想看看上面有什么内容,而不是让程序自动运行。幸好,你可以关闭自动运行功能。一种简单的手动方法就是,在光盘或者USB存储设备插入到电脑时,按住Shift键;一种比较好的办法是,编辑Windows注册表,从而完全禁用这项特性,网上有许多介绍这一操作的内容(只要往搜索引擎里面输入“disable autorun”即可);你也可以下载及使用微软的TweakUI程序,这个程序是Windows XP PowerToys下载包的一部分;如果使用Windows XP,你还可以禁用光盘的自动运行功能,只要用鼠标右击Windows资源管理器里面的光盘驱动器图标,选择自动播放标签,最后为列出的每种磁盘选择不操作。遗憾的是,禁用光盘的自动播放功能并不总是能够禁用USB设备的自动播放功能,所以改动注册表才是最保险的办法。

  自动运行不仅仅是Windows面临的问题。早在20世纪90年代,Macintosh也有一项类似特性——自动启动(Autostart),它可以自动运行QuickTime 2.0文件。利用这一漏洞的病毒Autostart-98051998年感染了成千上万台电脑后,苹果公司从操作系统中去掉了这项特性。同样,Palm操作系统也有一项类似特性,一旦数码相机存储卡插到运行PalmOS的电脑上的扩展槽里,就会自动让卡上的每个程序都有机会运行。

  自动运行威胁非常严重,现已被人大规模利用。索尼音像公司在去年通过数百万张光盘分发的Rootkit/间谍软件组合就是作为自动运行脚本的一部分而安装的。

  不过,尽管自动运行特性很差,但有一个漏洞更值得注意,它内置于目前在使用的几乎每一台桌面电脑和服务器上,而且这个漏洞影响了运行WindowsPCMac机,而且很有可能会影响运行Linux甚至Solaris的机器。这个漏洞就是基于FireWireUSB标准内置的直接存储器存取(DMA)功能。

  防范措施被避开

  在电脑系统和外界之间移动信息基本上有两种方法。第一种名为可编程输入输出(PIO),电脑的中央处理单元认真地在外界和电脑之间拷贝存储器的每个字节内容。PIO易于实现——早期的PC完全使用PIO,但速度缓慢。

  另一方面,DMA使用批量数据传送方式,在外界和PC存储器之间传送大批量信息。早期的PCPIO改用DMA后,最大数据传输速率从8Mbps上升到了33Mbps,如今的系统能支持133Mbps或者更高的传输速率。对于基于DMA的系统,CPU准备好传输工作后,转而处理其他事务。一旦准备就绪,磁盘或者能够识别DMA的其他设备全靠自己开始传输。传输完成后,会有消息发送到CPU

  因为USB移动存储设备在设计时考虑到了连接高速磁盘驱动器,所以这都为DMA做好了准备。也就是说,在许多情况下,接入USB接口的设备能够对主机电脑里面的一个个物理存储器位置进行读写。这种存取势必会避开主机的操作系统及操作系统想要实施的任何安全检查。

  最近,许多计算机安全研究人员认识到了有人极有可能利用USB接口的设备,利用DMA作为攻击途径。在2005年加拿大安全会议上,德国人Michael BecherMaximillian DornseifChristian N. Klein演示了一个漏洞,它利用了DMA可任意读取具有FireWire功能的系统的存储器位置这一功能。譬如说,他们可以把经过定制的iPod插入受害者的电脑,然后截取该电脑的屏幕内容——不但没有获得电脑的许可,电脑甚至蒙在鼓里!

  从理论上来说,这种iPod DMA手法可以用来对受害者进行攻击。比如,禁用受害者的Windows操作系统的某些安全检查功能,或者攻击者只要改动运行中的系统,那样系统就不会运行用户代码,而是扫描系统的硬盘,查找机密文档,然后拷贝到iPod

  这三位德国人在加拿大安全会议上演示的漏洞基于FireWire,至于攻击会不会在基于USB的系统上得逞目前并不明显。虽然基于USB的系统确实也使用DMA,但针对基于FireWire的系统开发的基于DMA的某种攻击会不会在只有外部USB端口的PC上得逞还并不清楚。

  另一方面,足够的证据表明运行Windows、有USB端口的PC容易受到另一种攻击:缓冲器溢出攻击,这种攻击是由于写得不好的USB驱动程序而导致的。有没有遇到过这种情况:把USB设备插入Windows机器后,得到表示某个程序出现致命异常错误fatal exception)的错误信息?这种错误就是由USB设备驱动程序里面的代码错误引起的,USB设备可以利用这种代码错误,作为接管运行Windows操作系统的电脑的另一种方式。

  厂商无动于衷

  本文讨论的所有攻击,其背后的根本问题在于,多年来,微软、苹果及其他公司的开发人员以为硬件是可信资源。设计人员根本没有考虑到插入桌面电脑的iPod或者USB存储棒会掉过头来开始攻击机器——因而,如今的电脑无力防御这几种攻击。厂商无动于衷的这种态度让人吃惊,要知道电脑行业早在20世纪90年代曾遇到过基于软盘的病毒——不过解决这个问题的办法是使用防病毒软件,而不是根本上改变操作系统或者设计原则。

  另一方面,我们恐怕不会看到基于USBFireWire的新一代攻击大行其道。这是因为,插入USB或者FireWire端口的硬件大多数其实是良性的。在高度安全的环境下,堵住电脑的USBFireWire端口是明智之举;可能对大多数应用而言,这些技术很有用,也许值得冒这个险。然而,如今基于FireWireUSB的系统在设计时却没有考虑到安全性,这真是件憾事。一开始就内置安全性并非难事——譬如说,只让DMA访问以前已经由主机操作系统指定的某些存储器位置。可遗憾的是,厂商一致决定不采取这种做法。

 

 
期期必出30码网站