[b]绪言[/b]
  仅以本文献给Windows下的主机系统管理员,早日摆脱***的侵扰——当然,你也可以用它来对付流氓软件,虽然有点大材小用。
  完整性是安全要求的基本要求之一,下面将介绍利用免费的文件完整性检测工具Sentinel来检查系统的完整性,以察觉对系统的更改来保证系统的安全性。
[b]一、系统的完整性[/b]
  对一个Windows系统管理员来说,主机系统的安全是一个重要的课题也是一个挑战。一向来Windows系统漏洞比较多,相对也容易被***。平常的做法是安装最新的补丁(虽然M$的补丁有时会引起新的漏洞),安装防火墙等手段努力使自己的系统变得强壮。但是操作系统的漏洞总是隔三差五地出来,从这个角度上可以很绝对的说,互联网上没有安全的主机,包括UNIX系统。
  对***者而言,利用漏洞进入系统往往只是第一步,如果想得到更多的,如超级用户的密码,数据库的口令等,往往需要下点功夫,最便捷也是最有效的就是改动或特洛伊化受侵害的主机上的文件,如放置自己的后台程序,替代某些关键文件,安装后台进程,伪装成系统文件等。比如经常会看到c:\winnt\目录下有一个rundll32.exe,或者有一个svch0st.exe等。
  众所周知的,一个操作系统的正常运行要靠系统程序的正常执行,而程序的运行又与其可执行文件休戚相关。所以,维护系统完整性是确保系统安全的一项基本工作。这里的系统完整性是指系统中可执行文件的完整性,也就是说系统中的程序文件没被非法修改。
如果能做到这一点,基本可以杜绝病毒或者***的***,安全性也能得到保证。同样的一个道理,流氓软件就更不在话下了。
  在Windows下发现流氓软件或者***一般是通过进程管理软件,或者cport等工具来发现异常的进程或者非法的TCP连接,或者查看启动组里面未知的自启动项,然后来判断这个文件或者进程的合法性。但随着技术的发展,目前的***技术也是日新月异,进步神速。一些常用手段比如隐藏进程,隐藏文件,重用端口等已经非常普及。03年出现的***之门是其中的代表之一,它如果安装到系统中,已经可以做到没有独立文件,没有端口,没有启动项,没有进程,没有加载模块(DLL),简单就无从下手查杀。
  如果机器被***但是没能发现这些改变的话,那时的服务器真就是“人为刀俎,我为鱼肉”,成为“肉鸡”。为了改变这种被动的局面,需要一种文件完整性检查工具,使得当系统文件被恶意修改后能及时发现,从而为进一步处理创造条件。
[b]二、UNIX下的文件完整性工具[/b]
  UNIX系统下的管理员一向是比较幸福的,虽然操作起来很繁琐,但是无论哪一个方面都有成熟的工具以及技术。这不,在UNIX下就有大名鼎鼎的开源Tripwire,它是一款最为常用的开放源码的完整性检查工具。它生成目标文件的校验和并周期性的检查文件是否被更改。与大多数完整性检查程序相同,对于需要监视的文件,Tripwire会使用校验和来为文件的某个状态生成唯一的标识(又称为"快照"),并将其存放起来以备后用。当Tripwire程序运行时,它先计算新的标识,并于存放的原标识加以比较,如果发现不匹配的话,它就报告系统管理人员文件已经被修改。接下来,系统管理员就可以利用这个不匹配来判断系统是否遭到了***
  AIDE(Advanced Intrusion Detection Environment)高级***检测环境, 是另一个文件完整性检测工具,
一种类型的***检测程序。它的原理也是类似,不做赘述
[b]三、Windows下的文件完整性检查工具Sentinel[/b]
  Windows下这类的工具较少,可能是因为需求的关系,业内这类比较成熟的工具非常少。RegSnap也有这个功能,但非常有限。DiskState也可以实现这个,但是用起来非常难用速度也很慢。一次无意中转论坛发觉这个Sentinel的工具,正好有这个功能,试用了一下,非常不错,迫不及待来介绍给大家。
  Sentinel是一个国外的的作品,全英文软件(很容易懂的应该,汉化就不用了吧),完全免费。
[b]1、软件小档案[/b]
[b] 软件名称:[/b]
 Sentinel
