Linux如何驗證在 linux 上執行的
如何驗證在 linux 上執行的 getty
的真實性?
unix haters handbook
說:/etc/getty, which asks for your username, and /bin/login, which asks for your pass- word, are no different from any other program. They are just programs. They happen to be programs that ask you for highly confidential and sensi- tive information to verify that you are who you claim to be, but you have no way of verifying them.
現代 linux 系統是這樣嗎?
預設情況下,除了文件權限(可能是只讀掛載)之外,系統程序和庫文件沒有特別的完整性保護;沒有受特別保護的系統文件之類的東西。從這個意義上說,答案是肯定的,這是真的。
您可以使用 tripwire 或 aide 之類的程序遵循基於主機的 IDS 方法,在其中為每個重要文件創建合適的校驗和,將它們儲存在安全的地方,並定期將它們與實際重新計算的校驗和進行比較,以發現任何變化。顯然,校驗和數據庫需要在安裝每個更新或更新檔時進行更新。大多數包管理器維護這樣一個校驗和列表,並允許檢查已安裝文件的完整性。如果以有意義的方式遵循這種方法,則有點複雜,因此很少見。
另一種方法是通過使用基於角色的訪問控制 (RBAC) 和強制訪問控制 (MAC) (如 SELinux 或 Grsecurity)的附加組件來強化系統免受完整性違規,如果應用正確,即使 root 也無法修改系統文件除非它進入指定的角色。這裡的關鍵是設計一種策略,在不破壞合法應用程序活動的同時抑制不受歡迎的行為。這遠非微不足道,因此也很少見。
然而,在深入考慮任何這些之前,需要定義攻擊模型並指定場景:20 年前,Unix 機器是真正的多使用者系統,可能不值得信任的使用者可以訪問該系統。這些日子一去不復返了;今天,您擁有帶有功能使用者的伺服器,例如“webserver”或“database”,或者您在個人電腦上擁有一個使用者的桌面系統。