Posted:
本日は #nohacked キャンペーンの一環として、先週ご紹介した、スパム ページがサイトに挿入されるという、最近よく見られるハッキングの問題を解決する方法についてお話しいたします。たとえサイトがこの種のハッキングの被害を受けていなくても、ここで紹介する手順の多くは、他の種類のハッキングの問題を解決する際にも役立つと思われますので、ぜひお読みください。(本キャンペーンは、TwitterGoogle+ でも展開していますので、ぜひフォローしてみてください。ハッシュタグは #NoHacked です。パート 1パート 2パート 3パート 4 のブログ記事もご覧ください)。



サイトを一時的にオフラインにする

まずは、サイトを一時的にオフラインにすることで、サイトの訪問者がハッキングされたページにアクセスすることを防ぐとともに、サイトを適切に修正するための時間を確保できます。サイトをオンラインのままにしておくと、問題の修正中に再び攻撃を受ける恐れがあります。

サイトの問題を修正する

次に、サイトに対して技術的な変更を加えます。そのような変更を加えることに慣れていない場合は、そうした変更の経験がある人に相談または依頼することをおすすめします。ただし、これらの手順を知っておくこと自体は、実際に作業をしなくとも、役に立つでしょう。

サイトの問題の修正を始める前に、サイトをバックアップしておくことをおすすめします(このバックアップ ファイルは、ハッキングされたコンテンツが含まれたままの状態です。そのため、すべてのファイルを復元するなどせず、重要なファイルを誤って削除してしまった場合にそのファイルだけ復元する、といった形でのみ利用してください)。サイトをバックアップする方法が不明な場合は、利用しているホスティング プロバイダに協力を要請するか、お使いのコンテンツ管理システム(CMS)のヘルプ ページなどをご覧ください。作業の途中でファイルを削除する際は、必ず、そのファイルのバックアップを残しておくようにしましょう。

.htaccess ファイルを確認する

この種のハッキングでは、サイトを操作するために .htaccess ファイルを作成するか、その内容を改ざんします。.htaccess ファイルの場所が不明な場合は、お使いのサーバーまたは CMS のヘルプ ページをご覧ください。.htaccess ファイルをチェックして、不審な内容が含まれていないか確認します。.htaccess ファイルの内容の意味がわからない場合は、Apache.org のドキュメント(英語)を参照するか、ウェブマスター ヘルプ フォーラムに質問を投稿するか、詳しい人に相談してみてください。以下に、この種のハッキングによって改ざんされた .htaccess の例を示します。

  • <IfModule mod_rewrite.c> 
  •   RewriteEngine On  
  •   #Google 検索経由でサイトを訪れたユーザーはリダイレクトされる 
  •   RewriteCond %{HTTP_REFERER} google\.com 
  •   #ユーザーは happypuppy.php という悪意のある PHP ファイルにリダイレクトされる 
  •   RewriteRule (.*pf.*) /happypuppy.php?q=$1 [L] 
  • </IfModule>

見つかった不審な部分をすべて削除します。.htaccess ファイルに悪意のある内容だけが含まれている場合は、.htaccess ファイル全体を削除してしまっても問題ありません。また、.htaccess ファイルに悪意のある PHP ファイル(ここでは happypuppy.php というファイル名ですが、多くの場合 2 つの単語をランダムに組み合わせた名前です)が記述されていることにも気付かれたかと思います。これは次の手順において重要となります。次の手順では悪意のあるファイルを特定する方法を説明します。

その他の悪意のあるファイルを特定する

この種のハッキングで改ざんまたは不正に挿入されることの多いファイルの種類は JavaScript ファイルと PHP ファイルです。通常、ハッカーは次の 2 つのアプローチを用います。1 つ目は、サーバーに新しい JavaScript ファイルまたは PHP ファイルを不正に挿入するというアプローチです。挿入されるファイルには、サイト上の正当なファイルに極めてよく似た名前(正当なファイル wp_cache.php に対して wp-cache.php など)が付けられていることがあります。2 つ目は、サーバー上の正当なファイルに変更を加えて、それらのファイルに悪意のあるコンテンツを挿入するというアプローチです。たとえば、サイト上にテンプレートやプラグインの JavaScript ファイルがある場合、ハッカーによってそのファイルに悪意のある JavaScript が挿入されることがあります。

