Magentoで構築されたECサイトを狙った過去最大規模の攻撃について
ECサイトのセキュリティ対策などに強みを持つオランダのセキュリティベンダSansecの発表により、今週末(2020年9月11日~14日)にかけて、Magentoで構築されたECサイトに対する過去最大規模の攻撃が観測されたことが明らかになりました。
本攻撃は、特にMagentoで構築されたECサイトを狙う攻撃グループとして知られるMagecartによる攻撃だとされています。
Magecartについては、過去の記事でも紹介しているので、ご参考にしてください。
目次
攻撃の被害規模
今回攻撃の被害に遭ったサイトのほとんどは、2019年の6月にサポートが終了したMagento 1で構築されており、Magento 2で構築されたECサイトはわずかだったとのことです。
Sansecの観測では、現在も約95,000件のMagento 1プラットフォームが稼働しています。
Sansecの検知システムにて、Magentoのチェックアウトページへキーロガーの埋め込みが確認されたサイト数は1,904件で、日ごとの内訳としては、以下のようでした。
- 金曜日(2020/09/11)
- 10件
- 土曜日(2020/09/12)
- 1,058件
- 日曜日(2020/09/13)
- 603件
- 月曜日(2020/09/14)
- 223件
この情報が公開された当日が月曜日だったことから、本攻撃が今もなお継続している可能性があります。
また、Sansecの見解として、これら侵害されたサイトのうちひとつからは、数万件単位で顧客情報が漏洩していることが推定されています。
Sansecは2015年以降継続して、類似の攻撃を観測しているとのことですが、これまでの最大値は2019年7月に確認された962件であり、今回の攻撃が最大規模であることがわかります。
Our crawlers detected 962 breached stores last night. It is the largest automated campaign to date (previously: MGCore with 700 stores). Decoded skimmer: https://t.co/CCVakmMrR5 pic.twitter.com/nIHQFwtRXN
— Sansec (@sansecio) 2019年7月5日
ハッキングフォーラムで売買されるMagentoのゼロディ悪用方法
今回被害に遭ったECサイトでは、過去のセキュリティインシデントの被害にはあっていないとのことでした。そのことから、今回の攻撃において、新たな攻撃手法が用いられていると推測されます。
可能性として、8月の中旬にハッキングフォーラムにて売り出されたMagento 1のゼロディが利用されているのではないかと、Sansecは推測します。
以下の画像の通り、z3r0dayによって、$5,000でリモートコード実行の悪用方法を紹介したビデオを含むセットを販売している様子です。
販売数は10点なようですが、Magecartにまんま利用されている可能性は大いにありそうです。
攻撃の痕跡
Magecartの攻撃は、効果的に実行することを心掛けているからか、自動化した運用を行っていることが攻撃の痕跡からもわかります。
攻撃者は米国のサーバとフランスのサーバ(OVH)経由でMagentoの管理画面を操作し、Magento Connectという機能経由で、mysql.php
という名のマルウェアを含む様々なファイルを取得しています。
以下は、確認されたWebサーバへのアクセスログの一部です。
2020-09-14T09:57:06 92.242.62.210 GET /downloader/ HTTP/1.1 2020-09-14T09:57:09 92.242.62.210 POST /downloader/ HTTP/1.1 2020-09-14T09:57:09 92.242.62.210 GET /index.php/admin/?SID=XXXX HTTP/1.1 2020-09-14T09:57:10 92.242.62.210 GET /index.php/admin/dashboard/index/key/<hash>/ HTTP/1.1 2020-09-14T09:57:13 92.242.62.210 GET /index.php/admin/system_config/index/key/<hash>/ HTTP/1.1 2020-09-14T09:57:15 92.242.62.210 GET /index.php/admin/system_config/edit/section/dev/key/<hash>/ HTTP/1.1 2020-09-14T09:57:19 92.242.62.210 POST /index.php/admin/system_config/save/section/dev/key/<hash>/ HTTP/1.1 2020-09-14T09:57:20 92.242.62.210 GET /index.php/admin/system_config/edit/section/dev/key/<hash>/ HTTP/1.1 2020-09-14T09:57:22 92.242.62.210 GET /index.php/admin/import/index/key/<hash>/ HTTP/1.1 2020-09-14T09:57:25 92.242.62.210 POST /index.php/admin/import/validate/key/<hash>/ HTTP/1.1 2020-09-14T09:57:25 92.242.62.210 GET /downloader/ HTTP/1.1 2020-09-14T09:57:28 92.242.62.210 POST /downloader/index.php?A=connectInstallPackageUpload&maintenance=1&archive_type=0&backup_name= HTTP/1.1 2020-09-14T09:57:29 92.242.62.210 GET /downloader/index.php?A=cleanCache HTTP/1.1 2020-09-14T09:57:31 92.242.62.210 GET /mysql.php HTTP/1.1
不正なコードを一通りprototype.js
に追加したのち、取得されたファイルは自動的に削除されます。
この、prototype.js
は、被害を受けたMagento 2のサイトではjquery.js
という名で見つかっているようです。
いずれのjsファイルにおいても、以下のソースコードからわかるようにmcdnn[.]net
ドメインから、同じマルウェアwidget.js
の取得を試みるようです。
//mcdnn[.]net/122002/assets/js/widget.js
はインストールされたパスのページに応じた動的コンテンツを提供します。
そして、チェックアウトページから参照されたときのみ、悪意のあるキーロガーが取得されるとのことです。
実際の支払いは、モスクワにホストされているhttps://imags[.]pw/502.jsp
に漏洩するとのことで、当該ドメインはmcdnn.net
と同じネットワークに所属するとのことです。
まとめ
先日、WordPressのプラグインにて確認された脆弱性の記事を公開しましたが、CMSへの脅威としては、Magento含め他のプラットフォームにも広く存在します。
自身も、サイト運営などを試みていますが、脆弱性対応含め、運用って大変だな~と思う次第です。
もちろん、目的次第ではありますが、ブログにしてもアプリにしても、SaaSを利用した利便性に甘んじたくなってしまいますよね。
まずは、実際にトライしてみて、それぞれの方法における利点欠点が確認できると一番いいのかなと思っています。