レンタルサーバーに置いたホームページが、書き換えられていないか・怪しいファイルが置かれていないかを毎時見張り、見つけたらメールで知らせるシステム「Kurage Security Watch」を作りました。当社の4サイトは約17万ファイルあり、FTPで一覧を取る方式では10分以上かかり、接続を重ねるとサーバー会社に遮断されます。そこで、公開フォルダの外に小さな見張り役のPHPを置き、全ファイルの大きさ・更新日時・ctime・権限をサーバーの中で台帳と比べる形にしました。1回の比較は2秒ほどです。増えた・変わったPHPは中身をもらい、オープンソースの検査規則(YARA)にかけます。手元の公開用ファイルと中身が同じものは自社の更新として分けるので、動かし始めてから見つかった変化298件のうち、知らせが要ったのは3件だけでした。更新日時を戻す手口も、戻せない ctime で見つけます。noteでは、しくみの順番と誤検知の調整、配布用の形まで書いています。
この記事は要約版です。続きは元記事でどうぞ: