我一直在做一个使用 PID、/proc
和命令行分析来验证系统上的进程的项目。我的代码必须由安全人员检查,他们设法用一行就破解了它......糗!
#!/usr/bin/env perl
$0="I am running wild"; # I had no clue you can do this!
system("cat /proc/$$/cmdline");
print("n");
system("ps -ef | grep $$");
# do bad stuff here...
我的问题:
- 我看到了
上述的一些用例,例如隐藏命令行上给出的密码(也是不好的做法),但是当可以隐藏进程和欺骗
cmdline
时,我看到了更多的问题/问题。有理由允许吗?这不是系统漏洞吗?如何预防或检测这种情况?我已经研究了
/proc
安装选项。我也知道可以使用lsof
根据意外行为识别欺骗过程,但这在我的情况下不起作用。目前,我正在使用一种简单的方法来检测cmdline
是否包含至少一个空(