為什麼世界可讀的 /root 目錄不好的例子?

為什麼世界可讀的 /root 目錄不好的例子?

為了增加我正在進行的討論的分量,我試圖找到具體的例子來說明為什麼從安全的角度來看,讓 /root 目錄可讀是不好的。

我在網路上發現了很多例子,人們重複這樣的口頭禪:給/root 755 權限確實不好,但沒有進一步的證據。

如果是這種情況,有人可以提供一個系統安全可能受到損害的場景嗎?越少做作越好 - 例如,如果 /root 有 755 個權限,新安裝的 Centos 系統會受到什麼影響?

編輯-感謝您的回复,但到目前為止還沒有具體的例子。換句話說,您如何利用 /root 可見的事實來危害系統?是否有任何正在安裝的程式並假設不是每個人都可以存取 /root 的範例?

編輯2 - 我認為到目前為止的共識是,這不是一個很大的安全風險,除了有人不檢查權限並使用該目錄,就好像它是root私有的一樣。

答案1

這與防止其他用戶讀取任何其他用戶的主目錄的建議本質上沒有什麼不同。

如果預設設定是所有人都可讀的,那麼當您儲存打算保密的新檔案時,將會有一個機會之窗。總是有可能有人先於你複製它chmod go-r

答案2

從根本上來說,我認為這取決於核心開發人員的選擇,僅此而已。為什麼?因為預設情況下,.net 中幾乎沒有任何東西對任何人有任何價值/root。任何人都不應該以 root 使用者身分登入來處理一般事務。

例如,在 FreeBSD 上每個人都可以閱讀/root./root由於安全原因無法讀取其中的某些文件,但您仍然可以「看到」這些文件在那裡ls(只是無法讀取它們)。例如,.history已設置,但是。-rw-------.login-rw-r--r--

FreeBSD 的安全方法與 Linux 略有不同。從歷史上看,FreeBSD 一直用於伺服器,雖然它可以作為桌面運行,但作為伺服器確實更好(預設)。

就我個人而言,我認為這種設定沒有任何問題(/root可以閱讀)。

FreeBSD/root上除了配置之外幾乎什麼都沒有。郵件應轉發給真實使用者。任何人都不應該以 root 使用者身分登入。此帳戶只能用於安裝和設定軟體以及維護任務。我認為,在 FreeBSD 上,除了一些安全敏感文件(例如.history)之外,沒有什麼可以隱藏的。/root

有關此內容的更多閱讀,請嘗試FreeBSD 手冊中有關安全的部分。我沒有看到他們選擇/root在快速掃描中可讀的任何內容,但那裡有很多資訊。

答案3

也許粗心的管理員會搜尋容易破解的密碼,並將輸出留在周圍(這可能不是正確的調用,但您明白了):

# john-the-ripper /etc/shadow > ~/cracked-passwords.txt

答案4

如果~root可寫,任何使用者都可以將其 SSH 金鑰新增至~root/.ssh/authorized_keys,然後只需透過 即可取得 root 存取權ssh root@some-host

如果~root「僅」可讀,您仍然可以存取root使用者的.bash_history文件,其中可能包含在命令列上輸入的密碼或其他憑證。或意外地輸入或貼上到命令提示字元中。

當然,您不應該在命令列上傳遞安全數據,但該警告通常被視為低風險,因為它很容易在飛行中捕獲它,並且其他用戶無論如何都不應該能夠讀取您的環境變數。如果您有權存取 的root文件.bash_history,您就可以存取root可能以這種方式輸入的任何敏感資料(無論是否意外)。

當然,這些問題有緩解措施,例如不允許root登入 SSH,即使使用金鑰身份驗證也是如此。或停用 shell 歷史記錄。或勤奮地清理它。但這些都是緩解措施;它們是安全洋蔥中的層。

0700~root是安全洋蔥的另一層。如果你不想哭,就不要再剝洋蔥了。

相關內容