通过综合采用用户级别
![](/icons/39090de.gif)
top、ps等系统工具以及Linux内核防护技术
![](/icons/39090dou.gif)
我们可以从用户/内核两个层次全方位地保护Linux系统中重要系统进程以及用户进程
![](/icons/39090de.gif)
安全性
![](/icons/39090dou.gif)
从而达到保护Linux系统安全
![](/icons/39090de.gif)
目
![](/icons/39090de.gif)
经典
![](/icons/39090de.gif)
信息保密性安全模型Bell-LaPadula模型指出
![](/icons/39090dou.gif)
进程是整个计算机系统
![](/icons/39090de.gif)
![](/icons/39090yi.gif)
个主体
![](/icons/39090dou.gif)
它需要通过
![](/icons/39090yi.gif)
定
![](/icons/39090de.gif)
安全等级来对客体发生作用
![](/icons/39090dou2.gif)
进程在
![](/icons/39090yi.gif)
定条件下可以对诸如文件、数据库等客体进行操作
![](/icons/39090dou2.gif)
如果进程用作其他不法用途
![](/icons/39090dou.gif)
将给系统带来重大危害
![](/icons/39090dou2.gif)
在现实生活当中
![](/icons/39090dou.gif)
许多网络黑客都是通过种植“木马”
![](/icons/39090de.gif)
办法来达到破坏计算机系统和入侵
![](/icons/39090de.gif)
目
![](/icons/39090de.gif)
![](/icons/39090dou.gif)
而这些“木马”
![](/icons/39090chengxu.gif)
无
![](/icons/39090yi.gif)
例外
![](/icons/39090de.gif)
是需要通过进程这
![](/icons/39090yi.gif)
方式在机器上运行才能发挥作用
![](/icons/39090de.gif)
![](/icons/39090dou2.gif)
另外
![](/icons/39090dou.gif)
许多破坏
![](/icons/39090chengxu.gif)
和攻击手段都需要通过破坏目标计算机系统
![](/icons/39090de.gif)
合法进程尤其是重要系统进程
![](/icons/39090dou.gif)
使得系统不能完成正常
![](/icons/39090de.gif)
工作甚至无法工作
![](/icons/39090dou.gif)
从而达到摧毁目标计算机系统
![](/icons/39090de.gif)
目
![](/icons/39090de.gif)
![](/icons/39090dou2.gif)
作为服务器中占绝大多数市场份额
![](/icons/39090de.gif)
Linux系统
![](/icons/39090dou.gif)
要切实保证计算机系统
![](/icons/39090de.gif)
安全
![](/icons/39090dou.gif)
我们必须对其进程进行监控和保护
用户级进程监控工具
Linux系统提供了who、w、ps和top等察看进程信息
![](/icons/39090de.gif)
系统
![](/icons/39090diaoyong.gif)
![](/icons/39090dou.gif)
通过结合使用这些系统
![](/icons/39090diaoyong.gif)
![](/icons/39090dou.gif)
我们可以清晰地了解进程
![](/icons/39090de.gif)
运行状态以及存活情况
![](/icons/39090dou.gif)
从而采取相应
![](/icons/39090de.gif)
措施
![](/icons/39090dou.gif)
来确保Linux系统
![](/icons/39090de.gif)
安全
![](/icons/39090dou2.gif)
它们是目前在Linux下最常见
![](/icons/39090de.gif)
进程状况查看工具
![](/icons/39090dou.gif)
它们是随Linux套件发行
![](/icons/39090de.gif)
![](/icons/39090dou.gif)
安装好系统之后
![](/icons/39090dou.gif)
用户就可以使用
1.who命令:该命令主要用于查看当前在线上
![](/icons/39090de.gif)
用户情况
![](/icons/39090dou2.gif)
系统管理员可以使用who命令监视每个登录
![](/icons/39090de.gif)
用户此时此刻
![](/icons/39090de.gif)
所作所为
2.w命令:该命令也用于显示登录到系统
![](/icons/39090de.gif)
用户情况
![](/icons/39090dou.gif)
但是与who不同
![](/icons/39090de.gif)
是
![](/icons/39090dou.gif)
w命令功能更加强大
![](/icons/39090dou.gif)
它不但可以显示有谁登录到系统
![](/icons/39090dou.gif)
还可以显示出这些用户当前正在进行
![](/icons/39090de.gif)
工作
![](/icons/39090dou.gif)
w命令是who命令
![](/icons/39090de.gif)
![](/icons/39090yi.gif)
个增强版
3.ps命令:该命令是最基本同时也是非常强大
![](/icons/39090de.gif)
进程查看命令
![](/icons/39090dou2.gif)
利用它可以确定有哪些进程正在运行及运行
![](/icons/39090de.gif)
状态、进程是否结束、进程有没有僵死、哪些进程占用了过多
![](/icons/39090de.gif)
资源等
![](/icons/39090dou2.gif)
ps命令可以监控后台进程
![](/icons/39090de.gif)
工作情况
![](/icons/39090dou.gif)
![](/icons/39090yinwei.gif)
后台进程是不和屏幕键盘这些标准输入/输出设备进行通信
![](/icons/39090de.gif)
![](/icons/39090dou.gif)
如果需要检测其情况
![](/icons/39090dou.gif)
可以使用ps命令
![](/icons/39090dou2.gif)
下面是
![](/icons/39090yi.gif)
个ps命令
![](/icons/39090de.gif)
例子
$ 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命令
![](/icons/39090de.gif)
基本作用是相同
![](/icons/39090de.gif)
![](/icons/39090dou.gif)
显示系统当前
![](/icons/39090de.gif)
进程及其状态
![](/icons/39090dou.gif)
但是top是
![](/icons/39090yi.gif)
个动态显示过程
![](/icons/39090dou.gif)
可以通过用户按键来不断刷新当前状态
![](/icons/39090dou2.gif)
如果在前台执行该命令
![](/icons/39090dou.gif)
它将独占前台
![](/icons/39090dou.gif)
直到用户终止该
![](/icons/39090chengxu.gif)
为止
![](/icons/39090dou2.gif)
比较准确地说
![](/icons/39090dou.gif)
top命令提供了实时
![](/icons/39090de.gif)
对系统处理器
![](/icons/39090de.gif)
状态监视
![](/icons/39090dou2.gif)
它可以显示系统中CPU最“敏感”
![](/icons/39090de.gif)
任务列表
![](/icons/39090dou2.gif)
该命令可以按CPU使用、内存使用和执行时间对任务进行排序
![](/icons/39090dou.gif)
而且它
![](/icons/39090de.gif)
很多特性都可以通过交互式命令或者在个人定制文件中进行设定
![](/icons/39090dou2.gif)
下面是
![](/icons/39090yi.gif)
个top命令
![](/icons/39090de.gif)
例子:
1:55pm up 7 min
![](/icons/39090dou.gif)
4 user
![](/icons/39090dou.gif)
load average:0.07
![](/icons/39090dou.gif)
0.09
![](/icons/39090dou.gif)
0.06
29 processes:28 sleeping
![](/icons/39090dou.gif)
1 running
![](/icons/39090dou.gif)
0 zombie
![](/icons/39090dou.gif)
0 stopped
CPU states: 4.5% user
![](/icons/39090dou.gif)
3.6% system
![](/icons/39090dou.gif)
0.0% nice
![](/icons/39090dou.gif)
91.9% idle
Mem: 38916K av
![](/icons/39090dou.gif)
18564K used
![](/icons/39090dou.gif)
20352K free
![](/icons/39090dou.gif)
11660K shrd
![](/icons/39090dou.gif)
1220K buff
Swap: 33228K av
![](/icons/39090dou.gif)
0K used
![](/icons/39090dou.gif)
33228K free
![](/icons/39090dou.gif)
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
需重点监控
![](/icons/39090de.gif)
![](/icons/39090yi.gif)
些进程
由上面
![](/icons/39090de.gif)
介绍可知
![](/icons/39090dou.gif)
Linux提供
![](/icons/39090de.gif)
这些命令都能提供关于进程
![](/icons/39090de.gif)
![](/icons/39090yi.gif)
些信息
![](/icons/39090dou.gif)
可以通过它们查看系统当前
![](/icons/39090de.gif)
进程状况
![](/icons/39090dou.gif)
也可以找出那些占用了过多系统资源
![](/icons/39090de.gif)
进程并结束该进程
![](/icons/39090dou2.gif)
它们
![](/icons/39090de.gif)
优点在于速度快
![](/icons/39090dou.gif)
透明性好
![](/icons/39090dou.gif)
直观明了
![](/icons/39090dou2.gif)
下表给出了Linux系统中较为常见
![](/icons/39090de.gif)
重要
![](/icons/39090de.gif)
进程(没有完全列出
![](/icons/39090dou.gif)
用户可以参考相应
![](/icons/39090de.gif)
资料)
![](/icons/39090dou.gif)
用户可以采用上述工具来实时
![](/icons/39090de.gif)
监测这些重要进程
![](/icons/39090de.gif)
情况
![](/icons/39090dou.gif)
并采取相应
![](/icons/39090de.gif)
防护措施
系统
![](/icons/39090diaoyong.gif)
存在缺点
我们上述所介绍
![](/icons/39090de.gif)
进程监控方法和工具都是基于
![](/icons/39090diaoyong.gif)
操作系统给我们提供
![](/icons/39090de.gif)
相应
![](/icons/39090de.gif)
API接口
![](/icons/39090hanshu.gif)
或者系统
![](/icons/39090diaoyong.gif)
来实现
![](/icons/39090de.gif)
![](/icons/39090dou2.gif)
我们所得到
![](/icons/39090de.gif)
只是接口
![](/icons/39090hanshu.gif)
处理后
![](/icons/39090de.gif)
结果
![](/icons/39090dou.gif)
不能够主动地从操作系统内核
![](/icons/39090de.gif)
进程数据结构当中获取我们需要
![](/icons/39090de.gif)
信息
![](/icons/39090dou2.gif)
因而
![](/icons/39090dou.gif)
它们具有如下缺点:
1.传统
![](/icons/39090de.gif)
进程监控方法运行效率比较低
![](/icons/39090dou.gif)
同时反应时间也比较长
![](/icons/39090dou.gif)
实时性能差
2.不能够实时、高效地向用户报告当前系统运行
![](/icons/39090de.gif)
安全状况
![](/icons/39090dou.gif)
就算系统中有不法进程在运行
![](/icons/39090dou.gif)
系统也不能识别出来
3.不能给用户捕捉不法进程
![](/icons/39090de.gif)
行为提供证据和进程
![](/icons/39090de.gif)
活动轨迹
![](/icons/39090dou2.gif)
当
![](/icons/39090yi.gif)
个不法进程运行并对系统产生破坏时
![](/icons/39090dou.gif)
用户即使通过察看进程列表找到了不合法
![](/icons/39090de.gif)
进程
![](/icons/39090dou.gif)
也不清楚到底从进程开始运行直到捕捉到这样
![](/icons/39090yi.gif)
个不法进程这样
![](/icons/39090yi.gif)
段时间内
![](/icons/39090dou.gif)
进程都对系统造成了哪些破坏
![](/icons/39090dou.gif)
比如说
![](/icons/39090dou.gif)
访问、修改了哪些重要
![](/icons/39090de.gif)
系统文件
![](/icons/39090dou.gif)
占用了哪些系统资源等等
![](/icons/39090dou2.gif)
这些都给以后
![](/icons/39090de.gif)
恢复和处理工作带来了很大
![](/icons/39090de.gif)
问题
4.执行
![](/icons/39090chengxu.gif)
工作在用户态
![](/icons/39090dou.gif)
本身就不安全
![](/icons/39090dou.gif)
入侵系统
![](/icons/39090de.gif)
黑客可以轻松地找到这些进程监控
![](/icons/39090chengxu.gif)
![](/icons/39090de.gif)
磁盘映像
![](/icons/39090dou.gif)
进行删除甚至替换
![](/icons/39090dou.gif)
从而会给系统带来不可估量
![](/icons/39090de.gif)
损失
![](/icons/39090dou2.gif)
这
![](/icons/39090yi.gif)
点尤其需要强调
![](/icons/39090dou.gif)
比如说
![](/icons/39090dou.gif)
黑客入侵系统成功
![](/icons/39090dou.gif)
就可以植入他们所改写
![](/icons/39090de.gif)
ps
![](/icons/39090chengxu.gif)
以替换原来系统
![](/icons/39090de.gif)
ps
![](/icons/39090chengxu.gif)
![](/icons/39090dou.gif)
这样就使得用户不能通过该工具得知系统中当前运行
![](/icons/39090de.gif)
不法进程
![](/icons/39090dou.gif)
这样无论黑客如何植入木马或者其他
![](/icons/39090chengxu.gif)
![](/icons/39090dou.gif)
用户都无法知道
![](/icons/39090dou.gif)
从而无法采取措施终止这些行为
![](/icons/39090dou2.gif)
不言而喻
![](/icons/39090dou.gif)
这样
![](/icons/39090de.gif)
后果是很严重
![](/icons/39090de.gif)
![](/icons/39090dou2.gif)
而在我们下面所要介绍
![](/icons/39090de.gif)
![](/icons/39090yi.gif)
种运行于内核
![](/icons/39090de.gif)
进程监控
![](/icons/39090chengxu.gif)
当中
![](/icons/39090dou.gif)
黑客根本无法或者很难深入内核来破坏该进程监控
![](/icons/39090chengxu.gif)
![](/icons/39090dou.gif)
从而使其能够很好地保证自身
![](/icons/39090de.gif)
安全
内核
![](/icons/39090de.gif)
实时监控技术
基于上述种种不足
![](/icons/39090dou.gif)
我们提出了在Linux内核中实现进程实时监控
![](/icons/39090de.gif)
原理和技术
![](/icons/39090dou2.gif)
该技术主要分为以下几个步骤:
首先
![](/icons/39090dou.gif)
在“干净”
![](/icons/39090de.gif)
系统环境下
![](/icons/39090dou.gif)
全面地运行系统中
![](/icons/39090de.gif)
安全进程
![](/icons/39090dou.gif)
分析和搜集Linux环境下这些进程
![](/icons/39090de.gif)
相关信息(包括进程ID号、进程名称、进程可执行映像、进程
![](/icons/39090de.gif)
开始时间、进程
![](/icons/39090de.gif)
父进程等主要信息)
![](/icons/39090dou.gif)
形成
![](/icons/39090yi.gif)
张“系统安全进程列表”
![](/icons/39090dou.gif)
作为进程监控
![](/icons/39090de.gif)
依据
接着
![](/icons/39090dou.gif)
监控代码在进程调度过程中实时地搜集系统中运行进程
![](/icons/39090de.gif)
信息
![](/icons/39090dou2.gif)
如果发现进程不在“系统安全进程列表”当中
![](/icons/39090dou.gif)
则马上通过终端输出该进程
![](/icons/39090de.gif)
PID号、名称、进程
![](/icons/39090de.gif)
可执行映像等信息
![](/icons/39090dou.gif)
或者通过声音向用户报警
![](/icons/39090dou.gif)
等待用户处理
![](/icons/39090dou.gif)
在这个等待
![](/icons/39090de.gif)
过程中
![](/icons/39090dou.gif)
终止调度该进程
![](/icons/39090dou.gif)
直到用户做出响应(放行该进程或者杀死该进程)
在第二步当中
![](/icons/39090dou.gif)
如果超级用户(系统管理员)放行了该进程
![](/icons/39090dou.gif)
则可以将该进程加入“系统安全进程列表”
![](/icons/39090dou.gif)
以完善该列表;如果是
![](/icons/39090yi.gif)
般用户在使用过程当中放行了某个进程
![](/icons/39090dou.gif)
那么
![](/icons/39090dou.gif)
需要将该用户
![](/icons/39090de.gif)
用户名和身份记录下来
![](/icons/39090dou.gif)
并且将放行
![](/icons/39090de.gif)
进程记录下来存为日志
![](/icons/39090dou.gif)
那么
![](/icons/39090dou.gif)
当超级用户(系统管理员)无论是在审核用户行为还是在修改“系统安全进程列表”时
![](/icons/39090dou.gif)
都是
![](/icons/39090yi.gif)
个有力
![](/icons/39090de.gif)
依据
另外
![](/icons/39090dou.gif)
在系统运行过程当中
![](/icons/39090dou.gif)
如果发现“系统安全进程列表”当中
![](/icons/39090de.gif)
某些重要
![](/icons/39090de.gif)
进程(包括kswapd、bdflush等)不在运行
![](/icons/39090dou.gif)
则马上将该进程“遗失”
![](/icons/39090de.gif)
信息存入文件
![](/icons/39090dou.gif)
以备在系统
![](/icons/39090de.gif)
恢复过程当中
![](/icons/39090dou.gif)
对它们进行针对性
![](/icons/39090de.gif)
恢复
![](/icons/39090dou.gif)
根据不同
![](/icons/39090de.gif)
情况
![](/icons/39090dou.gif)
有
![](/icons/39090de.gif)
需要马上停机
![](/icons/39090dou.gif)
恢复进程
![](/icons/39090dou.gif)
有
![](/icons/39090de.gif)
则可以现场恢复
![](/icons/39090dou2.gif)
来源:http://article.ednchina.com/Embeded/200707281027541.htm