卡饭论坛's Archiver



ubuntu 发表于 2007-8-1 20:56

介绍简单易用、安全可靠的HIPS :DefenseWall HIPS

近一段时间,测试和试用 DefenseWall HIPS V2 的一些心得和测试报告。我对 DefenseWall 也是刚用,了解不深,诸位看过以后,有好的地方,你就支持一下,有不好的地方,多包涵和指正。

DefenseWall 是基于策略限制的 Sandbox HIPS,没有虚拟文件系统/容器,这和Sandboxie有很大的区别。Sandbox 的精髓在于 隔离(isolation),实现隔离并非一定要使用虚拟技术,用惯Sandboxie 或许不适应,DefenseWall 放行的文件操作,都是在真实文件系统,不会只在一个指定的文件夹里。DefenseWall 的作者认为大量使用虚拟技术,不能带来最大的安全,在设计 DefenseWall 时,放弃了虚拟化,只在注册表保护上使用了极少的虚拟化。在一年多以前,作者专门写了一个突破 BufferZone 的代码示例,并有一番论战。

DefenseWall 是为普通用户设计的,简单易用、功能强大,没有弹出窗口,不用升级特征库;DefenseWall 是HIPS,能防御大部分的已知、未知病毒木马广告间谍rootkits,对一般用户还是配合杀软(可以是绿色,不监控)和防火墙一起使用为佳,DefenseWall 没有网络过滤功能。
DefenseWall 将程序分为 Trusted(信任) 和 Untrusted(非信任),Untrusted(Sandboxed)程序会和 Trusted 程序隔离,并且会受到很多内置策略/规则 的限制。至于是如何限制的,我想用测试示例来说明,更加易懂。

[color=Red][b]DefenseWall 的设计理念是用最简单易用的方法提供最大的安全[/b][/color],下面我以一些测试来展示DefenseWall 的能力。
[b]设置是用的默认的,只是添加了一些 Untrusted 程序和目录,并允许托盘图标显示警告通知。[/b]
看看DefenseWall 默认设置下的保护能力。所有恶性病毒都是在影子系统测试,实机切勿模仿,特此声明。不是病毒的分析报告,有很多未尽之处,但不影响对DefenseWall的展示。

[attach]108017[/attach]

[[i] 本帖最后由 ubuntu 于 2007-8-1 21:40 编辑 [/i]]

ubuntu 发表于 2007-8-1 21:05

[b]先从 破坏分区表的猪三、王云禾开始,杀软报 Killdisk[/b]:
测试 DefenseWall 对底层磁盘访问的拦截能力
先将测试样本的目录加入 Untruted,这样该目录里的所有可执行文件都是 Untrused,压缩包里的文件释放以后也是 Untrusted,直接在压缩包里执行,还是 Untrusted。

[attach]108026[/attach]

猪三和王云禾都能有效拦截,以下是提示,和 一般的HIPS差不多,最后都是文件CRC校验错误。

[attach]108018[/attach][attach]108019[/attach]

整个拦截过程,没有提示窗口,只有托盘图标的红色和闪烁提示。

[b]硬盘敲诈者[/b]

拦截修改启动项:

[attach]108020[/attach]

拦截添加服务:

[attach]108021[/attach]

拦截删除文件:

[attach]108022[/attach]

文件并未删除:

[attach]108023[/attach]

生成的可执行文件自动加入 Untrusted ,子程序会继承父程序的 Untrusted 属性,依然会被隔离:

[attach]108024[/attach]

Rollback 可以回滚、还原、删除的文件:

[attach]108025[/attach]

由于 DefenseWall 默认会拦截对屏幕保护的修改,上面的scr 虽然生成文件,但未能更改默认屏保。

[[i] 本帖最后由 ubuntu 于 2007-8-1 21:07 编辑 [/i]]

ubuntu 发表于 2007-8-1 21:12

[b]熊猫烧香[/b]

拦截改写文件:

[attach]108029[/attach]

并未成功:

[attach]108030[/attach]

拦截启动项:

[attach]108031[/attach]

再拦截,无法显示隐藏文件:

[attach]108032[/attach]

设置隐藏文件属性:

[attach]108033[/attach]

修改并未成功:

[attach]108034[/attach]

拦截删除服务:

[attach]108035[/attach]

拦截删除网络共享:

[attach]108036[/attach]

生成的可执行文件自动加入 Untrusted ,子程序会继承父程序的 Untrusted 属性,依然会被隔离:

[attach]108037[/attach]

Rollback 可以回滚、还原、删除的文件:

[attach]108038[/attach]

