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