2023-02-10 06:48:09 发布人:hao333 阅读( 4490)
通过综合采用用户级别的top、ps等系统工具以及Linux内核防护技术,我们可以从用户 内核两个层次全方位地保护Linux系统中重要系统进程以及用户进程的安全性。
通过在用户级综合采用top、ps等系统工具和Linux内核保护技术,从用户/内核级全面保护Linux系统中重要系统进程和用户进程的安全。
信息保密的经典安全模型Bell-LaPadula模型指出,进程是整个计算机系统的一个主体,它需要一定的安全级别才能作用于对象。在某些情况下,进程可以对文件和数据库等对象进行操作。如果进程被用于其他非法用途,会给系统带来很大的危害。现实生活中,很多网络黑客都会种植“木马”来破坏计算机系统,进行入侵,而这些“木马”程序都需要通过进程在机器上运行才能发挥作用。此外,许多破坏性程序和攻击方法需要破坏目标计算机系统的合法进程,尤其是重要的系统进程,使系统无法完成正常工作甚至工作,从而达到破坏目标计算机系统的目的。占服务器市场份额绝大部分的Linux系统,为了保证计算机系统的安全,必须对其进程进行监控和保护。
用户级流程监控工具
Linux系统提供了who、W、ps、top等系统调用来查看进程信息。通过结合这些系统调用,我们可以清楚地了解进程的运行状态和存活情况,并采取相应的措施来保证Linux系统的安全性。它们是目前Linux下最常用的检查进程状态的工具。它们随Linux套件一起分发,用户可以在系统安装后使用它们。
1.who命令:该命令主要用于检查当前在线用户。系统管理员可以使用who命令来监视此时每个登录用户的行为。
2.w命令:该命令也用于显示登录到系统的用户。然而,与世卫组织不同的是,W司令部更加强大。它不仅可以显示谁登录了系统,还可以显示这些用户当前的工作。w命令是世卫组织命令的增强版。
3.ps命令:该命令是最基本、最强大的进程检查命令。可以用来判断哪些进程正在运行及其运行状态,进程是否结束,进程是否死亡,哪些进程占用了太多的资源。Ps命令可以监控后台进程的工作,因为后台进程不与屏幕键盘等标准输入输出设备进行通信。如果需要检查其情况,可以使用ps命令。
4.top命令:top命令和ps命令的基本功能是一样的。它显示的是系统当前的进程及其状态,但是top是动态显示的进程,按用户键可以不断刷新当前状态。如果命令在前台执行,它将独占前台,直到用户终止程序。更准确地说,top命令提供了对系统处理器的实时状态监控。可以显示系统中CPU最“敏感”的任务列表。该命令可以根据CPU使用率、内存使用率和执行时间对任务进行排序,其许多功能可以通过交互式命令或在个人定制文件中设置。
一些需要监控的关键流程
从上面的介绍可以看出,Linux提供的这些命令可以提供进程的一些信息,通过这些信息可以查看系统当前的进程状态,也可以找出那些占用系统资源过多的进程,结束进程。它们的优点是速度快,透明度好,直观明了。下表列出了Linux系统中常见的和重要的进程(没有完全列出,用户可以参考相应的资料)。用户可以使用上述工具对这些重要过程进行实时监控,并采取相应的保护措施。
系统调用有缺点。
上述的进程监控方法和工具都是通过调用操作系统提供的相应API接口函数或系统调用来实现的。我们得到的只是接口函数处理的结果,并不能主动从操作系统内核的进程数据结构中得到我们需要的信息。因此,它们具有以下缺点:
1.传统的过程监控方法运行效率低,反应时间长,实时性差。
2.无法实时高效地向用户报告当前系统运行安全状态。即使系统中有非法进程运行,系统也无法识别。
3.它不能为用户捕捉非法流程和流程的活动轨迹提供证据。当一个非法进程运行并对系统造成损害时,即使用户通过查看进程列表发现了该非法进程,也不清楚从进程启动到捕获到这样一个非法进程,该进程对系统造成了什么损害,比如访问和修改了哪些重要的系统文件,占用了哪些系统资源等等。这些都给以后的恢复和治疗带来了很大的问题。
4.执行程序在用户状态下工作,本质上是不安全的。入侵系统的黑客可以轻而易举地找到这些进程监视器的磁盘镜像并删除甚至替换,这将给系统带来不可估量的损失。这一点需要特别强调。比如黑客成功入侵系统,就可以植入自己改写的ps程序,替换原系统的ps程序,让用户无法通过这个工具知道系统中当前运行的非法进程,这样无论黑客如何植入木马或其他程序,用户都无法知道,也就无法采取措施阻止这些行为。不言而喻,这样的后果非常严重。但是,在我们下面要介绍的进程监控程序中,黑客不可能或者很难深入内核破坏进程监控程序,从而保证自身的安全性。
基于以上不足,我们提出了Linux内核中实时进程监控的原理和技术。该技术主要分为以下步骤:
首先,在一个“干净”的系统环境中,全面运行系统中的安全进程,在Linux环境下分析收集这些进程的相关信息(包括进程ID号、进程名称、进程可执行映像、进程启动时间、父进程等主要信息),形成“系统安全进程列表”,作为进程监控的依据。
然后,监控代码在进程调度过程中实时收集系统中正在运行的进程的信息。如果发现某个进程不在“系统安全进程列表”中,立即通过终端输出该进程的PID号、名称、可执行映像等信息,或者通过声音向用户报警,等待用户处理。在这个等待过程中,停止调度进程,直到用户响应(释放进程或终止进程)。
第二步,如果超级用户(系统管理员)释放了该进程,可以将该进程添加到“系统安全进程列表”中,对列表进行完善;如果一般用户在使用过程中释放了一个进程,那么就需要记录该用户的用户名和身份,并将释放的进程记录为日志,这是超级用户(系统管理员)审核用户行为或修改“系统安全进程列表”时的有力依据。
另外,在系统运行过程中,如果发现一些重要的进程(包括kswapd、bdflush等。)在“系统安全进程列表”中没有运行,该进程的“丢失”信息将立即存储在文件中,以便在系统恢复过程中对它们进行有针对性的恢复。根据不同情况,有的需要立即停机恢复流程,有的可以现场恢复。
下一篇:手把手教你正确设置3G路由器
相关阅读
RelatedReading猜你喜欢
Guessyoulike