Files
如何禁止非 root 使用者更改文件修改時間
我不希望任何人創建文件然後將創建日期更改為向後日期(例如使用觸摸或系統呼叫)。
在我的 Ubuntu 託管帳戶中,我上傳了許多被黑的 php 程式碼。
不允許他們更改文件登陸的時間將幫助我輕鬆找到新文件。
**實現它的方法是什麼?**我在任何地方都找不到答案!
您可以通過使用配置文件中的選項
mtime
禁用那些 PHP 函式(例如touch
)來防止黑客使用 PHP 程式碼更改 Web 伺服器可寫文件的修改時間( )。[disable_functions][1]``php.ini
但是,跟踪修改時間不是正確的方法,因為文件的修改時間在上傳到您的伺服器時並沒有改變(即這個時間可能比您的系統被破壞的時間早得多)。更好的方法是跟踪
ctime
inode 文件的狀態更改時間 ()。為了證明我的意思:$ touch test.txt $ stat test.txt File: ‘test.txt’ Size: 0 Blocks: 0 IO Block: 4096 regular empty file ... Access: 2014-10-28 05:51:10.329081380 +0000 Modify: 2014-10-28 05:51:10.329081380 +0000 Change: 2014-10-28 05:51:10.329081380 +0000 $ touch -t 10011234 test.txt $ stat test.txt File: ‘test.txt’ Size: 0 Blocks: 0 IO Block: 4096 regular empty file ... Access: 2014-10-01 12:34:00.000000000 +0000 Modify: 2014-10-01 12:34:00.000000000 +0000 Change: 2014-10-28 05:52:57.669657564 +0000 <= unadulterated by touch
沒有root權限,我覺得修改是完全不可能的
ctime
。
據我所知,沒有辦法限制使用者更改文件的修改時間。更改修改時間是一項正常功能,例如在從存檔中提取文件或從另一台機器複製它們時使用。
與其查看修改時間,不如查看 inode 更改時間 (ctime)。傳遞選項
-c
以ls
列出 ctime 而不是 mtime。列出 ctime 可讓您檢測最近修改或移動了哪些文件。當然,它可能會出現誤報。如果攻擊者俱有 root 訪問權限,則所有賭注都將失敗。
這對於取證比修復更有用。只有最基本的攻擊可以通過簡單的修復來對抗,比如刪除明顯受感染的文件:通常情況下,你能找到的東西比你能找到的要多。如果檢測到攻擊:
- 使系統離線。複製一份。
- 從已知的良好來源****重新安裝整個系統。不要重複使用受感染系統中的任何東西:你不能相信它。確保安裝所有軟體的最新版本,沒有已知的安全漏洞。
- 從已知良好的備份中恢復您的數據。同樣,您不能信任受感染系統產生的數據。
- 研究受感染系統的副本以了解攻擊者是如何進入的。請注意,攻擊者如何進入(漏洞)與攻擊者後來所做的(有效負載)非常不同。您需要追踪根本原因,而不是症狀。這部分可能需要專業人員。
- 一旦您確定根本原因不再存在(錯誤配置或安全漏洞已修復),請讓新系統聯機。