没有 ini文件的 rollback,只要用资源管理器搜索删除就可以。

ubuntu 发表于 2007-8-1 21:20

[b]维金[/b]

拦截对 Trusted进程内存空间的访问:

[attach]108045[/attach]

拦截修改 Hosts 文件:

[attach]108046[/attach]

拦截删除可执行文件:

[attach]108047[/attach]

拦截重命名可执行文件:

[attach]108048[/attach]

生成的可执行文件自动加入 Untrusted ,子程序会继承父程序的 Untrusted 属性,依然会被隔离:

[attach]108049[/attach]

Rollback 可以回滚、还原、删除的文件:

[attach]108050[/attach]

ubuntu 发表于 2007-8-1 21:25

[b]玉兔[/b]

生成的可执行文件自动加入 Untrusted ,子程序会继承父程序的 Untrusted 属性,依然会被隔离:

[attach]108054[/attach]

拦截修改注册表活动桌面设置:

[attach]108055[/attach]

并未添加成功:

[attach]108056[/attach]

拦截破坏安全模式:

[attach]108057[/attach]

拦截破坏安全模式:

[attach]108058[/attach]

拦截 AutoRun.inf 的创建:

[attach]108059[/attach]

拦截对 Trusted进程内存空间的访问 (为进一步将 msexch400.dll 插入系统的 winlogon 进程,影响正常的关机和注销做准备)

[attach]108060[/attach]

Rollback 可以回滚、还原、删除的文件:

[attach]108061[/attach]

[b][color=Red]以上这些恶性病毒,DefenseWall 用默认设置都可以拦截,并且没有提示窗口弹出。[/color][/b]

ubuntu 发表于 2007-8-1 21:31

[b]黑炸弹 Black-Day[/b]

不仅拦截对exe、dll等的修改,对一般的扩展名也拦截:

[attach]108072[/attach]

改写可执行文件:

[attach]108073[/attach]

重命名txt文件:

[attach]108074[/attach]

重命名失败,换成写入:

[attach]108075[/attach]

拦截写入inf文件:

[attach]108076[/attach]

不拦截某个特殊变种对ini.exe文件的创建:

[attach]108077[/attach]

被感染的ini文件:

[attach]108078[/attach]

EQSecure 的FD日志做参考:

[attach]108079[/attach]

以上还是默认设置,总体上对 BlackDay 的拦截很成功,虽然有个别样本修改了 ini 文件,但只要用 DefenseWall 尽快结束进程,损失很小。有可能作者并未有这个样本,所以默认规则上漏掉了。
[color=Red]可以通过添加 受保护的文件(禁止 Untrusted 程序访问),来加强保护。如图,很简单:[/color]

[attach]108080[/attach]

linr 发表于 2007-8-1 21:31

看起来还不错,就是功能少点啊

ubuntu 发表于 2007-8-1 21:33

注册表保护 (RD) 测试
前面的一些测试,已经展示了 DefenseWall 对于注册表重要键值的保护,以下是两个专门测试注册表保护的工具。