たとえば、www.example.com において happypuppy.php という名前の悪意のあるファイル(先ほど .htaccess ファイル内で特定されたもの)がサイト上のフォルダに挿入されたとします。ハッカーはそれに加えて、json2.js という名前の正当な JavaScript ファイルの改ざんも行って、このファイルに悪意のあるコードを追加することがあります。改ざんされた json2.js ファイルの例を以下に示します。怪しいコードはこの json2.js.file の下部に追加されています(赤色でハイライトされている部分):




悪意のあるファイルを効率的に特定するには、サイト上の正規の JavaScript ファイルおよび PHP ファイルの機能を理解する必要があります。そのためには、お使いの CMS のドキュメントを確認することが必要となる場合があります。それぞれのファイルでどのような処理が行われるかがわかれば、サイトの機能に関係のない悪意のあるファイルを簡単に特定できます。

また、サイト上で最近変更されたファイルがないかどうかも確認します。特に、最近変更されたテンプレート ファイルは徹底的に調査する必要があります。PHP ファイルの中身を特定しにくいように難読化している場合もありますが、そのような難読化された PHP ファイルの解釈に役立つツールを補足情報に記載しましたのでそちらもご覧ください。

悪意のあるコンテンツを削除する

先ほどご説明したように、ファイルを削除または変更する前にサイトのコンテンツを適宜バックアップしておきましょう。定期的にサイトをバックアップしている場合は、クリーンなバックアップ ファイルを復元するだけで簡単に悪意のあるコンテンツをサイト上からなくすことができるでしょう。サイトのバックアップを定期的に行っていない場合には、代わりにいくつかの手順を行います。まず、サイトに挿入された悪意のあるファイルをすべて削除します。たとえば、上記の www.example.com の場合であれば happypuppy.php ファイルを削除します。json2.js のような改ざんされた PHP ファイルや JavaScript ファイルについては、それらのファイルのクリーンなバージョンをサイトにアップロードする必要があります。CMS をお使いの場合は、主要な CMS ファイルおよびプラグイン ファイルのコピーをインストールし直すことを検討しましょう。

脆弱性を特定して修正する

悪意のあるファイルを削除したら、サイトへの攻撃を許した脆弱性を特定して修正する必要があります。そうしないとサイトが再びハッキングされる恐れがあります。パスワードの流出や古いウェブ ソフトウェアまであらゆるものが、この脆弱性となる可能性があります。ウェブマスター向けのハッキングに関するヘルプで脆弱性を特定して修正する方法について確認してください。サイトがどのような方法で攻撃されたかを解明できない場合は、すべてのログイン認証用のパスワードを変更し、すべてのウェブ ソフトウェアを更新した上で、利用しているサーバーやホスティングの提供元などからより専門的なサポートを得ることも検討しましょう。

次のステップ

サイトの問題の修正が完了したら、Fetch as Google ツールを使用して、ハッキングされたページがまだ Google には表示されているかどうかを確認します。Fetch as Google ツールでチェックするには、サイトをオンラインにする必要がありますのでご注意ください。トップ ページについても、ハッキングされたコンテンツが含まれていないかを必ず確認します。ハッキングされたコンテンツが見つからなければ、サイトの問題は正常に修正されたことになります。Fetch as Google ツールで、ページ上に悪意のあるコンテンツがまだ検出される場合は、引き続き修正作業を行う必要があります。悪意のある PHP ファイルや JavaScript ファイルを見落としていないか、再度確認します。

サイトの問題が解消されて脆弱性が修正されたことが確認できたら、サイトを通常運営に戻し、ユーザーにも復旧をアナウンスしましょう。サイトに手動による対策が適用された場合は、Search Console で再審査リクエストを送信します。

