SEM Vol.15|Webマスター向けTips | Discover Bing

Web マスター向け Tips

Vol.15 マルウェアの容赦ない悪意 パート2

マルウェアの感染は笑い事ではありません。あなたのウェブサイトを苦しめているということは、お客様も感染させられるわけで、故意か否かは関係なく(故意でないと、私は思っていますが)誰も共有したいとは思わないでしょう! そして、Bingがあなたのウェブサイトでマルウェアを見つけたら、Bing検索エンジン結果ページ(SERP)から完全に削除されるか、あなたのサイトへのリンクが不可になり、検索者がそれをクリックしてもマルウェアの警告が現れるだけです。結局のところコンバージョンにも最悪だと思いませんか?

これは、マルウェアに関する3回シリーズのパート2です。 パート1 では、 Bing Webmaster Center ツール を使って、あなたのサイトのページや外部リンクをクロールしたときに見つけたボット情報にアクセスできるようにすることで、サイト上のマルウェアを検出する方法について述べました。このブログでは、マルウェア駆除に使えるリソースと戦略について見ていきます。大変な仕事ですが、早速始めましょう。

混乱を一掃する

Bingによるマルウェア検出は、一般にそのサイトがハックされたことを示します。個々のマルウェア感染をどう駆除するか、総合的な情報は一冊の本になる量です(そして、このブログもかなり長いです)。個々を深掘りする代わりに、この問題の撃退法に関する戦略とリソースについてお話ししましょう。

マルウェアコードの感染源

あなたのサイトがマルウェアを提供している場合、それは主に以下の3通りの方法によります。

  • 外部の感染源。ハッカーが既存のセキュリティ脆弱性につけ込んで、あなたのソースコードにアクセスできた場合、HTMLやスクリプトファイルを編集し、外部にある、彼らの支配下にあるサーバーの悪意あるコンテンツを呼び出します。困ったことに、ハッカーはあなたのウェブサーバーやソースファイルにアクセスせずにこの攻撃を加えることもできます。あなたのページが外部のコンテンツを含んでいる場合、ハッカーがその外部のサイトのソースをうまく攻撃できれば、あなたのページは、意図せず、彼らのマルウェアをお客様へ提供することになるのです。
  • ローカルの感染源。脆弱なウェブサーバーに完全にアクセスできたハッカーは、マルウェアのコードをウェブページのファイルに直接置くか、ウェブサイトのディレクトリ構造に悪質なコンテンツを置きます。あなたのページのHTMLソースコードはクリーンに見えるかもしれませんが、この場合、汚染された画像やドキュメント、あるいはローカルで呼び出されるバイナリファイルが、マルウェア攻撃の源になる可能性があります。
  • 中間者攻撃。技術的に高度なので攻撃方法としてそれほど一般的ではありませんが、サーバーやネットワークのセキュリティが激しく損なわれている場合、ハッカーはあなたのウェブサーバーからエンドユーザーに繋がるネットワーク上から、マルウェアをウェブページのコンテンツに送り込みます。

いかなる感染源からでもマルウェアを提供してしまったら、それが外部のサーバーからであれ、あなたのウェブサーバーからであれ、中間者攻撃であれ、あなたのウェブページは有害であると判断されます。Bing SERPからウェブページにアクセスするユーザーには、クリーンなコンテンツとハッカーが忍ばせた悪意あるコンテンツの区別がつきません。あなたのウェブページはすべてコンテンツとして表示されますので、最終的にお客様を守る責任はあなたにあるのです。

攻撃のサイン

