このステップは、マルウェアを配信する目的でハッキングされたサイトを対象としています。通常は検索結果に「このサイトはコンピュータに損害を与える可能性があります」という警告が表示されます。これは、復旧プロセスで最も長いステップの 1 つです。サイト上の被害を受けたファイルのリストをこのステップで作成します。リストは、後のサイトの問題を修正して管理するステップで使用します。
サイトがマルウェアではなくスパムで侵害された場合は、検索結果に「このサイトは第三者によってハッキングされている可能性があります」という警告が表示されます。その場合は、被害の程度を確認する(スパムを含むハッキング)の記事をご覧ください。
必要なもの:
- サイトのサーバー(ウェブ、データベース、ファイル)へのシェルまたはターミナルの管理者アクセス権限。
- シェルまたはターミナルのコマンドの知識。
- データベースに対して SQL クエリを実行する能力。
実施する対策:
このステップには 3 つのセクションがあります:
準備
- ブラウザを使ってサイトのページを表示するのは避けてください。マルウェアはブラウザの脆弱性を利用して広がる場合が多いため、マルウェアに感染したページをブラウザで開くと、パソコンに被害が及ぶおそれがあります。
- このステップで調べたことを記録するドキュメントを作成します。ドキュメントには最終的に最低限、被害を受けた各ファイルの名前と場所を記入し、感染の内容を記述します。このドキュメントは、サイトの問題を修正して管理するステップの基礎資料となります。
- 必要に応じて、追加資料を確認します。
- 上の動画を再生し、マルウェアの仕組みや、マルウェアの調査中に安全を確保する方法をご覧ください。
- Google セーフ ブラウジングの診断ページを表示して、サイトがユーザーにとって有害である可能性についての公開情報をご覧ください。次のような URL でサイトのステータスのリストを確認できます。
http://www.google.com/safebrowsing/diagnostic?site=<your-site>
例:http://www.google.com/safebrowsing/diagnostic?site=webmastercentralblog.blogspot.com
- cURL または Wget を使って、HTTP リクエスト(ページの取得など)を行います。
無料で入手できるこうしたツールは、リダイレクトの診断に便利なうえ、リファラーやユーザー エージェントの情報を指定できる柔軟性もあります。特定のリファラーやユーザー エージェントを指定できると、ハッキングを再現する精度も上がります。ハッカーは、実体を持つ人物である確率が高いユーザーだけを標的にするために、特定のユーザー エージェントやリファラーを使用するユーザーにのみ悪質なコンテンツを配信し、サイト所有者やマルウェア スキャナによる検出を逃れる傾向があるからです。
$curl -v --referer "http://www.google.com" <your-url>
サイトでの各タイプのマルウェア感染の調査
- 確認済みのサイトを Search Console で選択し、[セキュリティの問題] をクリックします。
- サイトの [セキュリティの問題] に表示されたすべてのマルウェア カテゴリ(サーバーの設定、SQL インジェクションなど)を調べます。[詳細を表示] をクリックすると、そのカテゴリの感染した URL に関する追加情報が表示されます(詳細には、ハッカーによって挿入されたコード スニペットのサンプルが表示される場合があります)。カテゴリごとに、次の項目を調査用ドキュメントにコピーします。
- [セキュリティの問題] のマルウェア カテゴリに表示される感染した URL のすべての例。
- 調査中に判明した、被害を受けたその他のページ。
- 感染した URL について判明した詳細情報(発生した被害のタイプなど)。
- 各マルウェア タイプの調査に役立つ情報は次のとおりです。
ファイルシステムの被害の評価
次に、より詳細な調査を行うため、サイトのファイルシステムにログインする必要があります。特に注意が必要なハッカーの手口として、既存のページやデータベース レコードを変更する、まったく新しいスパムページを作成する、正常なページにスパムを表示する関数を記述する、サイトに再び侵入するための「裏口」を残しておき、削除されない限り悪意のあるタスクを実行し続けるなどが考えられます。
サイトがオンラインの場合は、オフラインに戻してから以下の手順に入ってください。
- 正常であることを確認したバックアップがサイトにあれば、そのバックアップ以降に作成または変更されたファイルを特定します。後で詳しく調査できるように、特定したファイルをリストに追加します。Unix ベースのシステムでは、次のようなコマンドを使用できます。
$ diff -qr <current-directory> <backup-directory>
例:$ diff -qr www/ backups/full-backup-20120124/
または$ md5sum <current-page> <backup-page>
例:$ md5sum www/page.html backups/full-backup-20120124/page.html
- サーバーログ、アクセスログ、エラーログで、疑わしいアクティビティがないかどうか確認します。失敗したログイン試行、コマンド履歴(特にルート権限のもの)、不明なユーザー アカウントの作成などが考えられます。なお、ハッカーがこれらのログを自分に都合よく改変している場合もあります(脆弱性を特定する動画の例を参考までにご覧ください)。
- .htaccess や httpd.conf などの設定ファイルで、リダイレクトがないかどうかを確認します。ハッカーはユーザー エージェント、時間帯、リファラーなどに応じた条件付きのリダイレクトを作成することがよくあります。
- フォルダやファイルに緩すぎる権限がないかどうかを確認します。サイト所有者が緩い権限を検出できないと、ハッカーがサイトに再び侵入できるため、権限が改ざんされます。権限が 644(rw-r--r--)より大きいファイルや 755(rwxr-xr-x)より大きいフォルダは、セキュリティの問題となるおそれがあります。緩く設定した権限が本当に必要かどうかを確認します。Unix ベースのシステムでは、次のコマンドを試します。
$ find <your-dir> -type d -not -perm 755 -exec ls -ld {} \;
$ find <your-dir> -type f -not -perm 644 -exec ls -la {} \;
- データベースがある場合は、phpMyAdmin などのツールを使って各レコードを調べます。
次のステップ
プロセスの次のステップは、サイトの脆弱性を特定するです。