また、今後生じる攻撃からサイトを保護する方法を検討しておきましょう。今後生じる攻撃からサイトを保護する方法について詳しくは、ハッキングされたサイトに関するウェブマスター ヘルプをご覧ください。

このブログ記事を読んで、スパム ページがサイトに挿入されるというハッキングの問題を修正する方法を少しでもご理解いただけることを願っています。ソーシャル メディアで #nohacked キャンペーンをフォローし、サイトを保護するためのアイデアやコツをハッシュタグ #nohacked で共有してください。

ご不明な点がありましたら、ウェブマスター ヘルプ フォーラムに投稿してください。

補足情報

問題の特定と修正に役立つ可能性のあるツールを紹介します。なお、これらのツールは Google が提供およびサポートしているツールではありません。

PHP DecoderUnPHP: ハッカーは通常、読み取りが困難になるよう PHP ファイルを難読化します。これらのツールを使うと、PHP ファイルの実行内容を把握しやすくなります。


Posted:
本日は #NoHacked キャンペーンの一環として、最近よく見られるハッキング手法、そしてその監視、調査方法についてお話しします。たとえサイトがこの種のハッキングの被害を受けていなくても、ここで紹介する手順の多くは、他の種類のハッキングに対処する際に役立ちますので、ぜひご覧ください。なお、来週のブログ記事では、このハッキングの問題を解決する方法について紹介する予定です。(本キャンペーンは、TwitterGoogle+ でも展開していますので、ぜひフォローしてみてください。ハッシュタグは #NoHacked です。パート 1パート 2パート 3 のブログ記事もご覧ください)。



特徴をつかむ(最近よく見られるハッキング手法)

意味不明なページ(Gibberish)
最近多く見られるハッキング手法の特徴は、サイトをハッキングした後、新たに追加された正規のページのように見せかけて、スパム ページを挿入するというものです。こうしたスパム ページには、検索エンジンを欺くためにキーワードをむやみに詰め込んだテキスト、リンク、画像などが含まれています。たとえば、www.example.com/pf/download-2012-free-full-crack.html といったページを作成し、以下のような意味不明なコンテンツを追加するといったやり方が見られます(日本のサイトであっても英語や他言語のページが挿入されることがあります)。





クローキングの併用
このハッキングでは、ハッキングの事実をウェブマスターに気付かれないようにするために、クローキングという手法がよく使われます。クローキングとは、ウェブマスター、サイトへの訪問者、検索エンジンに対しそれぞれ異なるコンテンツまたは URL を表示することです。たとえば、サイトのウェブマスターに対しては空のページまたは HTTP 404 ページが表示されるようにすれば、ウェブマスターはハッキングされた状態が存在しない、あるいは解消されたと考えるでしょう。その一方で、検索結果からアクセスしたユーザーはスパム ページにリダイレクトされ、さらに、そのサイトをクロールする検索エンジンには意味不明なコンテンツが表示される、という状態を作っていることがあります。

サイトを監視する

サイトにハッキングされた形跡がないかどうかしっかり監視することで、早い段階で問題に対処し、ハッキングによる被害を最小限に抑えることができます。ここからは、今回ご紹介したハッキング手法による被害からサイトを守るための監視方法をいくつかご紹介します。

ウェブサイトのトラフィックが急増していないか調べる
このハッキングでは、本来のサイトと関連の低いコンテンツを含んだスパム ページを検索エンジンでクロールさせるため、サイトとは関連の低いキーワードによるトラフィックが増加することがあります。最近トラフィックが突然増えたことがなかったかどうかを確認してください。トラフィックの急増が見つかった場合は、Search Console の検索アナリティクスを使用して、異常なトラフィックの発生源がハッキングされたページであるかどうかを調べます。

