正当な Web サイトを悪用して攻撃を仕掛ける新しい Magecart 型キャンペーン
By Lance Rhodes and Emily Lyons(論説および追加解説)
エグゼクティブサマリー
デジタルコマース Web サイトから個人情報やクレジットカード情報を盗むことを目的とした新しい Magecart 型のスキミングキャンペーンを、Akamai の研究者が発見し、分析しました。
被害は北米、ラテンアメリカ、欧州にまで及び、その規模はさまざまです。被害を受けた Web サイトのなかには、月間訪問者数が数十万人にも上るものもあり、数万人もの買い物客の個人情報やクレジットカード情報が盗まれたり、悪用されたり、ダーク Web で売られたりするリスクが生じています。
このキャンペーンにおいて、攻撃者は、Base64 で難読化したり、攻撃をマスキングして Google Analytics や Google Tag Manager などの一般的なサードパーティサービスに見せかけるなど、さまざまな回避手法を駆使しています。
攻撃者は、正当な Web サイトを「ハイジャック」して、それを即席のコマンド&コントロール(C2)サーバーとして利用します。これらの「被害ホスト」が、その被害者に知られることなく悪性コードの配信センターとなり、攻撃が正当なドメインの背後に効果的に隠ぺいされます。
この攻撃では、Magento、WooCommerce、WordPress、Shopify を利用して構築されている Web サイトが悪用される可能性があります。悪用可能なコマースプラットフォームや脆弱性が増えていることを示しています。
- この種の Web スキミング攻撃はますます巧妙化しており、検知が困難となっているため、ブラウザー内のアクティビティのふるまいや異常を検知するための ツールとテクノロジー の導入を検討することをお勧めします。
概要
ここ数週間、新しい Magecart 型のスキミングキャンペーン が猛威を振るっています。この最新キャンペーンの主な特徴は、正当な Web サイトに侵入して、その Web サイトのドメインの背後に隠れながら、他の Web サイトを攻撃する点です。
Magecart 攻撃の主な目的は、デジタルコマース Web サイトの清算ページから個人情報やクレジットカード情報を盗むことです。従来、この種の攻撃は主に Magento デジタル・コマース・プラットフォームを標的とするものですが、このキャンペーンや類似のキャンペーンでは、Magento、WooCommerce、WordPress、Shopify で構築された Web サイトも被害を受けており、悪用可能なプラットフォームや脆弱性が増えていることを示しています。
通常、Magecart 攻撃はクライアント側に対して実行され、Web Application Firewall(WAF)などの一般的な Web セキュリティ手法では検知できません。そのため、長期にわたって気付かれない場合もあります。
Akamai の調査により、高度なインフラと機能を利用した Magecart 型の Web スキミング攻撃キャンペーンがここ数週間にわたって積極的かつ継続的に実行されており、複数のデジタルコマース Web サイトがこのキャンペーンの被害を受けていることが判明しました。この大規模キャンペーンに悪用された正当な Web サイトは他にもあるはずです。
大規模かつ長期的な攻撃
このキャンペーンの主な標的はデジタルコマース組織です。注目すべきは、この攻撃の規模です。被害を受けた組織のなかには、月間訪問者数が数十万人にも上る組織もあります。つまり、個人情報やクレジットカード情報を盗まれた被害者の数が数千人、場合によっては数万人にもなる可能性があるのです。
被害を受けた組織の多くは、この攻撃に気付くのに 1 か月近くかかったため、それだけ損害の可能性も高くなっています。さらに、Akamai の研究者によると、このキャンペーンの被害は、米国、英国、ブラジル、スペイン、オーストラリア、エストニア、ペルーの組織に及んでいます。
Web スキミング攻撃は、デジタルコマース組織に甚大な被害を及ぼす可能性があります。個人情報やクレジットカード情報の流出は、組織の評判の失墜など、さまざまな影響をもたらします。最も注目度の高い Magecart 攻撃の多くが、何年とは言わないまでも、何か月も検知されないままでした。2022 年には、9,290 のデジタルコマース組織のドメインが Magecart 攻撃を受け、そのうちの 2,468 が気付かれることなく、2022 年末まで感染したままでした。それだけデジタルコマース組織とっては大きな脅威となっているのです。
ハッキングの前のハッキング(攻撃インフラの下準備)
このキャンペーンの主な特徴の 1 つは、攻撃者が Web スキミングキャンペーンを開始する前に攻撃インフラの下準備を行う点です。攻撃者は、キャンペーンを本格的に開始する前に、脆弱な Web サイトを探して、そのサイトを悪性コードの「ホスト」として利用し、Web スキミング攻撃を作り上げます。
悪性コードのホストとして攻撃者自身の C2 サーバーを使用すると悪性ドメインとして検知される可能性があるため、(脆弱性などを悪用して)正当な Web サイト(中小規模の小売 Web サイトなど)にハッキングして、そのサイトに悪性コードを隠します。このようにして、攻撃者は、見た目の上では健全なホストの中に悪性コードを隠して、そのコードを任意の標的に配信します。
基本的に、このキャンペーンでは以下の 2 種類の被害者が生まれます。
- ホストとして悪用される被害者:攻撃で使用する悪性コードをホストするためにハイジャックされた正当な Web サイトです。攻撃者はこのサイトを使用して、攻撃時にコードを配信します。このサイトは普段は正当な Web サイトとして運用されているため、このサイトから被害者に攻撃を仕掛けても疑われる可能性が低くなります。このサイトが攻撃インフラの一部となり、攻撃者が制御するサーバーとして機能します。その目的は、悪性アクティビティを信頼性の高いドメインの背後に隠ぺいすることです。
- Web スキミングの被害者:Magecart 型の Web スキミング攻撃の標的となる脆弱なコマース Web サイトです。攻撃者は、Web サイトのリソースに攻撃コードを直接挿入する代わりに、小さな JavaScript コードスニペットをローダーとして使用して、被害ホスト Web サイトから攻撃コード全体を取得します。これにより、攻撃に使用する悪性コードの大部分を効果的に隠すことができます。
サイトへの侵入方法は不明ですが、過去の同様のキャンペーンに関する Akamai の調査によると、攻撃者は通常、標的となる Web サイトのデジタル・コマース・プラットフォーム(Magento、WooCommerce、WordPress、Shopify など)に含まれる脆弱性、またはそれらの Web サイトで使用されているサードパーティサービスに含まれる脆弱性を悪用します。
Akamai の研究者は、被害ホストとなっている Web サイトをいくつか観察しました。被害ホストとなっているのは、いずれもコマース Web サイトでした。2 回にわたって悪用されている被害ホストもありました。1 回目は、前述のように悪性コードのホストとして悪用されます。2 回目は、被害ホスト自身が Magecart 型の Web スキミング攻撃を受けて、ユーザー情報が盗まれています。これらの Web サイトは、侵害を受けてコードを挿入され、データが盗まれただけでなく、意図せずして、スキミング攻撃を他の脆弱な Web サイトに広める役割も果たしていました。
世間的な信頼と好意的な印象の悪用
調査の際、攻撃者が作成したと思われる偽サイトをいくつか発見しました。これらの偽サイトは、小規模小売企業になりすました フィッシング Web サイトだと考えられます。正当なサイトとよく似たドメインを使用していました。
悪性アクティビティを隠ぺいしたい攻撃者にとって、正当な Web サイトのドメインを悪用することには複数のメリットがあります。世間的に信頼されており、好意的な印象を持たれているドメインを隠れ蓑として利用することで、スキミング攻撃者は攻撃の特定と対応を困難にしています。
正当な Web サイトのドメインを利用することの主なメリットの 1 つは、これらのドメインが時間をかけて信頼を築いてきたことです。セキュリティサービスやドメイン・スコアリング・システムでは通常、優れた実績と正当な使用歴を持つドメインには高い信頼レベルが割り当てられます。そのため、そのようなドメインの下で行われる悪性アクティビティは、自動セキュリティシステムに検知されない、または良性アクティビティとして処理される可能性が高くなります。
当該組織の了承と協力が必要となるため、標的 Web サイトへの攻撃に悪用された正当な Web サイトのドメインを明らかにすることはできません。
有名 Web サイトの背後に隠れながら、悪性コードを被害 Web サイトに挿入
インフラの下準備が完了したら、攻撃者は標的となる脆弱なデジタル・コマース・プラットフォームまたはサードパーティサービスを探し出して、そこに Web スキマーコードを挿入します。攻撃者は、インライン(つまり、外部ファイルから読み込まれるのではなく、HTML 内に埋め込まれたスクリプト)の JavaScript コードスニペットを被害 Web サイトのページに挿入します。このスニペットがローダーとなり、下準備の段階で用意したホスト Web サイトから悪性コード全体を取得します。
注目すべきは、挿入するスニペットは意図的に、 Google Tag Manager や Facebook Pixelなどの人気のサードパーティサービスとよく似た構造を採用して設計されている点です。これにより、悪性コードの検知が困難になり、真の意図を隠ぺいできるため、近年では多くの Web スキミングキャンペーンでこの手法が採用されています。
さらに、攻撃コード全体をホストする被害 Web サイトの URL を難読化するために、スキミング攻撃者は Base64 エンコーディングを使用します(図 1)。この手法は、コードのオリジンと目的を効果的に隠すことができるため、多くのスキミング攻撃者が好んで利用するようになっています。
この手法では、攻撃者は次の 3 つの方法を通じて検知を回避します。
攻撃に使用するドメインを難読化する
ローダーを巧みにマスキングして、正当なサードパーティスクリプトまたはベンダーに見せかける
コードの大半を他のソースから取得することで、ページに挿入する悪性コードの数を減らし、コードが検知される可能性を大幅に下げる
ローダーが挿入されると、任意のユーザーが被害 Web サイト上で清算をしようとする際に個人情報やクレジットカード情報が盗まれ、攻撃者の C2 サーバーに送信されます。
コードの分析:難読化された Magecart 攻撃
今回の調査において、2 つのバリエーションのスキマーコードを特定しました。
1 つ目のバリエーションは高度に難読化されており、コードのフローと論理構造を解読するのは簡単ではありませんでした。攻撃者は、デバッグや調査を妨害するための戦術として難読化を採用し、攻撃の正確なシーケンスを把握することを意図的に困難にしています。
悪性コードの難読化は、Web スキミング攻撃ではよく採用されている手法であり、近年ではますます多くのキャンペーンで用いられています(図 2)。
難読化されたコード内に埋め込まれた Base64 文字列をデコードした結果、CSS(Cascading Style Sheets)セレクターのリストを発見しました。これらのセレクター名を見ると、スキミング攻撃者が個人情報やクレジットカード情報の入力フィールドを標的としていたことが分かります。
デコードしたコード内に CSS セレクターが含まれていたこと、そして機微なユーザーデータを収集するための入力フィールドを標的としていたことは、スキミング攻撃者が違法な目的のために個人情報とクレジットカード情報を盗もうとしていたことを明確に示しています。また、どの程度の情報を収集していたのかについても見当が付きます。これらの入力フィールドを一致させるためには、攻撃者は被害サイトごとにコードを「カスタマイズ」する必要があるためです(図 3)。
このキャンペーンで発見された悪性コードの 2 つ目のバリエーションは、難読化の度合いが比較的少なく、より理解・分析しやすいものでした。1 つ目のバリエーションと同様に、コードの意図を示す文字列は Base64 でエンコードされていたため、その意味を簡単に解読できました(図 4)。
2 つ目のバリエーションの興味深い点は、コード内に特定の指示記号が含まれていたことです。これらの指示記号が重要なヒントとなり、このキャンペーンの被害 Web サイトやインスタンスを特定することができました。
盗難データの流出
スキマーコード内に IMG タグを作成して、単純な HTTP リクエストを実行することで、盗難データを流出させていました。盗難データをクエリーパラメーターとしてリクエストに追加し、Base64 文字列としてエンコードしています(図 5)。
転送データを難読化するために、データを Base64 文字列としてエンコードしています。このエンコードにより、機微な情報の流出をセキュリティシステムやネットワーク監視ツールで検知することがより困難になります。Base64 でエンコードしたデータが攻撃者のサーバーに到達したら、簡単に元の形式にデコードして、盗んだ個人情報とクレジットカード情報を把握できます。
データ流出は、清算を行うユーザーごとに 1 回だけ行われます。ユーザーの情報を盗んだら、同じユーザーの情報を 2 回盗まないように、スクリプトがブラウザーに指示します(疑わしいネットワークトラフィックを減らすため)。これにより、この Magecart 型の攻撃は検知がさらに困難になります。
セキュリティ上の推奨事項と緩和策
攻撃者が Web スキマーを仕掛けるためには、脆弱性を利用するか、既存のサードパーティスクリプトを悪用するかして、サーバーへの最初のアクセスに成功する必要があります。この最初のアクセスを防止するためには、常に最新のパッチを適用するだけでなく、WAF を実装することが重要です。
しかし、現在の Web アプリケーション環境は複雑かつ俊敏で、分散しており、導入状況も多様化しています。加えて、攻撃者はさまざまな方法を通じて Web スキマーを仕掛けてきます。そのため、ブラウザー内で実行されるスクリプトのふるまいを可視化して、クライアント側の攻撃を防御できる、より専門的なセキュリティソリューションが必要です。
必要なのは、クライアントに対する攻撃を、その発生場所の近くで検知できるソリューションです。機微な情報の入力フィールドを読み取って、データを流出させようとする試みを効果的に特定できるソリューションです(Akamai が実施したテストでは、 Akamai Page Integrity Managerを使用しました)。これらのセキュリティイベントを適切に収集して、迅速かつ効果的に緩和することを推奨します。
結論
このキャンペーンにより、Web スキミングが依然として重要なセキュリティ脅威であり、攻撃者は常に戦略を進化させて攻撃を隠蔽することで、検知をより困難にしていることが改めて明らかになりました。また、 PCI DSS v4.0 の新しいスクリプトセキュリティ要件 でも、支払いカードをオンラインで処理するすべての組織に対して、Web スキミング攻撃を検知し、それに対応するためのメカニズムを導入することを義務付けています。
Web スキミングを効果的に防止するためには、 Akamai Page Integrity Managerのような、ふるまいや異常を検知できるツールやテクノロジーを活用することが重要です。従来の静的解析ツールでは不十分です。Web スキミング攻撃者は、絶えず攻撃方法を変えて、より巧妙な手法を採用することで静的解析を回避するからです。
このような「いたちごっこ」は今後も続き、同様のキャンペーンが断続的に行われると考えられます。Web スキミングに関する防御者と攻撃者の戦いは続いています。そこで重要なのは、革新的なセキュリティ対策に積極的に投資することです。攻撃ベクトルの変化に適応できる高度な検知テクノロジーを採用することで、オンラインプラットフォームを防御して、ユーザーデータを保護し、顧客の信頼を維持できます。Web スキミングの脅威に対抗し続けるためには、継続的な調査、コラボレーション、警戒が不可欠です。
Akamai Security Intelligence Group は、今後もこのアクティビティを継続的に監視し、お客様や一般社会に貴重な知見を提供します。脆弱性に関するリアルタイムの情報やその他の最新のセキュリティ調査については、 Twitterに投稿しています。
更新日:2023 年 6 月 7 日 Magento、WoodCommerce、WordPress、Shopify などの一部のプラットフォームに悪用される恐れがあることを明記するため、記事を更新しました。
IOC
流出ドメイン:
byvlsa[.]com
chatwareopenalgroup[.]net