精华区 [关闭][返回]

当前位置:网易精华区>>讨论区精华>>电脑技术>>● 计算机安全>>◇网络安全◇>>系统防卫>>系统防卫(一)

主题:系统防卫(一)
发信人: HPVC()
整理人: williamlong(1999-12-13 19:02:04), 站内信件
1.用w指令查看系统信息

$w
9:01pm  up 10:08,  1 user,  load average: 0.08, 0.06, 0.05
User     tty           login@  idle   JCPU   PCPU  what
notes    console      10:54am 9days  28:04  23:29  /usr/dt/bin/dtscreen -mode blank
notes    pts/2        10:54am 10:07                /sbin/sh
notes    pts/4        10:54am 10:06                /sbin/sh
notes    pts/5        10:56am  9:59                /sbin/sh     

 在w显示信息的最开头是发出w命令的时间、系统启动后的时间、及注册在系统的用户数。
最后的三个数表示平均负载,即使用系统资源的程度,使用w命令给系统增加了0.08负载。
其他两个数字分别表示在最后5分钟及十五分钟内系统的平均负载量。
 注意:当有人在猜password时,将会大大增加系统的平均负载。

 2.进程记帐
   Unix 系统可以通过设置选项来让核心在每个进程结束时产生一个记录。这些记录所产
生的报告被称为进程记帐。它包括进程使用资源的信息,以及所执行的命令名。如果运行
的是调整用户id程序,则还包括用户名等。系统管理员可根据进程记帐的CPU时间让用户
交纳上机费,也可用进程记帐来观察某一用户执行了哪些命令。
  进程记帐和审计是两码事,审计是监视对安全性敏感的事件。进程记帐并不记下所执行
命令的参数,所以无法知道某一命令修改了哪个文件,甚至也不知道此命令的执行是否成
功。但系统管理员仍然可以在进程记帐中找出某些线索。
    基于System V的系统和基于BSD的系统在进程记帐方面所采纳的方法不同,命令也不
一样。

  2.1 System V记帐
  在System V 中,进程记帐保存在/usr/adm/pactt文件中。root可运行/usr/lib/acct/startup
来启动进程记帐。记帐信息的日常处理可用runacct命令来做,它会压缩pacct文件。每月
的处理由shell程序monacct来完成。这两个程序都在/usr/lib/acct目录下。
  acctcom 命令可用来搜索pacct中的内容,并产生报告。例如:查找用户"tommy"在
10:00 至11:30这段时间内所执行的全部命令。见下表:

$acctcom -u tommy -s 10:00 -e 11:30
START BEF: Sat Oct 10 11:30:00 1998
END AFTER: Sat Oct 10 10:00:00 1998
COMMAND                           START    END          REAL     CPU    MEAN
NAME       USER     TTYNAME       TIME     TIME       (SECS)  (SECS) SIZE(K)
cat        tommy     pts/3        11:01:13 11:01:13     0.02    0.02  492.00
mail       tommy     pts/3        11:01:13 11:01:13     0.02    0.02  876.00
clear      tommy     pts/3        11:01:14 11:01:14     0.03    0.01  744.00
ls         tommy     pts/3        11:01:16 11:01:16     0.03    0.03  776.00
date       tommy     pts/3        11:01:23 11:01:23     0.01    0.01  664.00   

   acctcom命令用来告诉系统管理员某一用户干了些什么,而不是正在干什么,而且它指
列出了命令名,没有参数。所以,从中发现一些线索,如可找出使用大量cpu时间的进程
(典型的是猜口令进程)。

  可用shell程序runacct来产生几个报告。这些报告存放在/usr/adm/acct/sum目录下,
其文件名格式为rprtMMDD。报告的第一部分包含"变更"信息,如进程记帐启动及关闭的
时间(关闭记帐可能是由于某人想隐藏某些活动),以及系统时间的改变。第二部分是每个
用户注册到系统的时间以及有关每个端口的报告,还包括了每个端口上"接通"和"断开"
的次数。"接通"表示一次成功的注册,"断开"表示退出系统或注册失败。大量的"断开"
可能意味着有人在试验"注册名,口令"序列组试图侵入系统中。
  报告的最后一部分是有关用户最后一次注册的信息,这个最后注册报告是随着用户的
不断注册、退出而时刻更新的。报告中还包括用户名及最后的注册时间,越早退出系统
的帐号排在越前。这个报告对于发现那些死帐号非常有用,管理员可能会在这里发现一
些奇怪的事情如有人注册到系统管理的帐号中(如bin或sys)。


  2.2 BSD系统的记帐

      BSD系统的进程记帐用/usr/etc/accton程序启动。默认的记帐文件为/usr/adm/acct
只要启动了进程记帐,该文件会增长得很快。BSD有两条命令来处理记帐信息。第一条是
/usr/etc/ac,处理在/usr/adm/wtmp文件中的注册信息,第二条是 /usr/etc/sa,产生已用
命令的小结报告,保存在/usr/adm/savacct文件中。
     BSD系统中也有与acctcom类似的命令叫做lastcomm。lastcomm命令反向搜索/usr/adm/acct
文件,产生出与acctcom命令相似的结果。
    BSD记帐系统也和System V一样,有类似的缺陷(从安全性角度讲),即不保留命令的参数。
并且,BSD系统没有最后注册的报告。
  

 现在针对前面的两点防卫措施,从攻的角度来看:
    1.对与第一点中用w、who、last、ps等命令,hacker完全可以用程序将自己的记录隐藏
      起来,使管理员用以上几个命令都查看不到。当然此时hacker已经把root的权限得到
      手(如何得到,下章讨论)。
    2.就算最笨的hacker,当他无法隐藏自己时,他也会把整个记录文件删除掉,免得管理员
      查到用什么帐号从哪里登录进来,运行了些什么指令。但显而易见,虽然管理员此时
      (没安装第三方的审记软件时)不能知道谁人在哪里发起攻击,但也无疑地告诉管理员
      "你的系统已经给攻破了"。  

--
※ 来源:.广州网易 BBS bbs.nease.net.[FROM: bluesky]

[关闭][返回]