サイトが検索結果にどのように表示されるかを追跡する
ウェブマスターにとって、ご自身のサイトが検索結果にどのように表示されるかを定期的にチェックすることは重要です。しかも、この方法でハッキングの形跡を見つけることもできます。ご自身のサイトで「site:」演算子を使用する(たとえば、「site:example.com」で検索する)と、意味不明な内容のページがサイト上に存在していたり、「このサイトはハッキングされている可能性があります」というメッセージが表示され、ハッキングに気づくことがあるでしょう。

Google からの通知が届くように設定する
Google では、サイトを Search Console に追加することをおすすめしています。Search Console を利用すると、手動対策ビューアセキュリティの問題に関するレポートを見て、サイト上でハッキングされたページが見つかったかどうかを調べることができます。さらに、サイト上でハッキングされたページが見つかった場合は、Search Console に警告メッセージが表示されます(メッセージをメールに転送することもできます)。

また、サイトに Google アラートを設定することもおすすめです。Google アラートは、検索クエリに対して新しい検索結果が見つかった場合にメールで通知するサービスです。たとえば、ご自身のサイトとよく使われるスパム ワードを組み合わせた [site:example.com 激安] のようなキーワードを Google アラートで設定するとします。そのキーワードについて新しい検索結果が見つかり Google アラートからメールが来た場合、そのアラートが発生する原因となったサイト上のページをすぐに確認する必要があります。


サイトを調査する

便利なツールを利用する
Search Console では、Fetch as Google ツールを利用できます。Fetch as Google は、Google がページをどのように認識しているかを確認できるツールで、ハッキングやクローキングされたページを特定するのに便利です。Fetch as Google 以外にも、他社が提供している様々なツールがあります(このブログの補足情報をご覧ください)。

ハッキングされたページの有無を確認する
サイト上にハッキングされたコンテンツがあるかどうかはっきりわからないときは、サイトがハッキングされた場合のトラブル シューティングを利用すると、順を追って基本的なチェックができます。また、上述のように、サイトに対して「site:」演算子を使った検索を実行し、検索結果に意味不明なキーワードが表示される不審なページがないかどうか探すことも有効です。サイト上のページが多い場合は、よく使われるスパム ワード リストなども利用しながら 必要に応じてクエリを絞り込み、被害の状況を確認しましょう(たとえば [site:example.com 激安])。いくつかのスパム ワードを当てはめてみて、なんらかの結果が表示されるかどうかを確認しましょう。

ハッキングされたページでクローキングが行われていないか確認する
上述のように、この種のハッキングはクローキングを併せて行っていることがあり、ハッキング行為の発見をより困難なものにしています。そのため、Search Console の Fetch as Google ツールを使って、前の手順で見つかったスパム ページを再度チェックすることが非常に重要です(一見ハッキングが直っているように見えても、チェックしてみてください)。


このブログ記事を読んで、スパム ページがサイトに挿入されるというハッキングの問題を特定して調査する方法を少しでもご理解いただけることを願っています。来週は、このようなハッキングの問題を解決する方法について説明しますので、そちらもご覧ください。ソーシャル メディアで #NoHacked キャンペーンをフォローし、サイトを保護するためのアイデアやコツをハッシュタグ #NoHacked で共有してください。

ご不明な点がありましたら、ウェブマスター プロダクト フォーラムでお知らせください。


補足情報

ここで紹介するツールを使用すると、サイトをスキャンして、問題のあるコンテンツを見つけることができる可能性があります。ただし、Google がサポートしている(Google 上で利用できる)ツールは VirusTotal のみです。
VirusTotalAw-snap.infoSucuri Site CheckWepawet: これらのツールでは、サイトをスキャンし、問題のあるコンテンツがあるかどうかを調べることができます。ただし、いずれのツールも、問題のあるコンテンツをすべて特定することを保証しているわけではありませんのでご注意ください。


Posted:
Google Search Console の検索アナリティクス(Search Analytics)機能からの有益なフィードバックを検討した結果、このデータを API を通じてデベロッパーの皆さまにもご提供することになりました。検索アナリティクス API によって、検索のパフォーマンス データをアプリやツールに統合しやすくなります。

