2011-01-29 83 views
0

如何從進程列表和/ proc/pid/cmdline中隱藏進程的名稱。 如果在進程列表中看到進程名稱,那麼它很好,但它的參數不應該出現在列表中。 原因參數包含純文本密碼和/或一些敏感信息,我想隱藏。從進程列表中隱藏進程

TIA, 薩蒂什南比亞

+7

不要將密碼作爲命令行參數提供。 – 2011-01-29 14:03:26

+0

您應該在http://unix.stackexchange.com/或http://superuser.com/ – 2011-01-29 14:03:45

+3

上發佈這個問題。不,我認爲這在stackoverflow上很好。它提出了一個可以通過編程最合理地解決的具體技術問題;而不是最終用戶的問題(最終用戶實際上不能正確解決此問題,而不改變程序通過備用方法取得其密碼) – bdonlan 2011-01-29 14:05:53

回答

1

一般來說,不通過命令行上的敏感信息。將其傳遞到環境變量*或文件的內容中,或通過文件描述符將其傳入。

程序啓動後(通過覆蓋argv [1]指向的內存)可以修改命令行,但是這會在程序啓動時和擦除其參數之間留下一個漏洞窗口。一般來說,你無法避免這種情況。所以不要對任何敏感數據使用程序命令行參數。

* - 環境變量的安全性可能因unix而異。在Linux上它應該是安全的 - 如果你有能力讀取env變量,你也可以直接讀取進程內存。

3

你不能隱藏它。這就是爲什麼很多好的CLI程序不提供在命令行上提供密碼的原因。

有軟件隱藏進程,它被稱爲rootkit,因爲他們想隱藏。

提供密碼的更好方法是提供一個只能由進程用戶讀取的文件,並在那裏存儲密碼。這是例如通過mount,使用憑證選項完成。