ネットワークセキュリティ
 Computer >> コンピューター >  >> ネットワーキング >> ネットワークセキュリティ

Joomlaファーマハック完全ガイド:仕組みから検出・駆除・予防策まで

Joomlaは、PHPとMySQLをベースとしたオープンソースCMSの中で世界で2番目に広く利用されているコンテンツ管理システムです。優れたユーザー管理機能、標準外コンテンツの柔軟な表示、多言語サポートの内蔵など、多くの利点を備えています。しかし、ウェブ上で人気のあるものには必ずセキュリティリスクが伴うものであり、Joomlaも例外ではありません。本記事では、Joomlaサイトに関わるセキュリティ問題の一つである「Joomlaファーマハック(Pharma Hack)」について詳しく解説します。

ネット上にはこのハックへの対処法を断片的に紹介する記事は数多くありますが、本記事を読めば、Joomlaファーマハックの全体像を網羅的に理解できるようになります。

関連記事:Joomlaがハッキングされたときの症状・脆弱性・修正方法

Joomlaファーマハックとは?

ファーマハックとは、正規のウェブサイトに対して行われるブラックハットSEOの一種で、主に医薬品、特にED(勃起不全)治療薬などを宣伝することを目的としています。このハックは、サイトの正当な所有者の目を逃れる形で不正なコンテンツを埋め込みます。近年では、多数のJoomlaサイトがこの攻撃に感染していることが確認されています。

このハックはサイト訪問者からは隠蔽されている一方で、検索エンジンの結果ページ(SERP)のキャッシュを汚染します。そのため、サイトオーナー自身が被害に気づきにくく、報告も遅れがちになり、攻撃者がさらに積極的に悪用を続けるという深刻な事態を招きます。「パラサイトホスティング」と呼ばれる手法の一種であり、単なるブラックハットSEOの範疇を超えた「違法ハッキング」とも評されています。

Joomlaファーマハックの仕組み

  1. 古い拡張機能を狙う: Joomlaファーマハックは、更新されていない古いアドオンやプラグインを使用しているCMSサイトだけを標的とします。
  2. 侵入経路の確保: ハッカーはWebシェルをアップロードするか、リモートファイルインクルージョン(RFI)脆弱性を悪用して強制的に読み込ませることで、Joomlaサイトへのアクセス権を取得します。
  3. キーワードの挿入: サイト内部に入り込んだ後、ブラックハットSEO技術を駆使し、ファーマハック関連のキーワードを挿入します。
  4. 発見を回避: ブラウザ上ではタイトル表示が以前と変わらないため、変更は数週間にわたって訪問者に気づかれません。あるいは、ファイルシステム内に新しいフォルダを作成してそこに不正ファイルを格納する場合もあります。
  5. 検索ランキングの乗っ取り: Googleのクローラーが再クロールすると、感染したサイトは新たなキーワードで検索順位を獲得します。
  6. リンクネットワークの構築: サイト内にハイパーリンクが埋め込まれ、他のハッキングされたサイトへの悪意あるリンクも追加されます。これにより、ファーマハックはさらに深く根付きます。

ユーザーは新しい変更を知覚できないため、サイトは普段どおりに見え続けます。新しいキーワードを使った感染サイト同士の相互リンクや相互宣伝によって、ネットワーク全体が促進され、ハッカーは将来的なトラフィックをすべての悪意あるサイトに対して構築していきます。ただし、この相互リンクによる直接的な利益を得るまでには相当な時間がかかります。

実際にハッキングされたサイトから抽出されたコードスニペットの例は以下のとおりです。

<script>
// <![CDATA[
function bl(){x = document.referrer;
if ( (x.indexOf('viagra')!=-1)||(x.indexOf('VIAGRA')!=-1)||
(x.indexOf('buy')!=-1)||(x.indexOf('Viagra')!=-1)||
(x.indexOf('Buy')!=-1)) {
location.replace("https://www.megarxpills.com/viagra.php?affid=34582011");}}bl();
// ]]>
</script>

このコードは、Webブラウザが参照元サイトについて送信する情報をチェックします。訪問者をこのページへ誘導したURLに「Viagra」や「Buy」といった単語が含まれていた場合、トラフィックはmegarxpills.comのViagraページへリダイレクトされ、その成果はID 34582011のアフィリエイトに帰属します。

Joomlaファーマハックの背後にある意図

この種のハッキングの動機は、主にトラフィックの増加、可視性の向上、そしてハッカーにとっての金銭的利益です。犯罪者たちは、コンテンツを更新する過程でセキュリティ上の穴を露呈させてしまう、警戒心の低いWeb開発者を探し出します。その結果、侵害された正規サイトはそれぞれの業界での名声を失い、ハック除去にかかる多大なコストを負う可能性もあります。しかし今では、Astraのような企業がJoomlaサイト向けのセキュリティソリューションを提供しているため、サイトの安全性について安心感を持つことができます。それでは、Joomlaファーマハックの症状を見つけるにはどうすればよいのでしょうか?

Joomlaファーマハックの検出方法

