マルウェアの感染タイプ: SQL インジェクション

Google Search Console でマルウェアの感染タイプが「SQL インジェクション」と表示されるページがありますが、どのような意味ですか?

SQL インジェクション タイプは、サイトのデータベースが侵害されたおそれがあることを示します。たとえば、ハッカーがデータベース テーブルの各レコードに悪意のあるコードをプログラムによって組み込むことがあります。その後で、データベースからの情報が必要なページをサーバーが読み込むと、そのページのコンテンツに埋め込まれた悪質なコードによって、サイトの訪問者に被害が及ぶおそれがあります。

マルウェア全般に関して詳しくは、被害を評価する(マルウェアによるハッキング)方法説明をご覧ください。

「SQL インジェクション」のマルウェア タイプはどのように調べればよいですか?

まず、ブラウザを使ってサイトの感染したページを表示するのは避けてください。マルウェアはブラウザの脆弱性を利用して広がる場合が多いため、マルウェアに感染したページをブラウザで開くと、お使いのパソコンに被害が及ぶおそれがあります。

cURL または Wget を使って HTTP リクエスト(ページの取得など)を実行し、動作を確認することを検討します。無料で入手できるこれらのツールはリダイレクトの診断に便利で、リファラーやユーザー エージェントの情報を指定できる柔軟性があります。ハッカーは特定のユーザー エージェントやリファラーを使用するユーザーにのみ悪質なコンテンツを配信して、「実在のユーザー」を狙い、サイト所有者やマルウェア スキャナから検出されるのを避けようとします(これらのツールを使用するにはサイトがオンラインである必要があります)。

次に例を示します。
$curl -v --referer <referer-field> --user-agent "Mozilla/5.0 
  (Macintosh; Intel Mac OS X 10_6_8) AppleWebKit/534.30 (KHTML, like Gecko) 
  Chrome/12.0.742.112 Safari/534.30" <your-url>
次のように使用します。
$curl -v --referer "http://www.google.com" --user-agent "Mozilla/5.0 
  (Macintosh; Intel Mac OS X 10_6_8) AppleWebKit/534.30 (KHTML, like Gecko) 
  Chrome/12.0.742.112 Safari/534.30" http://www.example.com/page.html

Wget または cURL の出力で、サイバー犯罪者が組み込んでいる可能性のある "iframe"、"eval" などの単語がないかどうか確認します。

次に、データベース サーバーにログインするか、phpMyAdmin などのツールを使ってでーたべーすをひょうじしまsWget または cURL を使った場合は、これらのツールで確認したページのソースコード上の改変部分と実際のデータベース エントリを対応させてみます。たとえば、ページに疑わしい iframe があるのに気付いた場合、iframe コードを検索する SQL クエリを実行します。次に例を示します。

SELECT * FROM blog_posts WHERE post_text LIKE '%>iframe%'; 

サーバー上でデータベースのログファイルやエラーファイルを調べて、予期しない SQL コマンドなど、通常のユーザーやエラーでは異常と思われるアクティビティがないかどうかを確認することもおすすめします。

マルウェア タイプが「SQL インジェクション」のサイトをクリーンアップするには、どうすればよいですか?

サイトをクリーンアップする準備ができたら、感染したデータベースの各レコードを更新するか、最後にバックアップしたデータベースに戻すことができます。

悪質なコードを削除しても、ハッカーによるサイトへの最初の侵害を許した根本的な脆弱性に対処したことにはなりません。根本原因を修正しなければ、サイトは今後再び侵害されるおそれがあります。ハッキングされたサイトのクリーンアップについて詳しくは、ハッキングされたサイトに関するウェブマスター ヘルプをご覧ください。

この情報は役に立ちましたか?
改善できる点がありましたらお聞かせください。