这篇文章提供对系统入侵检测的建议做法,以下共分十点:
1. 检视连线记录档中是否有不寻常的来源位置或不寻常的操作动作。例如, 检查你最後的登录时间, 程序的执行记录以及syslog所做的记录。除非你的记录档写在只能新增资料(append-only)的边上, 不然这些动作不可忽略。许多的入侵者会修改记录档来隐藏他们的行踪。
2.找出系统中所有setuid及setgid的档案(特别是setuid成root的档案)。入侵者经常喜欢留下setuid root的/bin/sh或/bin/time, 如此当他以後再登入时便能轻易拥有root的权限。在UNIX系统中, find这个指令可以帮我们找出setuid及setgid的档案。你可以使用以下命令来找出整个档案系统中所有setuid root和setgid kmem的档案
find / -user root -perm -4000 -print find / -group kmem -perm -2000 -print
上列的例子会搜寻整个档案系统, 包括NFS及AFS。有些find命令支援一个”-xdev”的参数,可用来避免搜寻非本机的档案系统, 如下所示:
find / -user root -perm -4000 -print -xdev
另外我们也可以用ncheck找出某一磁碟分割区中所有setuid的档案。例如我们可以使用下列的命令, 找出分割区/dev/rsd0g中所有的setuid档案:
ncheck -s /dev/rsd0g
3.检查你系统的执行档看看它们是否被修改了。入侵者会修改UNIX系统的程式, 如login、su、telnet、netstat、ifconfig、ls、find、du、df、libc、sync、任何在/etc/inet.conf
记载的程式及其它重要的网路及系统程式和分享资源的程式库。用未经修改的备份来和你目前的系统做比较, 例如你可以用系统安装片里的资料来比较。要特别小心挑选你拿来做比较的备份,不注意的话它可能本身就含有木马程式。
4.检查你系统中是否有正在执行网路监听程式(sniffer)。入侵者可能透过监听程式取得使用者帐号及密码。相关的讯息请参阅CERT advisory CA-94:01,网址:
http://www.cert.org/advisories/CA-94.01.ongoing.network.monitoring.attacks.html
5.检查系统中所有由”cron”和”at”所执行的程式。入侵者可能会留下後门并由”cron”或”at”来执行它。即使你後来在别的程式做了连线位置的限定, 入侵者依旧可以透过这个後门回到系统中。另外, 我们也要检查那些被”cron”或”at”执行的程式属性, 要避免任何人都能写入修改它们。
6.检查/etc/inetd.conf的资料,注意是否有被更动,尤其是更动成执行shell程式(如/bin/sh,/bin/csh), 并检查各服务的对应程式是否正确,已避免被改换成木马程式。并检查/etc/inetd.conf的各种服务是否有原本不提供的服务被开启。另外你也须检查那些正常,但已被你关掉的服务,因为入侵者可能会打开原本你先前关掉的服务,或者是用木马程式换掉inetd程式。
7.检查系统/etc/passwd的内容及档案属性的更动。基本上, 察看内容是否有管理者不知道的新帐号、没有密码的帐号或uid与其它使用者相同(特别是uid 0, root) 的帐号。
8.检查你的系统与网路设定档。基本上,检查/etc/hosts.equiv,/etc/hosts.lpd,和所有.rhosts档案, 看看是否有”+”(加号)或不应存在的host存在档案中。并且不可让任何人都可以写入这些档案。再者,确定这些档案不是被入侵者所创造的。
9.找出系统不寻常或隐藏的档案(档名以”.”开头或是只用”ls”看不到的档案),这些有可能是用来隐藏工具或资料用的。要在使用者目录底下放一个隐藏目录, 通常使用较奇特的档名, 如”…” 或”.. “(点、点、空白)或者”..^G”(^G是control-G). 要如何找出这些档呢? 我们可以再使用”find”来帮我们找出这些档案, 如下:
find / -name ".. " -print -xdev find / -name ".*" -print -xdev | cat -v
10.当你要检查机器是否被入侵, 你必须检查所有区域网路上的机器。大部分的情形是, 假如一台机器被入侵了,很可能同一网段的其它机器也被入侵了。特别是当你使用NIS或是使用了/etc/hosts.equiv或.rhosts这些设定档。
-- ※ 链接: http://fanqiang.chinaunix.net/a5/b1/20011102/0900001534.html
|