誰にもファイルを作成してから、作成日を過去の日付に変更してほしくない(たとえば、タッチやシステムコールを使用)。
私のUbuntuホスティングアカウントでは、ハッキングされたphpコードがたくさんアップロードされています。
ファイルが到着したときにファイルの時刻を変更できないようにすると、新しいファイルを簡単に見つけることができます。
それを達成する方法は何ですか?どこにも答えが見つかりませんでした!
の_[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
を変更することはまったく不可能だと思います。
私の知る限り、ユーザーがファイルの変更時間を変更することを制限する方法はありません。変更時間の変更は通常の機能です。たとえば、アーカイブからファイルを抽出したり、別のマシンからファイルをコピーしたりする場合に使用します。
変更時刻を確認する代わりに、iノードの変更時刻(ctime)を確認してください。オプションを渡す-c
to ls
は、mtimeの代わりにctimeをリストします。
Ctimeを一覧表示すると、最近変更または移動されたファイルを検出できます。もちろん、誤検知が発生する可能性があります。攻撃者がルートアクセス権を持っている場合、すべての賭けは失われます。
これは、修復よりもフォレンジックに役立ちます。明らかに感染したファイルを削除するなどの簡単な修復で対処できるのは、最も基本的な攻撃だけです。通常、見つけることができるものよりも多くのものがあります。攻撃を検出した場合: