下面举个简单的例子,说明安全管理员如何来全面查看系统中一个运行进程的相关信息。
(1)进程的基本信息都会存放在/proc文件系统中,具体位置是在/proc目录下。通过使用如下命令可以查看系统中运行进程的相关信息,如图1所示,其中显示为系统中运行进程的信息所存放的目录,每个进程对应一个目录,3193为例子使用的进程的详细信息所在目录:
图1 /ls/proc命令显示结果
(2)切换到3193目录,以方便详细的查看进程信息,并列出进程详细的状态信息文件,如图2所示:
图2 进程3193信息所在目录
(3)在这些文件当中,status这个状态文件是比较重要的,包含了很多关于进程的有用的信息,用户可以从这个文件获得信息,如下所示:
其中,比较重要的字段详细含义如下:
Name: scientific_comp //进程名
State: R (running) //进程运行状态
Tgid: 3193 //进程组ID
Pid: 3193 //进程ID
PPid: 3123 //父进程ID
TracerPid: 0 //跟踪调试进程ID
Uid: 6004 6004 6004 6004 //进程所对应程序的UID
Gid: 6004 6004 6004 6004 //进程所对应程序的GID
FDSize: 256 //进程使用文件句柄大小
Groups: 6004 //组信息
这样,安全管理员就可以通过进程名、进程ID、父进程ID、UID、GID等信息来综合判定系统中进程的合法状态,以捕捉非法进程,并进行后续处理。
三、管理手段三:限制进程使用的资源
在系统使用过程中,一些用户编写的进程可能无意识地创建一些大型的文件或者派生(fork)过多地进程,从而过度消耗系统资源,引起系统的不稳定。同时,一些病毒也可能有派生多个进程的行为出现,如臭名昭著的“震荡波”病毒。这些都使得我们有必要来限制进程使用的资源,保证系统安全。
为了防止进程或者其子进程创建大型文件,可以使用ulimit命令来进行限制,具体的命令使用ulimit –f后接以K字节为单位指定的最大文件尺寸。图3举出了一个具体的例子加以说明。在该例子中,首先采用ulimit命令限制当前shell进程可以创建的文件大小;然后,采用yes命令不断写入大量的字符串到test.txt文件中,该文件大小超过了ulimit命令许可的范围,结果系统提示文件超过了大小,并终止了yes命令的不断写入过程。从后面使用ls命令来查看test.txt文件的大小来看,ulimit命令很好地将该文件大小限制在20KB的范围之内。
图3 ulimit命令使用示意
(责任编辑:闫小琪)