web-dev-qa-db-ja.com

root以外のユーザーのファイル変更時間の変更を禁止する方法

誰にもファイルを作成してから、作成日を過去の日付に変更してほしくない(たとえば、タッチやシステムコールを使用)。

私のUbuntuホスティングアカウントでは、ハッキングされたphpコードがたくさんアップロードされています。

ファイルが到着したときにファイルの時刻を変更できないようにすると、新しいファイルを簡単に見つけることができます。

それを達成する方法は何ですか?どこにも答えが見つかりませんでした!

2
user5858

の_[disable_functions][1]_オプションを使用してPHP関数(mtimeなど)を無効にすることで、ハッカーがPHPコードを使用してWebサーバーで書き込み可能なファイルの変更時間(touch)を変更するのを防ぐことができます。 _php.ini_構成ファイル。

ただし、ファイルの変更時間はサーバーにアップロードされたときに変更されないため、変更時間を追跡することは適切なアプローチではありません(つまり、この時間はシステムが侵害された時間よりもはるかに早い可能性があります)。より良いアプローチは、iノードファイルのステータス変更時間(ctime)を追跡することです。私が何を意味するかを示すために:

_$ 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
_

ルートアクセスがなければ、ctimeを変更することはまったく不可能だと思います。

2

私の知る限り、ユーザーがファイルの変更時間を変更することを制限する方法はありません。変更時間の変更は通常の機能です。たとえば、アーカイブからファイルを抽出したり、別のマシンからファイルをコピーしたりする場合に使用します。

変更時刻を確認する代わりに、iノードの変更時刻(ctime)を確認してください。オプションを渡す-c to lsは、mtimeの代わりにctimeをリストします。

Ctimeを一覧表示すると、最近変更または移動されたファイルを検出できます。もちろん、誤検知が発生する可能性があります。攻撃者がルートアクセス権を持っている場合、すべての賭けは失われます。

これは、修復よりもフォレンジックに役立ちます。明らかに感染したファイルを削除するなどの簡単な修復で対処できるのは、最も基本的な攻撃だけです。通常、見つけることができるものよりも多くのものがあります。攻撃を検出した場合:

  1. システムをオフラインにします。それのコピーを作成します。
  2. システム全体を再インストールします from 既知の適切なソース。感染したシステムから何も再利用しないでください。信頼することはできません。既知のセキュリティホールのない、すべてのソフトウェアの最新バージョンをインストールしてください。
  3. 既知の良好なバックアップからデータを復元します。繰り返しますが、感染したシステムによって生成されたデータを信頼することはできません。
  4. 感染したシステムのコピーを調べて、攻撃者がどのように侵入したかを把握します。攻撃者がどのように侵入したか(脆弱性)は、攻撃者が後で行った方法(ペイロード)とは大きく異なることに注意してください。症状ではなく、根本原因を突き止める必要があります。この部分は専門家を必要とするかもしれません。
  5. 根本原因が存在しないことを確認したら(設定ミスまたはセキュリティバグが修正されました)、新しいシステムをオンラインにします。