火绒安全软件

标题: 火绒拦截失效 [打印本页]

作者: jawbin    时间: 2015-5-11 00:22
标题: 火绒拦截失效
本帖最后由 jawbin 于 2015-5-11 00:25 编辑

测试文件来自 https://bbs.huorong.cn/thread-5942-1-1.html
火绒版本:2.5.0.66
所用规则:http://pan.baidu.com/s/1pJr7WMJ
提取码:qmyf

在“自定义防护项目”的“系统文件”中,有对 “*\rundll32.exe” 的 “创建”、“写入”、“删除”、“执行” 进行拦截,触犯时询问。

测试结果:

恶意程序暴力产生大批量 rundll32 进程,用来打开浏览器,迅速占用大量内存和处理器,导致计算机运行非常缓慢。拦截失败。


作者: Beaten    时间: 2015-5-11 11:14
恶意程序的样本有吗?
麻烦提供一下,谢谢!
作者: jawbin    时间: 2015-5-11 11:46
主帖中有啊。
作者: Beaten    时间: 2015-5-11 13:09
这个我看了一下,然后跟病毒分析沟通了一下
首先,这注册机不会自动弹IE
不知道您是不是有点界面的习惯
这注册机您点一下界面,才会开IE,由于ie的启动比较慢,然后您点了很多次,外加规则比较多,所以导致了卡的问题,进而后面会密集弹窗和弹网页
作者: jawbin    时间: 2015-5-11 14:43
Beaten 发表于 2015-5-11 13:09
这个我看了一下,然后跟病毒分析沟通了一下
首先,这注册机不会自动弹IE
不知道您是不是有点界面的习惯

我记得是没点之前就已经产生了很多 rundll32 进程,我会继续测试确认。

不过,这不是重点,你就把它当成一个测试程序。我希望的安全软件是“天网恢恢,疏而不漏”,火绒漏了很多,不算小问题。
作者: Beaten    时间: 2015-5-11 15:29
jawbin 发表于 2015-5-11 14:43
我记得是没点之前就已经产生了很多 rundll32 进程,我会继续测试确认。

不过,这不是重点,你就把它当成 ...

我刚刚再次测了一下。。。。
这次是测出来了。。。。

我估计是作者写的时候不小心写出死循环来了.......访问的是这个作品的论坛.....

但是这个规则是能拦住的,还请麻烦您看看是不是点错成允许了

QQ截圖20150511152602.png


这是截图,右下角很明显是拦住了,火绒剑rundll32也没起来~直接退出了


作者: jawbin    时间: 2015-5-11 15:45
本帖最后由 jawbin 于 2015-5-11 16:07 编辑
Beaten 发表于 2015-5-11 15:29
我刚刚再次测了一下。。。。
这次是测出来了。。。。

http://pan.baidu.com/s/1pJkg1L5
提取码:89bm

这是我的操作过程的视频。

1:24 开始是重点,勾选“记住操作”,点击“阻止执行”之后,马上出现大量的 rundll32 进程点击“阻止执行”之前,并未产生 rundll32 进程。当然,记住不记住也关系不大,只是不想陷入无限点击的汪洋大海中。

有了之前卡死不能动的教训,我提前准备了两个命令行窗口,一个用于杀进程,一个用户获取进程列表。否则,任由其执行,则用户很难控制,被其耗尽资源,只好硬重启。好在我的虚拟机很“健壮”,硬重启之后毫发无伤。

建议你们也写一些“濒死循环”来测试一下火绒的承压能力。希望火绒甚至推出一个小功能,对高耗资源的进程先暂停,给用户以机会选择结束还是继续,并且记住用户的选择。

另外提一个建议,对用户上传附件不要限制太多。这不是娱乐论坛,谁会有事没事上传很多无用的东西。

我很奇怪,我上传个 7 KB 都不到的规则都会失败(文件名为 hr.zip)!
作者: Beaten    时间: 2015-5-11 16:09
jawbin 发表于 2015-5-11 15:45
http://pan.baidu.com/s/1pJkg1L5
提取码:89bm

