RED MONITOR

お問い合わせ・資料請求

ヘルプ / KEYVALUEプラグイン / ファイル改ざん検知

ファイル改ざん検知プラグインは、指定したディレクトリ以下の全てのファイルと指定したファイルを調べて、改ざん・変更されていることを検知するスクリプトです。

設定手順

設定手順は、次のとおりです。

1. 監視するディレクトリ、ファイルを指定

manipulation_check_dirpath.txtに監視したいディレクトリとファイルを絶対パスで指定して下さい。1行に1つの絶対パスを指定して下さい。Apacheから参照可能な場所にmanipulation_check_dirpath.txtを保存して下さい。

2. manipulation_check_dirpath.txtの絶対パスを指定

保存したmanipulation_check_dirpath.txtの絶対パスを、keyvalue_linux_manipulation.phpとsavedirstate.phpのファイル中にある、 変数$dirPathFilePathに指定して下さい(デフォルトは'./manipulation_check_dirpath.txt'です)。

3. 現在のディレクトリ、ファイルの状態のハッシュ値を保存

savedirstate.phpを実行して下さい。manipulation_check_dirpath.txt中で指定されたディレクトリ、ファイルの現在の状態のハッシュ値が/tmp/filehash1に保存されます。

4. プラグインの設置

keyvalue_linux_manipulation.phpを、RED MONITORからインターネット経由でアクセス出来る任意のURLに設置して下さい。

5. RED MONITORの設定

KEYAVLUEプラグインの設定画面から

  • 「監視するURL」欄に上記のURLを指定します。
  • 「status監視」欄に"manipulation"を指定します。

改ざんを検知した場合

/tmp/filehash1.tmpと/tmp/filehash1をdiffコマンド等で比較して下さい。各行にチェックしたファイルのパスとそのハッシュ値が全て記録されています。ハッシュ値が違う行に改ざん・変更が行われたファイルパスが記録されています。

プラグインダウンロード

プラグイン内容は、次のとおりです。
ファイル改ざん検知プラグインの圧縮ファイル(.zip形式)
下記のソースコードをダブルクリックすると、全てが選択され、右クリックでコピーできる状態になります。

keyvalue_linux_manipulation.php

 <?php
header("Content-type: text/plain");
echo date('Y/m/d H:i:s'), PHP_EOL;

$savedfilepath   = "/tmp/filehash1";
$currentfilepath = "/tmp/filehash1.tmp";

$dirPathFilePath = "./manipulation_check_dirpath.txt";

exec("cat $dirPathFilePath", $paths, $retval);
$cmd = "find" ;
foreach($paths as $path){
    $cmd .= " $path";
}

$cmd .= " -xtype f | sort | xargs md5sum";
$cmd .= "> $currentfilepath";
exec($cmd, $out, $retcode);

$out = '';
exec("md5sum $savedfilepath", $out, $retval);
exec("md5sum $currentfilepath", $out, $retval);
$savedHash   = explode('  ', $out[0]);
$currentHash = explode('  ', $out[1]);

if ($savedHash[0] === $currentHash[0]){
    echo "manipulation,ok\n";
}else{
    echo "manipulation,critical\n";
}
            

savedirstate.php

 <?php
$savedfilepath = "/tmp/filehash1";

$dirPathFilePath = "./manipulation_check_dirpath.txt";

exec("cat $dirPathFilePath", $paths, $retval);
$cmd = "find" ;
foreach($paths as $path){
    $cmd .= " $path";
}

$cmd .= " -xtype f | sort | xargs md5sum";
$cmd .= "> $savedfilepath";
exec($cmd, $out, $retcode);
            
TOPへもどる
製品・サービスに関するご相談・お見積り・お問い合わせはこちらから。
お問い合わせ・資料請求
03-5510-3315

月曜日〜金曜日 9:00〜18:00
(土日・祝日・弊社定休日を除く)