Google の他の API や既存の Search Console API を使用した経験があるなら、検索アナリティクス API の使用は簡単です。ハウツーページのドキュメント(現在は英語版のみ)には Python の例が掲載されており、ご自身のプログラムの参考例としてご利用いただけます。たとえば、この API を次のような用途に使用できます。

[上記のドキュメントは現在英語でのみ提供されています。ご自分の地域の言語での翻訳版があれば役立つと思いますか?こちらからご意見をお寄せください。]

新しい API で何を作成しますか?Google では、この API を使用した新しいツールやアプリが、Google 検索におけるサイトのパフォーマンス情報の収集にどのように役立つかを知りたいと考えています。この API をツールに統合された場合は、ぜひコメント欄で感想をお寄せください。API に関してご質問がありましたら、いつでもウェブマスター ヘルプ フォーラムまでお寄せください。

Posted:
本日は、#NoHacked キャンペーンの一環として、2 段階認証プロセスについてお話しいたします。(本キャンペーンは、TwitterGoogle+ でも展開していますので、ぜひフォローしてみてください。ハッシュタグは #NoHacked です。パート 1パート 2 のブログ記事もご覧ください)。

かつては、オンライン アカウントを保護する手段として、ある程度強固なパスワードやセキュリティ保護用の質問を設定しておけば十分と考えられていました。しかし、Stop Badware が行った調査(英語)によれば、認証情報を盗んでウェブサイトに不正アクセスする、というのがハッカーの常套手段の 1 つとなっており、評判のよいサイトであっても、パスワードなどの個人データを盗まれてハッカーの餌食になるおそれはあるのです。

しかし、2 段階認証プロセスを使えば、アカウントをもっと安全に保護でき、ハッカーによる不正なアクセスからサイトを守ることができます。2 段階認証プロセスでは、アカウントにアクセスする際に、パスワードだけでなく、さらに追加で認証情報を組み合わせて使用します。既に 2 段階認証プロセスを使ったことがある方もいらっしゃるかもしれません。たとえば、ソーシャル メディア サイトにログインするときにスマートフォンに届いたコードを入力した経験や、銀行口座にオンラインからログインするときにカード リーダーを使用した経験はないでしょうか。2 段階認証プロセスを設定することで、たとえ誰かにパスワードを盗まれても、簡単にはアカウントにログインされないようにすることができます。

ウェブサイトを運営されているなら、今すぐアカウントの 2 段階認証プロセスを有効にするとよいでしょう。万が一サイトがハッキングされ、ユーザーのアカウントを乗っ取られたら、重要な個人データが漏洩して、サイトの評判が失墜する事態にもなりかねません。2 段階認証プロセスを設定することで、アカウントとデータを保護し、安心してサイトを運営できるようになります。

Google では現在、Google Apps ドメインを含むすべてのアカウントで 2 段階認証プロセスを提供しています。アカウント認証には、スマートフォン、セキュリティ キーなどのハードウェア トークン、または Google 認証システム アプリを使用できます。これらをうまく使い分けることで、旅行先やモバイル ネットワークに接続できない場所でも安全に認証を行えます。

サイトの管理に使用しているホスティング プロバイダ、コンテンツ管理システム(CMS、リンク先は英語)、またはプラットフォームで 2 段階認証プロセスが提供されていない場合は、今後対応する予定があるかどうかをカスタマー サポートに確認するとよいでしょう。ホスティング プロバイダが、Google のオープンソース コードを使用して 2 段階認証プロセスをプラットフォームに実装することも可能です。不正アクセスからの強固な保護を期待できない場合は、ホスティング プロバイダを変更することも検討してください。https://twofactorauth.org/(英語)で、2 段階認証プロセスに対応しているウェブサイトと、各サイトが対応している認証の種類を確認できます。

ご不明な点がありましたら、ウェブマスター プロダクト フォーラムでお知らせください。8 月 26 日には、セキュリティをテーマとしてハングアウト オンエア(英語)も予定されています。ぜひご参加ください。

Posted:
今回は #nohacked キャンペーンの一環として、ソーシャル エンジニアリング攻撃についてお話します(本キャンペーンは、TwitterGoogle+ でもキャンペーンを展開していますので、ぜひフォローしてみてください。ハッシュタグは #nohacked です。パート 1 のブログ記事もご覧ください)。

ソーシャル エンジニアリングとは、巧みな方法でユーザーをだまし、機密情報を盗み出そうとすることです。ウェブ上である程度の時間を過ごしていれば、なんらかの形でソーシャル エンジニアリングに遭遇することもあるでしょう。

フィッシング

フィッシングは、ソーシャル エンジニアリングの一般的な手法の 1 つです。フィッシング サイトやメールは、正当なサイトを偽装して、ユーザーがユーザー名やパスワードなどの機密情報を入力するように仕向けます。Google の最近の調査(英語)では、一部のフィッシング サイトがユーザーをだます成功率は 45% にものぼります。フィッシング サイトから盗まれた個人情報は売られるか、アカウントの乗っ取りに使われます。

ソーシャル エンジニアリングのその他の攻撃

サイト所有者にとって、警戒が必要なソーシャル エンジニアリングはフィッシングだけではありません。サイトで使用されているソフトウェアやツールからソーシャル エンジニアリングが仕掛けられることもあります。コンテンツ管理システム(CMS)、プラグイン、アドオンをダウンロードまたは使用する場合は、デベロッパーのサイトから直接入手するなど、信頼できる提供先から入手するようにしてください。信頼できないサイトから入手するソフトウェアには、第三者がサイトに容易にアクセスできるようにするようなセキュリティ上の脆弱性が組み込まれているおそれがあります。
一例をあげましょう。ウェブマスターの Wanda さんは最近、ペットショップに雇われて、サイトの作成を手伝いました。概略を設計した後、サイトの構築に必要なソフトウェアを揃えようとしました。ところが、お気に入りの写真表示プラグインが CMS プラグインの正式なサイトから削除され、開発者によるサポートも終了していました。急いで調べてみると、以前のプラグインのファイルを提供するサイトが見つかりました。そのプラグインをダウンロードして使用し、サイトを完成させました。2 か月後、Search Consoleから Wanda さんのクライアントのサイトがハッキングされたという通知がありました。ハッキングされたコンテンツについて急いで調べると、写真表示プラグインが第三者に改ざんされており、悪意のあるユーザーがサイトにアクセス、編集できるようになっていることがわかりました。Wanda さんはプラグインを削除し、ハッキングされたコンテンツを修正し、その後の攻撃からサイトを保護して、Search Console で再審査をリクエストしました。つまり、Wanda さんが、ソフトウェアの改ざんに気付かなかったために、クライアントのサイトが改ざんされたのです。

ソーシャル エンジニアリング攻撃を防ぐ

ソーシャル エンジニアリングが脅威となるのは、自分の行動の何が問題となるのかがわかりにくいからです。しかし、以下の基本事項は、ソーシャル エンジニアリングを防ぐのに有効です。
  • 絶えず警戒する: インターネット上で機密情報を入力する際や、ウェブサイトにあるソフトウェアをインストールする際には、十分に注意します。URL を確認して、不正なサイトに機密情報を入力していないことを確かめます。ウェブサイトにソフトウェアをインストールする際は必ず、開発者のサイトなど、信頼できるソースから入手します。
  • 2 段階認証プロセスを使用する: Google の 2 段階認証プロセスのように、2 つの要素を認証に使用してセキュリティを多重にし、パスワードが盗まれてもアカウントを保護できるようにします。できる限りすべてのアカウントで、2 段階認証プロセスを使用してください。2 段階認証プロセスのメリットについては、来週さらに詳しくご紹介します。

ソーシャル エンジニアリングに関連するその他のリソース:

ご不明な点がありましたら、ウェブマスター ヘルプ フォーラムでお知らせください。