仅以本文献给Windows下的主机系统管理员,早日摆脱黑客的侵扰——当然,你也可以用它来对付流氓软件,虽然有点大材小用.
完整性是安全要求的基本要求之一,下面将介绍利用免费的文件完整性检测工具Sentinel 2来检查系统的完整性,以察觉对系统的更改来保证系统的安全性.
一、系统的完整性
对一个Windows系统管理员来说,主机系统的安全是一个重要的课题也是一个挑战。一向来Windows系统漏洞比较多,相对也容易被入侵。平常的做法是安装最新的补丁(虽然M$的补丁有时会引起新的漏洞),安装防火墙等手段努力使自己的系统变得强壮。但是操作系统的漏洞总是隔三差五地出来,从这个角度上可以很绝对的说,互联网上没有安全的主机,包括UNIX系统。
对入侵者而言,利用漏洞进入系统往往只是第一步,如果想得到更多的,如超级用户的密码,数据库的口令等,往往需要下点功夫,最便捷也是最有效的就是改动或特洛伊化受侵害的主机上的文件,如放置自己的后台程序,替代某些关键文件,安装后台进程,伪装成系统文件等。比如经常我们会看到c:winnt目录下有一个rundll32.exe,或者有一个svch0st.exe等。
从所周知的,一个操作系统的正常运行要靠系统程序的正常执行,而程序的运行又与其可执行文件休戚相关。所以,维护系统完整性是确保系统安全的一项基本工作。这里的系统完整性是指系统中可执行文件的完整性,也就是说系统中的程序文件没被非法修改。如果能做到这一点,基本可以杜绝病毒或者木马的入侵,安全性也能得到保证。同样的一个道理,流氓软件就更不在话下了。
在Windows下发现流氓软件或者木马一般是通过进程管理软件,或者cport等工具来发现异常的进程或者非法的TCP连接,或者查看启动组里面未知的自启动项,然后来判断这个文件或者进程的合法性。但随着技术的发展,目前的木马技术也是日新月异,进步神速。一些常用手段比如隐藏进程,隐藏文件,重用端口等已经非常普及。03年出现的黑客之门是其中的代表之一,它如果安装到系统中,已经可以做到没有独立文件,没有端口,没有启动项,没有进程,没有加载模块(DLL),简单就无从下手查杀。
如果机器被入侵但是没能发现这些改变的话,那时的服务器真就是“人为刀俎,我为鱼肉”,成为“肉鸡。为了改变这种被动的局面,需要一种文件完整性检查工具,使得当系统文件被恶意修改后能及时发现,从而为进一步处理创造条件。
二、UNIX下的文件完整性工具
UNIX系统下的管理员一向是比较幸福的,虽然操作起来很繁琐,但是无论哪一个方面都有成熟的工具以及技术。这不,在UNIX下就有大名鼎鼎的开源 Tripwire,它是一款最为常用的开放源码的完整性检查工具。它生成目标文件的校验和并周期性的检查文件是否被更改。与大多数完整性检查程序相同,对于需要监视的文件,Tripwire会使用校验和来为文件的某个状态生成唯一的标识(又称为"快照"),并将其存放起来以备后用。当Tripwire程序运行时,它先计算新的标识,并于存放的原标识加以比较,如果发现不匹配的话,它就报告系统管理人员文件已经被修改。接下来,系统管理员就可以利用这个不匹配来判断系统是否遭到了入侵。
AIDE(Advanced Intrusion Detection Environment)高级入侵检测环境, 是另一个文件完整性检测工具, 一种类型的入侵检测程序。它的原理也是类似,不做赘述。
三、Windows下的文件完整性检查工具Sentinel
Windows 下这类的工具较少,可能是因为需求的关系,业内这类比较成熟的工具非常少。RegSnap也有这个功能,但非常有限。DiskState也可以实现这个,但是用起来非常难用速度也很慢。一次无意中转论坛发觉这个Sentinel的工具,正好有这个功能,试用了一下,非常不错,迫不及待来介绍给大家。