linux查看系统进程:监控和保护Linux系统下进程安全来源: 发布时间:星期四, 2009年2月12日 浏览:25次 评论:0
引:通过综合采用用户级别top、ps等系统工具以及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.070.090.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内核中实现进程实时监控原理和技术该技术主要分为以下几个步骤: 首先在“干净”系统环境下全面地运行系统中安全进程分析和搜集Linux环境下这些进程相关信息(包括进程ID号、进程名称、进程可执行映像、进程开始时间、进程父进程等主要信息)形成张“系统安全进程列表”作为进程监控依据 接着监控代码在进程调度过程中实时地搜集系统中运行进程信息如果发现进程不在“系统安全进程列表”当中则马上通过终端输出该进程PID号、名称、进程可执行映像等信息或者通过声音向用户报警等待用户处理在这个等待过程中终止调度该进程直到用户做出响应(放行该进程或者杀死该进程) 在第 2步当中如果超级用户(系统管理员)放行了该进程则可以将该进程加入“系统安全进程列表”以完善该列表;如果是般用户在使用过程当中放行了某个进程那么需要将该用户用户名和身份记录下来并且将放行进程记录下来存为日志那么当超级用户(系统管理员)无论是在审核用户行为还是在修改“系统安全进程列表”时都是个有力依据 另外在系统运行过程当中如果发现“系统安全进程列表”当中某些重要进程(包括kswapd、bdflush等)不在运行则马上将该进程“遗失”信息存入文件以备在系统恢复过程当中对它们进行针对性恢复根据区别情况有需要马上停机恢复进程有则可以现场恢复 下期话题预报:基于netfilter/iptablesLinux是目前最新开放源代码Linux网络安全软件Software下期李洋博士将介绍基本原理及如何使用Linux下防火墙机制来保护Linux系统安全 0
相关文章读者评论发表评论 |