[b] 软件版本:[/b]
[color=#000000] 2.0[/color]
[b] 软件大小:[/b]
 1.6M
[b] 软件授权:[/b]
 免费
[b] 适用平台:[/b]
 Win9x/WinME/Win2000/XP/2003
[b] 下载地址:[/b]
 点击下载
  简介:一款免费的Windows文件完整性检查工具,通过CRC32,MD4,MD5等算法来对比确定文件的状态保存系统文件的状态,从而可以发现文件的异常变动。
[b]2、安装[/b]
  安装过程简单得不需要说了。
[b]3、使用[/b]
  第一次运行会提示是第一次运行,提示是否要扫描保存状态,选确定,它会第一次扫描并且保存系统的状态,以后它就根据这个来对比。默认情况下只检查%SYSTEMROOT%\system32目录下的文件(如图1)。你可以在它的选项中重选一下。建议对整个系统根目录检查(多数为C:\WINDOWS)。
[IMG]http://www.hack58.net/Article/UploadPic/2006-12/20061226103210869.jpg[/IMG]
图1
选择扫描目录当我们觉得系统有异常或者想做一个例行检查的时候,只需要运行一下,然后选择扫描(Scan),选择要扫描的文件类型(DLL,DRV,SYS,OCX,EXE,COM,PIF,SCR),一般情况下就是全选,然后点立即扫描目录(Scan
Folder Now)。Sential接下来就会扫描所有的文件,并且跟以前的文件状态进行比较,可以比较清楚看到它的扫描状态(如图2):
[IMG]http://www.hack58.net/Article/UploadPic/2006-12/20061226103213938.jpg[/IMG]
图2 扫描状态
  扫描时间取决于选择目录的多少,一般非常快,十几秒而已。出一个状态显示已经扫描的文件,新文件数,失败的文件数(即更改的文件)等,如图3。接着点那个修复和更新失败的文件按钮,下一张图就显示所有变化的文件:
[IMG]http://www.hack58.net/Article/UploadPic/2006-12/20061226103213457.jpg[/IMG]
图3
扫描结果文件后面有一个*NEW*说明是新增加的,否则就是被更改的文件。你可以根据这个信息来进一步判断,新增或者更改的文件是否是合法的,有效的。
[IMG]http://www.hack58.net/Article/UploadPic/2006-12/20061226103214943.jpg[/IMG]
图4 新增及被更改文件列表
  除了默认的SYSTEM32目录之外,还可以自定义多达20个其它目录,如图5,这样可以根据需要,来监视相应的目录文件变化情况:
[IMG]http://www.hack58.net/Article/UploadPic/2006-12/20061226103214269.jpg[/IMG]
图5
自定义监视目录Sential除了文件完整性检查之后,还有一个RegWatch(注册表察看)的功能,如图6,可能显示当前的启动项:
[IMG]http://www.hack58.net/Article/UploadPic/2006-12/20061226103214726.jpg[/IMG]
图6 当前启动项
  还有一个AppWatch(应用程序察看),来查看当前的窗口句柄(如图7):
[IMG]http://www.hack58.net/Article/UploadPic/2006-12/20061226103214122.jpg[/IMG]
图7 当前的窗口句柄
  当然这两项功能都是比较简单的,跟同类型的其它软件比起来,这个不是它的特色。具体的做法可以自己摸索。另外Sentinel里面还有相关的选项,可以查看日志以及选择文件的算法等。
[b]四、总结及其它[/b]
  正如Sentinel软件封面上的那句话一样:Your Last Line of Defense Against Malicious
Attacks(你防范恶意***的最后一道防线)
  文件完整性是观察系统发生哪些变化的最后一招。一向来流氓软件或者******都把自已藏身于SYSTEM32目录下的数千个文件,比如象早期的飘雪,MY123等驱动,都可以通过这种方式找出来。
  安全以及防范流氓软件是一个综合过程,不能指望一招可以解决所有问题。最难的是确定系统的变化情况,找出原因,这样才可以为下一步堵住漏洞,找到***等打下基础。从此任何流氓***也别想偷偷躲在你的系统当中。
  本文针对一些比较有经验的管理员以及期望对自己的系统有一个完整性了解的用户,首发于
[url]www.nslog.cn[/url],如果你发现有同类较好的软件,欢迎与我交流nslog.cn#gmail.com
  第一次运行会提示是第一次运行,提示是否要扫描保存状态,选确定,它会第一次扫描并且保存系统的状态,以后它就根据这个来对比。默认情况下只检查%SYSTEMROOT%\system32目录下的文件。你可以在它的选项中重选一下。建议对整个系统根目录检查(多数为C:\WINDOWS)。