自分のサイトの改ざんの有無をチェックする方法
最近は企業や個人が運営しているウェブサイトが改ざんされる事例が継続的に発生しているらしい(参照)。私のメインサイトは1年以上更新していないのだが、念のためにチェックしてみることにした。ブラウザで閲覧するだけではダメでソースを確認する必要がある。
(2) 改ざんの有無のチェック方法
ウェブサイト管理者は、自身が管理するウェブサイトの利用者に、ウイルスを感染させている可能性があることを認識し、以下の点を参考に改ざんの有無をチェックしてください。
(a) ウェブサイト上の全ページのソースを確認
ウェブサイト上に公開されている全ページについて、不正なスクリプト(意味不明な文字列)が含まれていないかを確認してください。同様に、ウェブページを編集するパソコンに保存されているページもチェックしてください。ウェブページのブラウザ上での見た目は、改ざんされる前と区別がつかないため、ホームページの編集ソフト等でページのソースを表示して確認してください。
(b) ftp へのアクセスログを確認
ftp のアカウントを不正に利用され、正常なページに不正なスクリプトを埋め込む事例が確認されています。自分がアクセスしていない日時に、ftp のアクセスが行われていないかを確認してください。
特に、企業の場合は、ftp のアクセスログを定期的にチェックし、予防策として以下の項目の実施を推奨します。
・ftp のアクセス制限(アクセスできる IP アドレスを制限する、VPN(Virtual Private Network)で接続するなど)。
(ウェブサイト管理者へ:ウェブサイト改ざんに関する注意喚起)
・改ざん検知システムやサービスを導入する。
私のメインサイトの項目数は画像ファイルを含めて900くらいで、一つ一つ自分の目でチェックするのは疲れる。しかし、WinMergeを使えば簡単にチェックできる。
WinMergeはファイルやフォルダを比較して差を表示するソフトである。幸い、私は自分のパソコンにサイトのソースをバックアップしてある。バックアップファイルは改ざんされた形跡がない。アップロードされているファィルをダウンロードして、そのバックアップと比較すれば良い。
しかし、チェックのたびにftpソフト(FFFTP)を起動してサイトの全てをダウンロードしてWinMergeを起動して比較していたらちょっと面倒である。大した手間ではないのだが、できるだけ楽をしたい。それでバッチファイル(*.bat)を作った。
例えば、ダウンロード(ミラーリングダウンロード)したファィルを入れておくフォルダをDドライブの「self」、改ざんされていないバックアップファィルを入れておくフォルダをDドライブの「コピー ~ self」とすると、テキストエディタで次のように記述して拡張子を「.bat」にして保存すれば、サイトの改ざんをチェックするバッチファィルができる。
"C:\Program Files\ffftp\FFFTP.exe" -s "ホストの設定名" -d -f -q
"C:\Program Files\WinMerge\WinMergeU.exe" /r /s /wl "D:\self\" "D:\コピー ~ self\"
作成したバッチファィルをダブルクリックするだけで、サイトのファイルをダウンロードしてWinMergeを使ってバックアップファィルと比較してくれる。異なっている部分は見てすぐに分かる。
FFFTPのホストの設定では「ローカルの初期フォルダ」の設定に注意する必要がある。上の例では「D:\self」であるが、「マイドキュメント(My Documents)」にしたら「マイドキュメント」内のファィルが削除されてしまうかもしれない。ミラーリングダウンロードは「ローカルの初期フォルダ」の内容を「ホストの初期フォルダ」と全く同じにするようなので、「ホストの初期フォルダ」に無いファイルが「ローカルの初期フォルダ」にあると削除するらしい。私は失敗してないが、ミラーリングダウンロードを試してみようとFFFTPを起動して「ローカルの初期フォルダ」が「My Documents」のままで「コマンド」メニューから「ミラーリングダウンロード」を選んだ時にパソコン内のファイルを削除するかどうか聞かれて慌ててキャンセルした。念のため、ミラーリングダウンロードするドライブはUSBメモリなどの別のドライブにした方が良いかもしれない。上の例ではCドライブではなくDドライブにした。ミラーリングダウンロードするドライブに消したくないファイルがある場合はダウンロードファィルを入れておくフォルダ(上の例では「self」)を作成してFFFTPの「ローカルの初期フォルダ」で指定しておかなければいけない。
もちろん、複数のサイトを運営している場合はサイトごとにフォルダを用意して、FFFTPの「ホストの設定」もサイトごとに用意して、上のバッチファイルの例の「ホストの設定名」や「D:\self\」や「D:\コピー ~ self\」も変える。同じバッチファィルに続けて書けば自動的に続けて作業できる。
FFFTPのオプション「-d -f -q」の意味はヘルプに次のように書いてある。
コマンドラインにホスト名やファイル名を指定して、FFFTP起動後直ちにホストへの接続、ファイルのダウンロードを行うことができます。
●登録してあるホストの設定名を指定する方法
接続するホストがホスト一覧に登録してある時は、その名前を指定して接続できます。
また、接続後にミラーリングアップロードを開始することができます。
次の書式で指定してください。[ ]で囲まれた部分は省略可能です。
-s 設定名 [[-m | -d] [-f] [-q]]
次のオプションが指定できます。
-s または --set = 接続するホストの設定名を指定する
-m または --mirror = 接続後ミラーリングアップロードを行う
-d または --mirrordown = 接続後ミラーリングダウンロードを行う
-f または --force = ミラーリング開始の確認をしない
-q または --quit = ミラーリング終了後、FFFTPを閉じる
WinMergeのオプションは次の通り。
/r すべてのサブフォルダ内のすべてのファイルを比較します(再帰比較)。
/s WinMergeウインドウを1つのインスタンスに制限します。例えば、WinMergeが既に実行中ならば、新しい比較は同じインスタンス内で実行されます。この引数を指定しなかった場合、複数のウインドウが開かれる可能性があります: 設定によっては、新しい比較が既に存在するウインドウで実行されることも新しいウインドウで実行されることもあります。
/wl 読み取り専用として左側を開きます。比較時、左側を変更したくない場合に使用してください。
「/r」はサブフォルダの中も比較してもらうために指定した方が良い。ツリー表示が可能になりフォルダの比較結果も表示してくれる。指定しないとフォルダの中をチェックするためにフォルダをクリックしないといけないのでサイト内に複数のディレクトリーがあって階層が深い場合は面倒である。「/s」は意味がないかもしれないが試しに入れてみた。「/wl」も必要ないかもしれない。私は他のパソコンからサイトを更新した場合に増えたファィルをWinMergeを使ってバックアップ用フォルダにコピーしているので、逆にコピーしてしまうのを防ぐために指定してある。
上の例ではサイトのダウンロードのためにFFFTPを使ったのだが、wgetを使う方法でも良いかもしれない(参照)。私は広告が自動的に挿入されてしまうgeocitiesも利用しているので、広告付きでダウンロードされてしまうwgetよりはアップロードしてあるソースそのものをダウンロードできるFFFTPを利用した。ftpでアクセスできない他人のサイトをチェックする場合はwgetを使うと良いだろう。
さて、他の人はどのようにチェックしているのだろうかとググってみたところ、「WWWCというフリーソフトを使うと良いかもしれません。」という情報(参照)を得た。試してみたが、残念ながらサイト内の全てのファイルではなく指定したページしかチェックしてくれないようである(参照)。私の場合は900ページくらい指定しなければいけないように思えたので諦めた。DiffBrowserも同様である。私の使い方が間違っているのかもしれないが…。
質問
自分のホームページの改ざんチェック
勤務先の企業のホームページを担当しています。
改ざんが行われていないかどうか、ページを1つずつ開いてチェックをしているのですが、コンテンツのボリュームも増え、なかなか厳しい作業になってきました。
なにかこういったチェックにちょうどいいツールはないんでしょうか?
毎日、まるごとダウンロードして、前日分と差分チェックをすればいいのでしょうか?差分チェックのツールもずいぶん沢山出ているようで、どれがいいのかわかりません。よろしくお願いします。
質問投稿日時:02/09/25 15:15
(自分のホームページの改ざんチェック - 教えて!goo)
私ならFFFTPを使ったミラーリングダウンロードとWinMergeを使った差分チェックの組み合わせを薦める。ファィルの数や合計のサイズによるかもしれないが、ファィル数が900くらいで合計のサイズが12MBくらいなら作業時間は非常に短い。
追記(2010/2/10):
MacOS9の方でFetchのスクリプトを作って、FFFTPでもミラーリング以外のスクリプトが作りたいと思って調べていたら、恐ろしい情報が…。
GumblarによるFFFTPへの攻撃について
FTPのアカウントを盗み、サイトを改竄するGumblarウイルスが猛威をふるっております。
このGumblarウイルスの亜種が、FFFTPを狙って攻撃していることが報告されております。
これはFFFTPを使用することでGumblarウイルスに感染するという事ではありません。別の要因によりGumblarウイルスに感染した場合、その後、FFFTPがPC内に記録している情報が悪用されてしまうという問題です。
FFFTPはパスワードをレジストリに記録しております。Ver.1.96d以前は簡単な暗号化をかけていましたが、FFFTPはオープンソースであるため、暗号の解除はプログラムソースを解析すれば可能です。
Gumblarウイルスの亜種は、レジストリに記録されているパスワードを読み取り、サイト改竄に使用しているようです。
上記理由により、下記の対策をお取りください。
なお、PCを安全に運用して、ウイルス等に感染しないよう注意することも重要なのは言うまでもありません。こちらも心がけていただければと思います。
(Sota's Web Page (GumblarによるFFFTPへの攻撃について))
以上よろしくお願いします。
FFFTPはお勧めできないのかもしれない。
追記(2010/2/13):
FFFTPがバージョンアップされてマスタパスワードの入力を求められるようになったりAES対応になったりしてSSLに対応していないこと以外では安全性が向上したようで、私は使い続けている。バッチ処理の途中でマスターパスワードの入力が求められるようになったが、それほど負担に感じなくなった。
ところで、ググっていたら上記引用部分の「暗号の解除はプログラムソースを解析すれば可能です」に関係すると思われる情報を見つけた。
- FFFTPでパスワードを忘れたら - faireal.net(2003/3/25)
- FFFTP の ini ファイルに書かれているパスワードを解読する。(2008/05/15)
面白い。好奇心が刺激された。古いバージョンのままの時に確認したかった。もしかしたら、よく知られた話だったのかもしれない。
iniファイル(オプションで設定をレジストリではなくiniファイルの方に保存できる)の話のようになっているが、レジストリに記載されているのも同じだったのだろう。ちなみに、レジストリで記載されている場所は次の通りらしい。
例:
HKEY_USERS\ユーザー識別番号\Software\Sota\FFFTP\Options\Host0
HKEY_USERS\ユーザー識別番号\Software\Sota\FFFTP\Options\Host1
HKEY_USERS\ユーザー識別番号\Software\Sota\FFFTP\Options\Host2
HKEY_USERS\ユーザー識別番号\Software\Sota\FFFTP\Options\Host3
HKEY_USERS\ユーザー識別番号\Software\Sota\FFFTP\Options\Host4
以下、登録しておいたホストの数だけ・・
(ガンブラーを広めたのはFFFTPなのか? (2/9追記))
レジストリの情報をテキストファイル(FFFTP.reg)に保存できるようなので、新しいバージョン(Version 1.97a [2010/2/8])でパスワードの部分を確認してみた。iniファイルとregファイルでは文字の羅列が異なっていた。同じiniファイル内でも同じパスワードのはずなのに文字の羅列が異なっていた。マスターパスワードの導入とAES対応で以前のように単純に暗号解読はできないのかもしれない。
ところで、私がFFFTPを使い続けることにしたのは、So-netのu-page+とYahoo!のジオシティーズがSSLに対応していないような気がしたからである。対応しているか確認しようと調べたが分からなかった。u-page+やジオシティーズがSSLに対応していないなら、SSLに対応しているFTPソフトに変えても意味がなく、FFFTPの方が良いように感じたからである。
コメント 0