查看: 6569|回复: 22
收起左侧

[技术原创] 以图说明:Linux下的杀软能否扫描数据流

[复制链接]
杏林小草
发表于 2008-6-23 00:19:14 | 显示全部楼层 |阅读模式
注意:本帖只是为了回答Linux杀win毒的一个重要问题,是《女生电脑杀毒奇遇记》(http://bbs.kafan.cn/viewthread.php?tid=273378)和《Linux下杀Win毒--Windows的“系统外”扫描综述》(http://bbs.kafan.cn/viewthread.php?tid=208114)的重要补充。谢谢网友sky123456的提醒。

NTFS分区的数据流是一个文件子系统,它允许额外的数据连接到一个特别的文件中。用户可以通过数据流标识一个文件的属性,让文件除了传统的“只读”等属性之外还有“作者、摘要”等属性。
首先,用记事本制作一个测试文件,用的是标准测试字符串“X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*”。保存文件到C盘。呵呵,小红伞反应敏捷,马上阻挡。当然,这个文件是要保存的,不然我们的试验就无法进行下去,选择忽略。


接下来,我们要创建数据流文件:
  cd c:\
  type test.txt > :virus
创建的过程中小红伞报警,首先,它拦截了测试文件的读取操作,我们放行;接下来,它阻挡了数据流文件的写入。看来,win版小红伞的实时保护可以涵盖数据流。


数据流比隐藏文件藏得还深,你看,在一个干净的win xp中,Explorer可以将隐藏文件、系统文件一览无余,就是看不到数据流。这便是为什么有的win病毒喜欢躲到那里去。


小红伞的扫描能不能将躲在数据流里的病毒揪出来?为简化过程,我们创建一个test文件夹,依法在test文件夹里头炮制一个数据流文件:
  cd test
  type c:\test.txt > :virus
(注意,经测试type c:\test.txt > c:\test\:virus是非法的,所以,要先将当前目录转为test文件夹)
小红伞的监控再度报警,一样的,我们两次都选择忽略。
好啦,用小红伞的扫描功能扫描test文件夹,看到了吧,win版小红伞也能扫描数据流哦!


重启电脑,用Ubuntu Live CD引导,启动到Ubuntu的桌面。
此时,Ubuntu能正确识别并加载ntfs分区,用Nautilus(粗略地说,就是Linux下的Explorer)无法查看到数据流。


接下来,安装antivir for Unix。
首先是解开压缩包。方法很简单,右击压缩包,选择“解压缩到此处”,是不是和win也类似啊?不同之处在于,装win时,你要自己装一个压缩管理器,而装Ubuntu时,已经默认安装好了。



解压缩后,我们要执行里面的安装脚本。
  cd /media/disk/antivir-workstation-pers-2.1.11-21/
  sudo ./install
(和win一样,Linux的终端也具有tab键补齐,和↑↓方向键浏览输入历史的功能。和win不同,Linux表示目录的斜杠是“/”。)
antivir的安装脚本写得不错,安装过程的交互性很好,相信英文好的卡饭可以很快上手,因此小草只将各个交互的问题按出现顺序简单罗列一下:
所有的提问,“[]”内的选项是默认选项。
Do you agree to the license terms? [n] y[回车]
Enter the path to your key file: [hbedv.key][直接回车]
Would you like to install the internet update daemon? [n] [直接回车]
How should AvGuard be installed? [n] [直接回车]
Would you like to install the GUI (+ SMC support)? [y] n[回车]
Would you like to configure the AntiVir updater now? [y][直接回车]
Would you like email notification about updates? [n] [直接回车]
Would you like the updater to log to a custom file? [y] [直接回车]
Would you like the updater to log to a custom file? [y] n[回车]
Does this machine use an HTTP proxy server? [n][直接回车]
Save configuration settings? [y] [直接回车]
Press <ENTER> to continue.[直接回车]

安装好antivir for Unix,接下来看看它能不能扫描到数据流。
可惜,不能。它只能扫描普通文件。


也许是因为ntfs-3g的数据流模块没有启动。有可能!
退出终端,重新启动一个新的终端(这样,终端进程就不再占用本地硬盘),卸载ntfs分区:
  sudo umount /media/disk
用ntfs-3g挂载ntfs分区
  sudo mkdir /media/disk
  sudo ntfs-3g /dev/sda1 /media/disk -o streams_interface=windows
好,测试一下,看看能否看到什么
  cd /media/disk/
  ls
hoho,失望,没有见到数据流。
那,指名之后能否列出?
  ls :virus
成功!
   cat :virus
成功!


看样子,ntfs-3g可以读取数据流文件。
那么,开启数据流支持后,antivir扫描的过程中是否包括数据流?测试发现,antivir for Unix无法扫描数据流文件。除非用户指名。


好吧,小草不得不承认spiha前辈指出了Linux下杀毒的一个弱点----对数据流支持不够。从小草的测试看,ntfs-3g已能提供对数据流的基本支持,问题出在没有一个主动列出数据流的接口,这样杀软开发者和用户都无从知道到底有哪些数据流。看来,小草得重新检讨windows系统外杀毒的策略了。谢谢Spiha前辈的指教!
其它的Linux版杀软情况如何呢?不得而知。有兴趣的卡饭可以依法炮制。

当然,Linux版杀软不支持ntfs数据流并不代表Linux操作系统及Linux平台上的软件无能。这是因为ntfs是微软公司开发的闭源文件系统,并不是Linux原生的文件系统。换句话说,一个纯粹的Linux系统是没有ntfs这回事的。因此,出现不支持ntfs某种独家功能的情况并不奇怪。开帖讨论这个问题,纯属为了探讨借助Linux为windows分区扫毒这种方法是否可行,别无他意。

[ 本帖最后由 杏林小草 于 2008-6-23 00:58 编辑 ]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?快速注册

x

评分

参与人数 1经验 +10 收起 理由
will + 10 原创内容

查看全部评分

16h
发表于 2008-6-23 00:28:59 | 显示全部楼层
不会吧 那么弱啊,clamav都可以扫描数据流……
杏林小草
 楼主| 发表于 2008-6-23 00:39:08 | 显示全部楼层
原帖由 16h 于 2008-6-23 00:28 发表
不会吧 那么弱啊,clamav都可以扫描数据流……

请问,您用的是clamav的win版,还是Linux/Unix版?如果是后者,请测试一下吧。
spiha
头像被屏蔽
发表于 2008-6-23 00:41:22 | 显示全部楼层
汗一个 还重新开帖了
看来不是ntfs3g的问题了
有测linux上其他杀软不?
sky123456
发表于 2008-6-23 00:51:12 | 显示全部楼层
有几个疑点
首先 你用的是LIVE 版  这个和实际的是有区别的
其次 linux下挂NTFS 是开发者们自己弄出来了  并没有得到WIN的支持  
再 NTFS 本来就不是LINUX 的文件系统  你还要拿NTFS 下的流文件 来LINUX下测试
有什么意义吗?  WIN下的病毒在LINUX下有作用吗   LINUX下的病毒在WIN下能运行吗
………………………………………………
杏林小草
 楼主| 发表于 2008-6-23 00:59:23 | 显示全部楼层
原帖由 sky123456 于 2008-6-23 00:51 发表
有几个疑点
首先 你用的是LIVE 版  这个和实际的是有区别的
其次 linux下挂NTFS 是开发者们自己弄出来了  并没有得到WIN的支持  
再 NTFS 本来就不是LINUX 的文件系统  你还要拿NTFS 下的流文件 来LINUX下测试
有 ...

开帖讨论这个问题,纯属为了探讨借助Linux为windows分区扫毒这种方法是否可行,别无他意。
已修改原文,做了补充,谢谢前辈提醒。
sky123456
发表于 2008-6-23 01:08:02 | 显示全部楼层
原帖由 杏林小草 于 2008-6-23 00:59 发表

开帖讨论这个问题,纯属为了探讨借助Linux为windows分区扫毒这种方法是否可行,别无他意。
已修改原文,做了补充,谢谢前辈提醒。


偶也是新手
哪儿什么前辈啊
那个只是路过有讨论下吧了
杏林小草
 楼主| 发表于 2008-6-23 01:27:39 | 显示全部楼层
原帖由 spiha 于 2008-6-23 00:41 发表
汗一个 还重新开帖了
看来不是ntfs3g的问题了
有测linux上其他杀软不?

一来考虑回帖不好插图,二来,这是个重要的问题,至少对小草这种喜欢用Linux杀软杀windows分区病毒的人来说如此。
问题应该还是在ntfs-3g上。即使在windows平台,早期的数据流工具很少,因为windows的ntfs文件系统驱动没有更新相应的API,以至于绝大多数文件操作的函数只能在指定数据流名字的情况下运行。从Linux的体系结构看,针对ntfs的文件操作也是提交给ntfs-3g完成,如果ntfs-3g彻底支持数据流,那么杀软应该能自动拥有扫描数据流的功能。
spiha
头像被屏蔽
发表于 2008-6-23 01:37:53 | 显示全部楼层
囧 没人说Linux操作系统及Linux平台上的软件无能啊。。

我提到的几点只有
1. 除了硬件rootkit外winpe正确操作是不会染毒的
2. 如果老給人杀毒的话还是用手杀比较快 变态的rootkit也不会经常碰到的
3. 杀毒软件可能存在对于未发现免杀的漏杀 并非完美之策
4. linux下有可能去除不了利用ntfs数据流的windows病毒

补充
5. 其实不用怕这怕那的 免杀一个杀软要比写一个高级rootkit要简单一百倍
6. 吝啬的盖茨大叔前几天宣布把自己的全部财产作为慈善基金不留子女一分ww
spaceplane
发表于 2008-6-23 10:58:16 | 显示全部楼层
盖茨特喜欢慈善
您需要登录后才可以回帖 登录 | 快速注册

本版积分规则

手机版|杀毒软件|软件论坛| 卡饭论坛

Copyright © KaFan  KaFan.cn All Rights Reserved.

Powered by Discuz! X3.4( 沪ICP备2020031077号-2 ) GMT+8, 2025-5-24 02:28 , Processed in 0.143857 second(s), 20 queries .

卡饭网所发布的一切软件、样本、工具、文章等仅限用于学习和研究,不得将上述内容用于商业或者其他非法用途,否则产生的一切后果自负,本站信息来自网络,版权争议问题与本站无关,您必须在下载后的24小时之内从您的电脑中彻底删除上述信息,如有问题请通过邮件与我们联系。

快速回复 客服 返回顶部 返回列表