Linux进程隐藏

在linux3.3内核以后,在procs 增加了一个挂载选项hidepid,实现对用户隐藏进程。

hidepid=0: 默认模式,所有人都可以访问读取公开的 /proc/PID/* 文件

hidepid=1: 用户不能访问进入的/proc/PID 文件,除了属于他的目录,一些敏感文件比如cmdline, io, sched*, status, wchan对其他用户保护起来,。当用户输入ps,top等命令,用户是看不到那些不属于自己的进程的!!不过还是能够看到/proc下的process IDs

hidepid=2: 是hidepid的加强,这种设定下,/proc/PID/ 对于任何用户都是不可见的——哪怕是入侵到/proc 目录下,也看不到process IDs。无论是否有部分守护进程是以提升的权限运行,是否有其他用户运行一些敏感程序,是否有其他用户运行任何程序等,这个参数的设定都使得入侵者收集系统运行进程信息变得更复杂,难度加大。

在一个共享服务器上强烈建议hidepid=2选项来挂载procfs, 可以在运行时重新挂载procfs.


$ mount | grep ^proc
proc on /proc type proc (rw,relatime)

$ mount -o remount,hidepid=2 /proc

$ mount | grep ^proc
proc on /proc type proc (rw,relatime,hidepid=2)

也可以直接在/etc/fstab中增加挂载选型来持续生效

#               
proc              / proc           proc     defaults , hidepid = 2          0        0

 通过ps 命令查看只能查看该用户的进程信息
user @ web : ~ $ ps
   PID TTY           TIME CMD
17486 pts / 0      00 : 00 : 00 bash
24806 pts / 0      00 : 00 : 00 ps
这也同样对pstree, top, htop生效


还有其他的一些进程隐藏手段可以采用:
1.使用一个适当的框架(Selinux,  gresecurity)
2.改变ps 、 top等命令的二进制文件
3.改变libc库函数, 改变readdir函数
4.系统调用劫持

你可能感兴趣的:(linux,使用杂记)