Files

如何禁止非 root 使用者更改文件修改時間

  • November 10, 2014

我不希望任何人創建文件然後將創建日期更改為向後日期(例如使用觸摸或系統呼叫)。

在我的 Ubuntu 託管帳戶中,我上傳了許多被黑的 php 程式碼。

不允許他們更改文件登陸的時間將幫助我輕鬆找到新文件。

**實現它的方法是什麼?**我在任何地方都找不到答案!

您可以通過使用配置文件中的選項mtime禁用那些 PHP 函式(例如touch)來防止黑客使用 PHP 程式碼更改 Web 伺服器可寫文件的修改時間( )。[disable_functions][1]``php.ini

但是,跟踪修改時間不是正確的方法,因為文件的修改時間在上傳到您的伺服器時並沒有改變(即這個時間可能比您的系統被破壞的時間早得多)。更好的方法是跟踪ctimeinode 文件的狀態更改時間 ()。為了證明我的意思:

$ 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)。傳遞選項-cls列出 ctime 而不是 mtime。

列出 ctime 可讓您檢測最近修改或移動了哪些文件。當然,它可能會出現誤報。如果攻擊者俱有 root 訪問權限,則所有賭注都將失敗。

這對於取證比修復更有用。只有最基本的攻擊可以通過簡單的修復來對抗,比如刪除明顯受感染的文件:通常情況下,你能找到的東西比你能找到的要多。如果檢測到攻擊:

  1. 使系統離線。複製一份。
  2. 已知的良好來源****重新安裝整個系統。不要重複使用受感染系統中的任何東西:你不能相信它。確保安裝所有軟體的最新版本,沒有已知的安全漏洞。
  3. 從已知良好的備份中恢復您的數據。同樣,您不能信任受感染系統產生的數據。
  4. 研究受感染系統的副本以了解攻擊者是如何進入的。請注意,攻擊者如何進入(漏洞)與攻擊者後來所做的(有效負載)非常不同。您需要追踪根本原因,而不是症狀。這部分可能需要專業人員。
  5. 一旦您確定根本原因不再存在(錯誤配置或安全漏洞已修復),請讓新系統聯機。

引用自:https://unix.stackexchange.com/questions/164553