Joomlaファーマハックは検索エンジンの結果を汚染するため、単純なGoogle検索だけで、あなたのJoomlaサイトが侵害されているかどうかの手がかりを得られる場合があります。決定的なサインは、検索結果のテキスト内にED治療薬やその治療に関する記述が現れることです。

検索エンジンボットになりすます

検索エンジンがファーマハックの兆候を示す結果を返しているなら、Googleボットになりすまして、クローラーの目線で自分のJoomlaサイトがどう見えているかを確認できます。ユーザーエージェント文字列(ブラウザが訪問先サイトに自己を識別させるために送信するテキスト)を変更してみましょう。Firefoxの場合、ユーザーエージェント文字列は次のようになっています。

Mozilla/5.0 (Windows NT 6.1; WOW64; rv:15.0) Gecko/20100101 Firefox/15.0.1

Firefoxのアドオンを使用してこのユーザーエージェント文字列を変更すれば、検索エンジンボットとして結果を閲覧できます。手間に感じる場合は、Google Search Console(旧Googleウェブマスターツール)の「Fetch as Googlebot」機能を使って、Joomlaファーマハックに関連するキーワードをチェックする方法もあります。

ページソースを確認する

任意のWebブラウザで自分のJoomlaサイトを検索し、検索結果ページ上で右クリックしてソースを表示することでも、ファーマハックを検出できます。

ソースページ全体がこのようなスパムコンテンツで埋め尽くされている場合は、ソースコードに抜け穴があり、スパムファイルがJoomlaサイトのあらゆる箇所に注入されている可能性が高いです。ページのソースコード内に、Viagra、Cialis、Regalisといったファーマハック特有のキーワードが見つかるはずです。

コマンドでサーバーディレクトリ上のファイルをスキャンする

サイトのディレクトリ内でファーマハックをチェックするには、以下のコマンドを実行します。

  • zip、gzip、rarなど不自然に見える圧縮ファイルを特定します。以下のコマンドで検索できます。
find /home/user_account/public_html/ ( -iname "*.zip" -o -iname "*.gz" -o -iname "*.tar" -o -iname "*.jpa" -o -iname "*.rar" ) -exec ls -hog {} ;
  • .htaccessファイルの場所と内容を確認し、異常がないか調べます。Joomlaサイト全体の.htaccessファイルを検索するコマンドは以下のとおりです。
find /home/user_account/public_html/ ( -name ".htaccess" ) -type f -print
  • 以下のコマンドで、すべての.cgi、.pl、.shファイルを検索します。
find /home/user_account/public_html/ ( -iname "*.cgi" -o -iname "*.pl" -o -iname "*.sh" ) -exec ls -hog {} ;
  • 通常は存在しない場所に置かれたPHPファイルがないかチェックします。
  • ファーマハック関連ファイルをスキャンするための具体的なコマンド例:
find /home/user_account/public_html/ ( -name "*xmloem*.*" -o -name "*pharma*.*" -o -name "mod_joomla" -o -name "com_article" -o -name "LICESNE.php" ) -print
  • grepコマンドを使って、base64_decode、eval、preg_replace(a/e修飾子の使用)、gunzip、rot13など、ハッカーファイルに関連するパターンを検索します。「base64_decode」を含む行をスキャンするコマンド例は以下のとおりです。
find /home/user_account/public_html/ ( -name "*.php" ) -type f -print0 | xargs -0 grep --binary-files=without-match -ir "base64_decodes*("
  • ネットワークログから、これらの悪意あるファイルへアクセスしていたIPアドレスを特定します。
  • サイトのルート直下にあるindex.php以外の.phpファイルへの接続がないか、IPアドレスをスキャンします。
  • 過去2〜3ヶ月分のネットワークログを走査し、未知のIPからのWebサーバーへの接続を確認します。
  • 200(OK)レスポンスを伴うPOSTリクエストをスキャンします。既知のハッカーファイルとの最初の接触で判別できます。POSTは基本的にアップロード操作です。POSTリクエストを行ったIPアドレスは、新しくアップロードされたハッカースクリプトに対して単一のリクエストを送ります。その後、他のサイトも同じファイルへの接触を始めます。これにより、侵害されたファイルの場所を特定し、サイトを再度公開する前にそのファイルを削除できるようになります。

Joomlaサイトがハッキングされていませんか? こちらからメッセージをお送りいただくか、Astraの担当者とチャットしてください。喜んでお手伝いいたします。

Joomlaファーマハックの駆除方法

ハックファイルを除去するためにサーバーの改変を始める前に、情報損失を防ぐため、必ずサイトの適切なバックアップを作成することを推奨します。また、サイトをホストしているコンピュータシステムがウイルス、スパイウェア、その他のマルウェアといった望ましくないソフトウェアに感染していないことも確認してください。管理者権限を持つすべてのPCをスキャンしましょう。

すべてのスキャンを実施した後は、FTPアカウント、メールアカウント、データベースの認証情報の安全性を確認する必要があります。FTPユーザーのSSHアクセスを無効化し、SSHアクセスを特定の許可済みIPアドレスに限定することをお勧めします。