[b]1. Ghost Security Registry Tester [/b]([url]http://www.ghostsecurity.com/downloads/regtest.zip[/url])

测试1: 修改6个自启动键值,然后快速还原原来的键值。测试RD 是否是实时保护。

[attach]108386[/attach]

全部修改失败,表示通过所有测试。

[attach]108387[/attach]

DefenseWall 的日志,只抓了一个图做说明:

[attach]108388[/attach]

测试2:添加多个自启动,强制重启,然后在下次Windows启动后,自动加载测试程序。
DefenseWall 不拦截关机/重启 操作,但是拦截了所有修改注册表的操作,通过测试。

[attach]108389[/attach]

[attach]108390[/attach]
[attach]108391[/attach]
[attach]108392[/attach]
[attach]108393[/attach]
[attach]108394[/attach]
[attach]108395[/attach]



[b]2. ByPassRegmon2 [/b]([url]http://www.xrzreg.net[/url])

测试程序:

[attach]108396[/attach]

常规方法 A (set value):

[attach]108397[/attach]

特殊方法 A (restore key):

[attach]108398[/attach]

常规方法 B (create new key):

[attach]108399[/attach]

特殊方法 B (restore key):

[attach]108400[/attach]

DefenseWall 全部通过。

[[i] 本帖最后由 ubuntu 于 2007-8-2 18:03 编辑 [/i]]

ubuntu 发表于 2007-8-1 21:35

[b]ADS 测试,拦截隐藏的NTFS数据流病毒。[/b]
[quote]简介:NTFS文件系统支持给每个文件添加任意隐藏的数据,所以越来越多威胁采用这个特性隐藏自身。NTFS数据流管理(NTFS Data Streams.exe)是智能实验室出品的NTFS数据流工具,可以查看/添加/编辑/删除任意文件的数据流。

使用:运行NTFS数据流管理工具,打开以下任意一个例子文件,在数据流列表中,选中流,右键菜单,执行流。

例子:
        1.“Gmail.gif”:这个文件本质是GIF图片文件,但实际隐藏了Windows自带的记事本(notepad.exe),当你执行流(:notepad),即便你的把Windows自带的\windows\notepad.exe删除,记事本一样会运行。

        2.“病毒.txt”:这个文件本质是TXT文本文件,但实际隐藏了Trojan.PSW.Delf.cu木马,当你执行流,这个病毒便会执行!!!请慎重考虑再运行这个流(:virus)!!!

!!!注意!!!“Gmail.gif”和“病毒.txt”这2个文件必须解压到NTFS磁盘分区才有效,否则隐藏数据会丢失。

提示:这个工具和例子仅仅演示NTFS数据流的特性!任何带来的后果,请自行承担,智能实验室不承担任何责任!同时,智能实验室-杀马(Defendio)在即将发布的下一版本支持对NTFS数据流的扫描![/quote]

执行 病毒.txt:virus 流,EQSecure (只开AD)提示运行流(:virus) ,允许后会提示安装全局钩子。

[attach]108404[/attach]
[attach]108405[/attach]
[attach]108406[/attach]

看一下 DefenseWall :

拦截全局钩子:病毒.txt:virus Attempt to create global windows hook with module C:\windows\system32\msdll.dll

[attach]108407[/attach]

拦截修改自动运行:病毒.txt:virus Attempt to set value ms within the key HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\

[attach]108408[/attach]

生成的目录自动加入 Untrusted,子程序会继承父程序的 Untrusted 属性,依然会被隔离:

[attach]108410[/attach]

Rollback 可以回滚、还原、删除的文件:

[attach]108409[/attach]

[[i] 本帖最后由 ubuntu 于 2007-8-2 18:50 编辑 [/i]]

ubuntu 发表于 2007-8-1 21:36

由于 DefenseWall 的保护是驱动级的,终止 DefenseWall 的进程和服务,是没用的。我用 IceSword 干掉 DefenseWall 的进程和服务,然后在影子下测试 修改主引导区的病毒 (已加入Untrusted),DefenseWall 照样拦截。

下面测试的是 Untrusted 终止 Trusted进程时,DefenseWall 的保护。
原理很简单,将测试软件加入沙盒,然后让它终止沙盒外面的信任进程。

[b]APT [/b]  [url]http://www.diamondcs.com.au/downloads/apt.zip[/url]

将 APT 设为 Untrusted ,然后让它终止信任进程,12种方法全部拦截,表示通过。
如图,由于被隔离,APT只能列出 Untrusted 进程。无法测试。

[attach]108811[/attach]

[b]SPT[/b]  [url]http://www.syssafety.com/leaktests.html[/url]
加入 Untrusted ,然后测试,终止 DefenseWall 的两个进程。服务无法终止,图形界面进程在10、11号测试退出,但 SPT 提示终止进程失败。不管怎样,在 SPT 测试中,表现很出色。16 号测试,SPT会完全占用CPU,等了很久,DefenseWall 提示不再有攻击行为,被我用快捷键终止了,相关进程并未终止。

整个测试的截图 (点击查看):

[attach]108812[/attach]

DefenseWall 的截图 ,有些特殊方法专门定义了一个事件叫 Shatter :
[attach]108813[/attach][attach]108814[/attach][attach]108815[/attach][attach]108816[/attach][attach]108817[/attach]

[[i] 本帖最后由 ubuntu 于 2007-8-3 21:59 编辑 [/i]]

ubuntu 发表于 2007-8-1 21:37

拦截键盘记录 (keylogger) 测试

[b]AKLT[/b] ([url]http://www.firewallleaktester.com/aklt.htm[/url])
DefenseWall 拦截的 80%的 keylogger 都没有弹出提示,AKLT 是个例外,它属于高级键盘记录程序。

GetKeyState、GetAsyncKeyState、DirectX 是记录键盘的;
Scrennshot1、Screenshot2 是截取屏幕的。

[attach]108872[/attach]

拦截 GetKeyState 记录键盘:

[attach]108860[/attach]

拦截 GetAsyncKeyState 记录键盘:

[attach]108861[/attach]

拦截 DirectX 记录键盘:

[attach]108862[/attach]

拦截 第一种截图方式:

[attach]108863[/attach]

拦截 第二种截图方式:

[attach]108864[/attach]



[b]Simple keylogger leaktest[/b]. ([url]http://www.syssafety.com/leaktests.html[/url])

将 keylogger.exe 加入 Untrusted,运行一个信任程序(记事本),然后检查 keylogger.exe 是否将输入的内容记录到 C:\keylogger.log。

keylogger 1
弹出提示:
[attach]108865[/attach]

日志:
[attach]108866[/attach]

keylogger 2
弹出提示:
[attach]108867[/attach]

日志:
[attach]108868[/attach]

keylogger 3 和 keylogger4 的日志是一样的:

[attach]108869[/attach]



[b]Martin's Undetectable keylogger[/b] ([url]http://www.winsite.com/bin/Info?26000000037599[/url])

DefenseWall 弹出警告:

[attach]108870[/attach]

日志 (Process reads keystrokes via GetKeyState) :

[attach]108871[/attach]

[[i] 本帖最后由 ubuntu 于 2007-8-3 23:07 编辑 [/i]]

ubuntu 发表于 2007-8-1 21:38

Prueba 直接操作系统内核,提升信任进程的权限。
先看下 EQSecure :

[attach]108482[/attach][attach]108483[/attach]
[quote]2007-08-02 21:40:57    Direct modify SCC      Action:Block
Application Path:F:\virus\prueba.exe
Rules:All Application Rules->*

2007-08-02 21:41:23    Run Application      Action:Block
Application Path:F:\virus\prueba.exe
File Path:C:\windows\explorer.exe
Rules:All Application Rules->*[/quote]

由于 explorer 会被 prueba 执行, explorer 会被自动加入 Untrusted。

DefenseWall 的一些截图:

System level debug (直接操作系统内核)

[attach]108475[/attach]

提升信任进程的权限:

[attach]108476[/attach]

修改注册表:

[attach]108477[/attach]

添加自启动:

[attach]108478[/attach]

全局钩子:

[attach]108479[/attach]

生成的目录、可执行文件自动加入 Untrusted,子程序会继承父程序的 Untrusted 属性,依然会被隔离:

[attach]108480[/attach]

Rollback 可以回滚、还原、删除的文件:

[attach]108481[/attach]

通过上面测试,我推测 DefenseWall 可以通过所有的 Unhookers 测试。

[[i] 本帖最后由 ubuntu 于 2007-8-2 22:15 编辑 [/i]]

ubuntu 发表于 2007-8-1 21:38

两个玩笑程序,能拦截的HIPS 不多。

ks.exe 会隐藏所有窗口,DefenseWall 可以拦截隐藏信任程序窗口的动作。
[b]Attemps to hide/show window of the process C:\Program Files\DefenseWall\defensewall.exe.[/b]

[attach]108875[/attach]

Allure.exe 会移动并关闭所有窗口。 DefenseWall 会拦截关闭窗口的动作。可以用 DefenseWall 的快捷键结束Allure的进程。
[b]Attemps to send keyboard/mouse input into the window of the process C:\Program Files\DefenseWall\defensewall.exe.[/b]

[attach]108876[/attach]


附 :DefenseWall 基本不拦截修改系统时间的操作,没用 key 的话,DefenseWall 下次重启会退出或者不加载驱动,但是,由于阻止了自启动、服务和驱动的安装,应该影响不大。推测:对有 key 的用户,修改时间没明显效果,DefenseWall 还会正常载入。

[[i] 本帖最后由 ubuntu 于 2007-8-4 00:04 编辑 [/i]]

sxingbai 发表于 2007-8-1 22:18

图文并茂,赞一个[:27:]

pils 发表于 2007-8-2 00:12

等你测试完全了,在加精。

应该是DefenseWall最全面的评测了。

泊远 发表于 2007-8-2 08:05

谢谢楼主介绍,一会就试用

jasonweel 发表于 2007-8-2 08:12

介绍的我心动,考虑尝试下

wildbee 发表于 2007-8-2 08:31

楼主的精彩介绍让我一看就想用它了。不知有否破解的或注册机之类的。

yusup 发表于 2007-8-2 09:22

可惜是E文的,有汉化的就用了,很强悍呀。

cant 发表于 2007-8-2 09:40

果然是好文。。ubuntu有时间再测试下geswall怎么样。那个我感觉可能是沙盘里最强的,可以添加通配符的[:10:]

页: [1] 2 3 4 5 6 7 8 9

Powered by Discuz! Archiver 6.1.0  © 2001-2007 Comsenz Inc.