|
4、执行程序工作在用户态,本身就不安全,入侵系统的黑客可以轻松地找到这些进程监控程序的磁盘映像,进行删除甚至替换,从而会给系统带来不可估量的损失。这一点尤其需要强调,比如说,黑客入侵系统成功,就可以植入他们所改写的ps程序以替换原来系统的ps程序,这样就使得用户不能通过该工具得知系统中当前运行的不法进程,这样无论黑客如何植入木马或者其他程序,用户都无法知道,从而无法采取措施终止这些行为。不言而喻,这样的后果是很严重的。而在我们下面所要介绍的一种运行于内核的进程监控程序当中,黑客根本无法或者很难深入内核来破坏该进程监控程序,从而使其能够很好地保证自身的安全。
基于上述种种不足,我们提出了在Linux内核中实现进程实时监控的原理和技术。该技术主要分为以下几个步骤:
首先,在“干净”的系统环境下,全面地运行系统中的安全进程,分析和搜集Linux环境下这些进程的相关信息(包括进程ID号、进程名称、进程可执行映像、进程的开始时间、进程的父进程等主要信息),形成一张“系统安全进程列表”,作为进程监控的依据。
接着,监控代码在进程调度过程中实时地搜集系统中运行进程的信息。如果发现进程不在 “系统安全进程列表”当中,则马上通过终端输出该进程的PID号、名称、进程的可执行映像等信息,或者通过声音向用户报警,等待用户处理,在这个等待的过程中,终止调度该进程,直到用户做出响应(放行该进程或者杀死该进程)。
在第二步当中,如果超级用户(系统管理员)放行了该进程,则可以将该进程加入“系统安全进程列表”,以完善该列表;如果是一般用户在使用过程当中放行了某个进程,那么,需要将该用户的用户名和身份记录下来,并且将放行的进程记录下来存为日志,那么,当超级用户(系统管理员)无论是在审核用户行为还是在修改“系统安全进程列表”时,都是一个有力的依据。
另外,在系统运行过程当中,如果发现“系统安全进程列表”当中的某些重要的进程 (包括kswapd、bdflush等)不在运行,则马上将该进程“遗失”的信息存入文件,以备在系统的恢复过程当中,对它们进行针对性的恢复,根据不同的情况,有的需要马上停机,恢复进程,有的则可以现场恢复。 |
|
【收藏】【打印】【进入论坛】 |
|
|
|
|
|
|
|