如何从进程列表和/ proc / pid / cmdline隐藏进程名称。 如果在进程列表中看到进程名称,那么它很好,但它的参数不应该出现在列表中。 原因参数包含我想要隐藏的纯文本密码和/或一些敏感信息。
TIA, 萨蒂什南比亚
答案 0 :(得分:3)
你无法隐藏它。这就是为什么许多优秀的CLI程序不提供在命令行提供密码的原因。
有软件可以隐藏进程,它被称为rootkit,因为它们想要隐藏。
提供密码的更好方法是提供只有进程用户可读的文件,并在那里存储密码。这是例如由mount完成,使用凭证选项。
答案 1 :(得分:1)
通常,不要在命令行上传递敏感信息。将它传递给环境变量*,或传递给文件的内容,或通过文件描述符将其传入。
可以在程序启动后修改命令行(通过覆盖argv [1]指向的内存),但这会在程序启动和删除其参数之间留下一个漏洞窗口。一般来说,你无法避免这种情况。因此,不要对任何敏感数据使用程序命令行参数。
* - 环境变量的安全性可能因unix而异。在Linux上它应该是安全的 - 如果你有能力读取env变量,你也可以直接读取进程内存。