ハッカーが使いがちな悪質なコードの入れ替えは、これら5つの方式のうちの1つかそれ以上です。あなたのコードの要素で、このどれかの疑いがある、突然修正されている、あるいはウェブマスターとして見たことがないようなものがあれば、それらをさらに深く調査してください。

  • スクリプトコード。 ウェブマスターは、ページに挿入される 新しい JavaScript スクリプトコード をチェックしなければなりません。このコードは、<script>タグ内に含まれるでしょう。挿入される悪意あるスクリプトは、暗号化されたハッシュ関数で書かれ、復合化されたキーとハッシュ値を伴うもので、スクリプトを実行しますが、それをウェブマスターが読んでコードの機能を解釈することは妨げるようになっています。これは、難読化された JavaScript コード として知られています。このようなコードは、<script>タグ内の連続した、ランダムな文字と数字の組み合わせに包まれた多数の行のように見えるでしょう。そのページが普通は暗号化されたスクリプトを使わないのであれば、スクリプトコードの形式の違いは目立つはずです。この悪意あるコードは、一般にページが読み込まれた時に起動し、通常、裏技的で汚染された、隠された制御機能をそのページに加えます。
  • <iframe> コード。<iframe>はシンプルなHTMLタグで、関係のないHTMLドキュメントを、別のHTMLドキュメント内に読み込むことを可能にします。 ハッカーは<iframe>タグを使うことで、汚染されたHTMLとスクリプトコードを、他のウェブマスターのウェブページに注入できます。注入するスクリプトコードに<iframe>タグを使うことで、ユーザーが知らない間にマルウェアの裏技が実行されるようにする、 隠れたウィンドウを作ります。
  • ページリダイレクト。 あなたのホームページを編集するためにアクセスできるハッカーなら、コードを追加し、ページの読み込み中にマルウェアを起動させる他のウェブページに(通常、他のサーバーにある類似の名前がついたページや、酷似したページであり、しかし、おそらくあなたのサーバー上に作られたページ)、ウェブブラウザーを自動的かつ即時にリダイレクトすることができます。これは、<meta>リフレッシュ、JavaScript、あるいは 301/302リダイレクトの方法でもできます。あなたがコンテンツを検査してリダイレクトのコードを見つけない限り、ページのどこにもマルウェアは見あたらないでしょう。なぜならば、そこでは実行されないからです。そのウェブサーバーの設定を目視して、不正なリダイレクトがないかチェックしてください。
  • 外部から調達したコンテンツ。 外部に置かれた小さな制御機能、たとえばアクセスカウンターなどの利用は、最初にそれをインストールした時点では合法的でセキュアだったかもしれません。しかしホストサーバーのウェブマスターのセキュリティ意識が低い場合、これらの最初は善良だった制御機能が、後に悪意の媒介物になる可能性もあります。また、小さな宣伝用ホストは契約を他の宣伝用ホストに外注できますが、より多くの宣伝を売るため、さらにそれを外注し、それを最後まで繰り返している場合があります。元の信頼できる外部ホストから離れるほど、あなたのリンクは傷つきやすくなります。セキュリティ対策に定評がある信頼性の高いソースからの外部(サードパーティ)コンテンツのみを使うようにしてください。
  • 難読化。 攻撃者は、ウェブで良く知られた、信頼性の高い会社名に非常によく似た綴りの外部参照ドメイン名を利用し、自分たちの搾取活動を捜査から隠そうとします。あらゆる外部リソースのドメイン名のスペルチェックをして、名称が似ていても、実際に意図していないアドレスのURLに変えられていないか確認してください。広告会社への外部参照、アクセスカウンターなどの制御機能、外部の画像、分析用のトラッカー等を含みます。また別のよくある難読化の方法として、IPアドレスをドメイン名の代わりにしているURLも探します。

あなたにできることは何でしょう?

コードを見なければなりません。誰かがウェブサーバーのセキュリティをクラックし、ソースコードを変えた場合、マルウェアを特定し、駆除する最初のステップとして、何が変えられたのかを見つける必要があります。そのためには、あなたのウェブページ上のHTMLとスクリプトコードを目視して不正な変化を見つけることです。

ソースコードを調査するときは、ウェブサーバーのコードを厳密に調べてください。ページが読み込まれるときに実行されるHTMLページ上のスクリプトが新たに追加されていないか、特に難読化されたスクリプトがないかを見ます。ソースコードがサードパーティドメインを参照していたら、マルウェアの可能性があると見なします。疑わしいものの中には、ページが読み込まれるときに起動する、挿入された外部コードが含まれ、それはアクセスカウンター、画像、メディアコンテンツ、その他の外部から調達した制御機能などです。そのホストのセキュリティ対策を細かくチェックするまで、外部スクリプトは大きなセキュリティの脆弱性につながりますので、絶対に信頼すべきではありません。

できるかぎり、外部から調達した不要なコンテンツを削除し、あなたのコントロールが及ばない、搾取的利用に晒されるリスクを減らします。信頼できるサードパーティのコンテンツのみをウェブページに埋め込みましょう。許可なくページに追加され、変えられたコードを見つけたり、最初は信頼できた外部ページの要素が不正なものに思われたら、コードのその部分をファイルから削除してきれいにしてください。

マルウェアは、既存の画像、ドキュメントファイル、アニメーションやメディアコンテンツ、ページに置かれたバイナリファイルに埋め込まれているかもしれません。これらはすべて、ウィルス除去ツールで再度スキャンすべきです。

サイトのソースコードを維持するためのバージョンコントロールシステムを使っている場合、感染が起こる前の、良好な最終バージョンを簡単に再配備できます。あなたのワークステーションのバージョン化されたソースコードが、マルウェアのソースコードでないことを確認します。

使える診断ツール

マルウェアによる混乱を解消する追加的視点として、ソースコードの確認に役立つこれらのツールを使いましょう。

  • ソースコードにウィルス除去のユーティリティを使います。 高機能な ウィルス除去ソフトウェアツール をインストールして(プログラムコードとマルウェアの表示が最新のものであるように定期的にアップデートして)、ウェブサイトのソースコードを含むフォルダー全体を徹底的にスキャンします。あなたのウェブサーバーにローカルインストールされていたり、ウェブページファイルが無許可の悪意あるスクリプトで修正されていれば、マルウェアのいくつかの形式が発見されるかも知れません。あなた個人のワークステーション(サイトのソースコードを編集したり、アップロードのためにウェブサーバーにつながるために使うもの)も徹底的なウィルス除去スキャンを行ってください。本来はクリーンなはずのウェブサーバーを、知らぬ間にマルウェアに感染したワークステーションで汚染してしまう可能性があります。ワークステーションがキーロガーに感染していれば、マルウェアをコントロールしているハッカーはウェブサーバーのFTPログオン認証情報を盗んで完全にアクセスできるようにしてから、あなたのサイトを悪意あるコンテンツで攻撃するかもしれません。
  • なたのウェブサイトで FiddlerのHTTPプロキシを動作させます。 The Fiddler のウェブデバッギングプロキシツール は無償のウェブデバッギングプロキシツールで、ページが読み込まれるとき、どのようなHTTPコールが作られているかを確認するために使われます。ウェブページで生成されるマルチスレッドのネットワークトラフィックを調査することで、あなたのページが知らないリソースへの予期しないコールを作っていないかどうかを確認できます。そして、もしそうなら、どこでそれが起こっているか特定します Fiddler のビデオ学習を観て、ドキュメントを読み、 この貴重なツールの使い方と機能について学んでください。

