隐形的危胁1:ADS
NTFS文件系统有一个经常被忽略的“特性”,那就是ADS(Alternate Data Stream,可交换数据流)。简单来说,这是一种高级的文件属性,可以被附加到文件或者目录上,该属性中可以包含一定的数据。举例来说,这些附加的数据流可能会包含一些危险的可执行文件,可能造成安全隐患。
事实上,不管是Windows资源管理器还是“dir”命令都无法显示ADS,这也就使得ADS可能成为恶意代码的藏身之处。ADS和下面将要介绍的所谓的“rootkits”都比较麻烦,目前只有很少的防病毒软件可以检测并清理。
除此之外,附加了ADS的文件在Windows中显示时体积上不会有任何变化,这也就意味着,如果使用操作系统自带的功能,你根本无法判断出哪些文件被附加了ADS。甚至还有更糟的:创建ADS的操作并不会受到NTFS访问控制列表的限制——也就是说,任何用户,不管对一个文件或文件夹有没有访问权限,都可以在该文件(夹)上附加ADS。
追踪和删除ADS
Windows XP,甚至微软的下一代操作系统Vista中都没有提供查看ADS的工具。不过在微软网站上有一个开发中的工具:ntfsext.exe,可以为Windows资源管理器提供对ADS的支持(下载地址http://tinyurl.com/4do6h)。
在下载的自解压文件中,你可以找到strmext.zip这个文件。将该文件中的内容解压缩出来,然后将strmext.dll复制到C:\Windows\System32,并使用下列命令注册该文件:
regsvr32 StrmExt.dll
这样就可以在Windows资源管理器的“文件属性”对话框中添加一个“Streams”选项卡。
为了让这个选项卡出现在“文件夹属性”以及“根目录属性”对话框中,你还需要对注册表的下述键值进行修改:
键1: Hkey_Classes_Root\Directory\shellex\PropertySheetHandlers\{C3ED1679-814B-4DA9-AB00-1CAC71F5E337}
键2: Hkey_Classes_Root\Root\shellex\PropertySheet-Handlers\{C3ED1 679-814B-4DA9-AB00-1CAC71F5E 337}

发表评论