了解一些进程安全相关基础知识
如何监控和保护Linux下进程安全 | ||
| 通过综合采用用户级别的top、ps等系统工具连同Linux内核防护技术,我们能够从用户/内核两个层次全方位地保护Linux系统中重要系统进程连同用户进程的安全性,从而达到保护Linux系统安全的目的 。 经典的信息保密性安全模型Bell-LaPadula模型指出,进程是整个电脑系统的一个主体,他需要通过一定的安全等级来对客体发生作用。进程在一定条件下能够对诸如文档、数据库等客体进行操作。假如进程用作其他不法用途,将给系统带来重大危害。在现实生活当中,许多网络黑客都是通过种植“木马”的办法来达到破坏电脑系统和入侵的目的,而这些“木马”程式无一例外的是需要通过进程这一方式在机器上运行才能发挥作用的。另外,许多破坏程式和攻击手段都需要通过破坏目标电脑系统的合法进程尤其是重要系统进程,使得系统不能完成正常的工作甚至无法工作,从而达到摧毁目标电脑系统的目的。作为服务器中占绝大多数市场份额的Linux系统,要切实确保电脑系统的安全,我们必须对其进程进行监控和保护。 用户级进程监控工具 Linux系统提供了who、w、ps和top等察看进程信息的系统调用,通过结合使用这些系统调用,我们能够清楚地了解进程的运行状态连同存活情况,从而采取相应的措施,来确保Linux系统的安全。他们是现在在Linux下最常见的进程状况查看工具,他们是随Linux套件发行的,安装好系统之后,用户就能够使用。 1.who命令:该命令主要用于查看当前在线上的用户情况。系统管理员能够使用who命令监控每个登录的用户此时此刻的所作所为。 2.w命令:该命令也用于显示登录到系统的用户情况,但是和who不同的是,w命令功能更加强大,他不但能够显示有谁登录到系统,还能够显示出这些用户当前正在进行的工作,w命令是who命令的一个增强版。 3.ps命令:该命令是最基本同时也是很强大的进程查看命令。利用他能够确定有哪些进程正在运行及运行的状态、进程是否结束、进程有没有僵死、哪些进程占用了过多的资源等。ps命令能够监控后台进程的工作情况,因为后台进程是不和屏幕键盘这些标准输入/输出设备进行通信的,假如需要检测其情况,能够使用ps命令。下面是个ps命令的例子 $ ps x PID TTY STAT TIME COMMAND 5800 ttyp0 S 0:00 -bash 5813 ttyp1 S 0:00 -bash 5921 ttyp0 S 0:00 man ps 5922 ttyp0 S 0:00 sh -c /usr/bin/gunzip -c /var/catman/cat1/ps.1.gz/ 5923 ttyp0 S 0:00 /usr/bin/gunzip -c /var/catman/cat1/ps.1.gz 5924 ttyp0 S 0:00 /usr/bin/less -is 5941 ttyp1 R 0:00 ps x 4.top命令:top命令和ps命令的基本作用是相同的,显示系统当前的进程及其状态,但是top是个动态显示过程,能够通过用户按键来不断刷新当前状态。假如在前台执行该命令,他将独占前台,直到用户终止该程式为止。比较准确地说,top命令提供了实时的对系统处理器的状态监控。他能够显示系统中CPU最“敏感”的任务列表。该命令能够按CPU使用、内存使用和执行时间对任务进行排序,而且他的很多特性都能够通过交互式命令或在个人定制文档中进行设定。下面是个top命令的例子: 1:55pm up 7 min, 4 user, load average:0.07,0.09,0.06 29 processes:28 sleeping, 1 running, 0 zombie, 0 stopped CPU states: 4.5% user, 3.6% system, 0.0% nice, 91.9% idle Mem: 38916K av, 18564K used, 20352K free, 11660K shrd, 1220K buff Swap: 33228K av, 0K used, 33228K free, 11820K cached PID USER PRI NI SIZE RSS SHARE STAT LIB %CPU %MEM TIME COMMAND 363 root 14 0 708 708 552 R 0 8.1 1.8 0:00 top 1 root 0 0 404 404 344 S 0 0.0 1.0 0:03 init 2 root 0 0 0 0 0 SW 0 0.0 0.0 0:00 kflushd 3 root -12 -12 0 0 0 SW< 0 0.0 0.0 0:00 kswapd 需重点监控的一些进程 由上面的介绍可知,Linux提供的这些命令都能提供关于进程的一些信息,能够通过他们查看系统当前的进程状况,也能够找出那些占用了过多系统资源的进程并结束该进程。他们的长处在于速度快,透明性好,直观明了。下表给出了Linux系统中较为常见的重要的进程(没有完全列出,用户能够参考相应的资料),用户能够采用上述工具来实时的监测这些重要进程的情况,并采取相应的防护措施。 系统调用存在缺点我们上述所介绍的进程监控方法和工具都是基于调用操作系统给我们提供的相应的API接口函数或系统调用来实现的。我们所得到的只是接口函数处理后的结果,不能够主动地从操作系统内核的进程数据结构当中获取我们需要的信息。因而,他们具备如下缺点: 1.传统的进程监控方法运行效率比较低,同时反应时间也比较长,实时性能差。 2.不能够实时、高效地向用户报告当前系统运行的安全状况,就算系统中有不法进程在运行,系统也不能识别出来。 3.不能给用户捕获不法进程的行为提供证据和进程的活动轨迹。当一个不法进程运行并对系统产生破坏时,用户即使通过察看进程列表找到了不合法的进程,也不清楚到底从进程开始运行直到捕获到这样一个不法进程这样一段时间内,进程都对系统造成了哪些破坏,比如说,访问、修改了哪些重要的系统文档,占用了哪些系统资源等等。这些都给以后的恢复和处理工作带来了很大的问题。 4.执行程式工作在用户态,本身就不安全,入侵系统的黑客能够轻松地找到这些进程监控程式的磁盘映像,进行删除甚至替换,从而会给系统带来不可估量的损失。这一点尤其需要强调,比如说,黑客入侵系统成功,就能够植入他们所改写的ps程式以替换原来系统的ps程式,这样就使得用户不能通过该工具得知系统中当前运行的不法进程,这样无论黑客如何植入木马或其他程式,用户都无法知道,从而无法采取措施终止这些行为。不言而喻,这样的后果是很严重的。而在我们下面所要介绍的一种运行于内核的进程监控程式当中,黑客根本无法或很难深入内核来破坏该进程监控程式,从而使其能够很好地确保自身的安全。 内核的实时监控技术 首先,在“干净”的系统环境下,全面地运行系统中的安全进程,分析和搜集Linux环境下这些进程的相关信息(包括进程ID号、进程名称、进程可执行映像、进程的开始时间、进程的父进程等主要信息),形成一张“系统安全进程列表”,作为进程监控的依据。 接着,监控代码在进程调度过程中实时地搜集系统中运行进程的信息。假如发现进程不在“系统安全进程列表”当中,则马上通过终端输出该进程的PID号、名称、进程的可执行映像等信息,或通过声音向用户报警,等待用户处理,在这个等待的过程中,终止调度该进程,直到用户做出响应(放行该进程或杀死该进程)。 在第二步当中,假如终极用户(系统管理员)放行了该进程,则能够将该进程加入“系统安全进程列表”,以完善该列表;假如是一般用户在使用过程当中放行了某个进程,那么,需要将该用户的用户名和身份记录下来,并且将放行的进程记录下来存为日志,那么,当终极用户(系统管理员)无论是在审核用户行为还是在修改“系统安全进程列表”时,都是个有力的依据。 另外,在系统运行过程当中,假如发现“系统安全进程列表”当中的某些重要的进程(包括kswapd、bdflush等)不在运行,则马上将该进程“遗失”的信息存入文档,以备在系统的恢复过程当中,对他们进行针对性的恢复,根据不同的情况,有的需要马上停机,恢复进程,有的则能够现场恢复。
文章整理:西部数码--专业提供域名注册、虚拟主机服务 相关文章
热点关注
IDC资讯
虚拟主机
域名注册
托管租用
vps主机
智能建站
网站运营 建站经验 策划盈利 搜索优化 网站推广 免费资源 网站联盟 联盟新闻 联盟介绍 联盟点评 网赚技巧 行业资讯 业界动态 搜索引擎 网络游戏 门户动态 电子商务 广告传媒 网络编程 Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它 服务器技术 Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护 软件技巧 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷 Internet Explorer 网页制作 FrontPages Dreamweaver Javascript css photoshop fireworks Flash 程序设计 Java技术 C/C++ VB delphi 网络知识 网络协议 网络安全 网络管理 组网方案 Cisco技术 操作系统 Win2000 WinXP Win2003 Mac OS Linux FreeBSD |