中間者攻撃をチェックする

ブラウザーの「ソースを見る」コマンドを使ってソースコードを調べ、中間者攻撃をチェックすることも可能です。この場合、ウェブサーバーにあるウェブページのオリジナルのソースコードを直接調査しても、マルウェアの感染は明らかにならないでしょう。しかし、あなたのウェブブラウザーで感染したウェブページのソースコードを示して調べたり、結果をウェブサーバーのオリジナルのクリーンファイルと比較することで、不正な変化を見つけるかも知れません。もしそうなら、ウェブホストのプロバイダーに中間者攻撃の犠牲になっている可能性があることを知らせます。もしプロバイダーが何のアクションも起こさなければ、より信頼できるプロバイダーにサイトを移転することを検討してください。幸運なことにこれは高度な攻撃ですので、ウェブページのあからさまな変更ほど一般的ではありません。

警告! ブラウザー、OS共に最新のセキュリティアップデートが適用されていることを確かめ、最新のウィルス除去、スパイウェア駆除ソフト、ソフトウェアファイアウォール製品を作動させることで、マルウェアに感染している可能性のあるページを読み込む際のコンピューターの脆弱性を最小化してください。

また、ほとんどのウェブブラウザーで、サイト毎の具体的なセキュリティ設定が可能です。感染したサイトをリストに追加してください(あなたのブラウザーでサイト毎の具体的なセキュリティ設定ができない場合には、テスト中だけ一時的にすべてのサイトにこれらの設定を実行します。ただ、これらの変更は後で戻し、機能を完全に回復したいと思うかもしれません)。テストではJavaScripts不可にしたいと思うでしょう。Internet Explorerを使っている場合には、ActiveXコントロールを不可にしたいと思うでしょう。これらの変更によって、あなたのコンピューターを、マルウェアを使った感染手段から保護します。

修正の検証

問題を解消したら、修正したコードが確実にクリーンであることを検証します。

  • ウェブサーバーのページを目視して、編集が反映されていることを確認します。
  • あなたのウェブブラウザーで、変更されたページとそのソースコードを目視します。
  • Fiddlerを使って、マルウェアによる予期しない外部ネットワークのコールが除去されたことを確認します。

難問

ときどき、サイトコードをスキャンしてもマルウェアの明確なソースが見つからないのに、明らかにマルウェアがユーザーに影響を与えていることがあります。この場合は、入力の検証なしにユーザーに入力させたり、ユーザーのコンピューターにクッキーを書き込んだり、あるいは単に一般ユーザー向けの情報を表示するだけでない、個人的なアクティビティにかかわるコードの部分を見てください。あなたのサイトはもしかすると、 クロスサイトスクリプティング(XSS) の犠牲者かもしれません。この具体的問題の解決はこのブログの範疇を超えていますが、コンピューターのセキュリティの脆弱性につけ込むためにハッカーが良く使う手口ですので、これらの攻撃からサイトを守る方法を学んでおくべきでしょう。

追加の情報源

マイクロソフトでは、あなたが直面していること、対応すべきことを理解できるように、有益なマルウェア対策のリソースを数多く提供しています。まずは、これらを試してみてください。

マルウェアの駆除というトピックは、SEM 101コラムとして入門レベルのテーマでないことは認めます。しかし、ウェブサイト上でマルウェア感染が検知されるとマイナス要素は膨大です。検索者が感染したページをクリックしないように採用された、SERP上のエンドユーザー保護の仕組みで、マルウェアをボットが検出した後はBingからの照会がなくなってしまうでしょう。さらに、SERP上の保護を回避し、あるいは感染したサイトに直接アクセスする一部のお客様は、おそらく、マルウェア感染に悩まされることになるでしょう。いずれにしても、購入、購読、あるいはダウンロード等で、コンバージョンの対象としている人は、あなたのサイトで掴んでしまったマルウェアによる不快な混乱に対応しなければならなくなるだけです。あなたのお客様のままでいることはないでしょう。これが、このトピックが101レベルではないとしても、SEM 101で扱われなければならない理由なのです。

次回は、あなたのコンピューターをハッカーの攻撃から守るための適切な安全策についてです。それではまた・・・。

-- Rick DeJarnette, Bing Webmaster Center