その後、一時的にサイトを公開停止状態にしてから、サイトのディレクトリ内でファーマハックファイルを除去するための以下の作業を行います。

データベーステーブルのクリーンアップ

スキャンで発見されたデータベーステーブル内のスパムキーワード、不正コンテンツ、ペイロードをすべて削除します。

コアファイルのクリーンアップ

スキャン結果でコアファイル内にフラグが立ったすべての変更点を見直します。正常なコピーと比較し、必要な修正を加えます。

ユーザーログの監査

不明なユーザーや管理者がいれば削除します。攻撃者が複数のユーザープロフィールを作成したり、自分を管理者として追加したりしている可能性があります。ユーザーログと管理者ログを入念に監査し、不正なアクセスを遮断するために該当アカウントを削除しましょう。

バックドアの除去

潜在的なバックドアを排除します。ハッカーは繰り返しサイトにアクセスできるよう、バックドアを残す傾向があります。バックドアがよく見つかる場所としては、base64、str_rot13、gzuncompress、gzinflate、eval、exec、create_function、location.href、curl_exec、streamなどが挙げられます。

不正アクセスのブロック

さらに、通常は以下のような機能を持つスクリプトを導入します。

  • 不審なユーザーエージェントからの接続をブロックする
  • ハッカーによるファイルアクセスの試みを検出し、該当訪問者を恒久的にブロックする
  • 悪意あるIPアドレスをブラックリストに登録する

Joomlaファーマハックの予防策まとめ

World Wide Web上に存在するものは何も安全とは言えません。すでにハッキングされているか、ハッキングされるのを待っている状態です。サイト管理者として、Joomlaファーマハックを防ぐために実行できる合理的な対策があります。目的は次の2つです。

  • ハッキング成功の可能性(今回はJoomlaファーマハック)を最小限に抑える
  • 万が一被害に遭った場合の復旧プロセスを迅速化する

CMSを最新の状態に保つ

Joomla管理者が最も重要として行うべきことは、コンテンツ管理サイトを常に最新の状態に維持することです。Joomlaサイトを支えているのは記事や画像ではなく、CMS本体であることを忘れないでください。これこそがJoomlaサイトをハッキングから守る基本となります。

アドオンに注意を払う

加えて、アドオンの動作状況を定期的に確認することが重要です。すべてのアドオン、テーマ、テンプレートを最新かつ最も安全なバージョンに更新しましょう。

脆弱性の排除

Joomlaサイトに異常やバグが存在すると、ハッカーにファイルを設置され、ファーマハックを実行される隙を与えてしまいます。訪問者がファイルをアップロードできるアドオンは特に監視し、正しい種類のファイルのみがアップロードされるよう適切に判定できる仕組みになっているか確認してください。

AstraのようなWAFツールを活用する

最後に、AstraのようなWebアプリケーションファイアウォール(WAF)ツールに頼れば、Joomlaサイトのセキュリティを心配する必要はなくなります。このツールはリアルタイムでのスキャンと駆除により、複数の種類のマルウェアからサイトを守護します。サイトディレクトリ内で生成されるスパムファイルを定期的にチェックし、Joomlaサイトに損害を与えることなくそれらを除去しようとします。

Joomlaセキュリティに関する記事をもっと読みたい方は、Astra Securityブログの専用セクションをご覧ください。Joomlaサイトに起こりうる他の脆弱性やセキュリティ問題についても解説しています。

  1. PHPリダイレクトハックとは?被害の仕組みと5ステップの対処・駆除方法を徹底解説

    自社のPHPサイトが、ユーザーを悪意のあるウェブサイトへ勝手にリダイレクトしていませんか?それは「PHPリダイレクトハック」の被害かもしれません。PHPリダイレクトハックは、PHPで構築されたサイトに対して最も多く実行されている攻撃手法の一つです。このハックでは、訪問者がアダルトコンテンツや偽ブランド品販売サイトなど、さまざまな悪質なサイトへ強制的に誘導されます。攻撃者の多くは、広告収入やインプレッション数を不正に稼ぐことを目的としています。 しかし、こうした悪意あるサイトの多くは、あなたのユーザーにも深刻な被害をもたらします。フィッシングによって個人情報や機密情報を盗まれたり、有害な広告をク

  2. PHP日本語キーワードハック&ファーマ/バイアグラハックとは?検出方法と駆除・再発防止策を徹底解説

    ハッキングされたウェブサイトの51%以上にはSEOスパムが含まれていると言われています。つまり、SEOスパム攻撃は非常に一般的なサイバー攻撃の一形態なのです。SEOスパムにはさまざまな種類がありますが、その中でも特に蔓延しているのが「PHP日本語キーワードハック(PHP Japanese Keyword Hack)」です。 あなたのウェブサイト全体に見覚えのない奇妙な日本語が散りばめられていませんか?もしそうであれば、そのサイトはPHPキーワードハック(別名:PHP日本語キーワードハック)の被害に遭っている可能性があります。 PHP日本語キーワードハックとは? PHPキーワードハックでは、自