表示这个视频没办法正常播放啊......
还请麻烦确认一下
作者: jawbin    时间: 2015-5-11 16:50
晕,我可以播放的。那我换格式。
作者: jawbin    时间: 2015-5-11 16:53
Beaten 发表于 2015-5-11 16:09
表示这个视频没办法正常播放啊......
还请麻烦确认一下

http://pan.baidu.com/s/1bncxyB9
提取码:einb
作者: Beaten    时间: 2015-5-11 18:28
jawbin 发表于 2015-5-11 15:45
http://pan.baidu.com/s/1pJkg1L5
提取码:89bm

点击阻止前,动作被拦截下来询问,这个时候程序阻塞着,所以肯定不会有rundll32出来,这个很正常
那一大片rundll32实际上都是新启动的,你把显示已退出进程选勾上,你会不断有rundll32退出,当然也会有rundll32起来
这个是这个注册机的bug,作者不知道怎么写死循环了,他有动作触发规则被拒绝,火绒按规则处理了,所以也就会有一大片rundll32起来后被火绒拒绝,然后退出了
作者: jawbin    时间: 2015-5-11 19:33
本帖最后由 jawbin 于 2015-5-12 00:50 编辑
Beaten 发表于 2015-5-11 18:28
点击阻止前,动作被拦截下来询问,这个时候程序阻塞着,所以肯定不会有rundll32出来,这个很正常
那一大 ...

1、我从未允许 rundll32 被运行,为何它会出来(不论多少)?

2、rundll32 退出也许有,也许没有,我不会验证。但是我认为没有,否则就不会出现大量的 rundll32 调用浏览器导致系统卡死(如果我不事先准备好对策的话)。

根据你说的意思,是火绒的拦截方式是 rundll32 进程产生后再结束?不认为这种方式正确,如果我对你的叙述理解正确的话。这样的话,你的意思是说,“拦截速度跟不上创建速度”?

作者: vardyh    时间: 2015-5-11 22:06
jawbin 发表于 2015-5-11 19:33
1、我从未允许 rundll32 被运行,为何它会出来(不论多少)?

2、rundll32 退出也许有,也许没有,我不会 ...

只是进程对象创建出来了,所以火绒剑里面能看到,
阻止是同步(阻塞)的,所以不会有拦截速度和创建速度“比赛”的情况:)
作者: jawbin    时间: 2015-5-12 00:46
本帖最后由 jawbin 于 2015-5-12 11:08 编辑
vardyh 发表于 2015-5-11 22:06
只是进程对象创建出来了,所以火绒剑里面能看到,
阻止是同步(阻塞)的,所以不会有拦截速度和创建速度 ...

谢谢。

我不懂内部具体情况。

但是如你所说,我用“高级伪代码”来猜测一下火绒的拦截:

cmdline = "rundll32.exe..."

oneProcess = new Process(cmdline,...);

if (cmdline  is in block list){
oneProcess.terminate();
}

而我认为应该:

cmdline = "rundll32.exe..."

if(cmdline is not in block list){//这只是简化示意,火绒的实际判断要过系统规则,自定义规则,白名单等
oneProcess = new Process(cmdline,...);
}

创建再销毁,是怕 cpu 无聊吗?


作者: Beaten    时间: 2015-5-12 10:02
jawbin 发表于 2015-5-12 00:46
谢谢。

我不懂内部具体情况。

我们的拦截点不一样

作者: jawbin    时间: 2015-5-12 11:06
Beaten 发表于 2015-5-12 10:02
我们的拦截点不一样
这样不会让进程直接崩掉,而是阻塞着,这样对用户的体验会稍微好一些~ ...

谢谢!你的意思是,在创建进程前“拦截”会导致程序崩溃?

那么,假设用如下种方式呢?

cmdline = "rundll32.exe..."

if (cmdline  is in block list){
cmdline = "cmd.exe ..."; //这里也只是示例,比较合适的是一个专用的替换程序,它可以什么也不做,直接返回,然后火绒将命令行记录在日志里。
}

oneProcess = new Process(cmdline,...);
作者: yne    时间: 2015-5-12 12:16
前几天下载一个小游戏,也是点阻止一个动作后,弹出好多框框要确定。好在能打开任务管理器。




欢迎光临 火绒安全软件 (https://bbs.huorong.cn/) Powered by Discuz! X3.4