要点
同社はカード番号を保存していなかったが、決済ページに置かれたプログラムが、入力された瞬間に読み取った可能性がある。不正アクセスが判明して 1 時間後にサイトを閉じたが、このプログラムが判明したのはその 5 日後だった。決済ページを書き換えられれば、カード番号を保存していなくても、入力した瞬間に読み取られうる。
実行の前の照合=決済ページを開くたびに、動いているコードが承認した版と一致するかを照合し、記録に残すこと。検知=不正アクセスが起きた後に気づくこと。
いつもの画面で入力された
通った操作
- 通った操作
- 決済ページで動く不正なプログラム。10 月 21 日 13 時 55 分から 23 日 7 時まで置かれ、この間に決済ページで入力された情報が傍受されたと同社は認識している。
- 受け付けた側に届くもの
- 利用者のブラウザには、正規のサイトから、いつもの決済画面が届く。一般に、見た目やサイトへの接続からは、ページの中のコードが書き換えられたことは分からない。
- 公表されていないこと
- 入口の脆弱性の種別、プログラムがブラウザで動くものかサーバー側の改ざんか、傍受した情報の送り先、カードの不正利用の被害。
実行前の照合
経路を問わず区別できる条件は、決済ページを配る側が、ページで動くコードを承認した版と、入力の前に照合することである。
守る対象は、保存したカード番号ではなく、入力を受け取るページのコードである。
- 誰が承認を出すか
- 決済ページの持ち主(EC の事業者)。リリースのときに、決済ページで読み込むスクリプトと内容のハッシュを、サイトの管理者権限とは別の鍵で承認する。
- どこで照合するか
- 決済ページを配るサーバーと、利用者のブラウザ(CSP や Subresource Integrity)。承認した版と一致しないコードは、読み込ませない。
- 何が残るか
- どの版の決済ページで、どの決済の操作(入力の開始、完了、カード情報の変更)が行われたかの記録。対象の利用者を後から絞り込める。
閉鎖でプログラムも止まったが、判明したのは不正アクセスで、決済ページの書き換えではない。画面に届いたコードが書き換えられる点は、Polymarket(第三者経由で画面に JavaScript が注入された)と Stripe の API の転用(信頼された API が、カードを盗むコードの配送に使われた)とも共通する論点である。
Lemma でできること
Lemma は、実行前の照合を、決済ページを配る仕組みに組み込む。侵入を見つけるのではなく、いま配っているページのコードが、承認した版かを照合する。
注意したい業界・業務
- 業界サービス・小売
- 自社のページにカードの入力欄を置いている EC サイト。ページの改ざんが、そのまま入力の傍受になる。
- 業務サイトの開発・保守の委託
- 決済ページの変更や管理画面の権限を、委託先に任せている場合。
いまの対策と Lemma の違い
今回の経路が、スクリプトの差し替えか、サーバー側のページの書き換えかは、公表されていない。第 3 列(承認した版そのものの問題)は今回の経路ではなく、別の場面の比較である。
| 対策 | スクリプトの差し替え・追加 | サーバー側のページの書き換え | 承認した版そのものの問題 |
|---|---|---|---|
| カードの全桁を保存しない | 関係しない | 関係しない | 関係しない |
| 不正アクセスの検知とサイトの閉鎖 | 一部 | 一部 | 関係しない |
| 脆弱性の改修 | 一部 | 一部 | 関係しない |
| 決済画面を外部の決済代行に任せる | 一部(埋め込み方式)/効く(遷移方式。カードの入力欄が加盟店のページに無い) | 一部 | 関係しない |
| Lemma(実行の前の照合) | 効く(承認の鍵が別にある場合) | 効く(承認の鍵が別にある場合) | 効かない |
カードの全桁を保存しないことは保存した情報を守り、検知と閉鎖は気づいた後に効く。Lemma は、ページで動くコードそのものを、入力の前に照合する。カード業界の基準 PCI DSS v4.0.1 の要件 6.4.3 と 11.6.1 も、2025 年 3 月から決済ページのスクリプトの承認と改ざんの検知を求めている。
注:Lemma の照合が働くのは、決済ページを配る仕組みに照合を組み込み、承認の鍵がサイトの管理者権限とは別にある場合に限る。承認の権限ごと奪われた場合や、照合の仕組みごと書き換えられた場合は通る。同社は管理者権限が取られたと認識しており、サーバー側の書き換えなら、照合の元になる一覧やハッシュも同じ権限で書き換えられうるため、承認の鍵を別に置かなければ効かない。表は何を照合しているかの比較で、今回の事案で止まったかどうかを示すものではない。Lemma は、侵入を検出・防止するものではない。
EC サイトの決済ページの改ざんについて、組織で確認する 3 項目
- 決済ページの変更は、サイトの管理者権限だけでは本番に反映できないようになっているか。
- 決済ページの内容が承認した版から変わったとき、その日のうちに知らせが届くか。
- 決済を試みた人と、カートに入れただけの人を、記録から区別できるか。
事実と時系列
- サイト
- グッドスマイルカンパニー公式ショップ。楽天市場店は対象に含まれない。Amazon Pay・PayPal を経由した支払いの情報は、同社が漏えいを確認していない。ただし、注文情報は決済方法を問わず対象になる。
- 原因
- システムの一部の脆弱性が悪用され、管理者権限が取られたと同社は認識している。近時報告された PHP の脆弱性ではないとしている。
- なぜ保存していないのに漏れたか
- セキュリティコードは、カード業界の基準(PCI SSC の FAQ)で支払いの承認の後に保存してはならない認証用の情報で、同社も全桁とあわせて保存していなかった。漏えいは、決済ページ上で入力された情報が傍受されたことによると同社は認識している。この型の手口は、一般に「ウェブスキミング」と呼ばれる。
- カード全桁の漏えいの可能性
- 2,800 人。カード決済で注文した 384 人、予約後にカード情報を変えた 185 人、決済を試みて完了しなかった人、カートに入れただけの人を含む。操作の記録が無く、後の 2 つを区別できないため、漏えいは無いと考えられるカートだけの人にも連絡している。このほか、ご注文後にカード情報の変更を試みて完了に至らなかった人も漏えいの可能性があるが、同じく記録が無く特定できないと同社は説明している(第 4 報)。
- カード情報の一部
- カードを登録したことのある利用者の、402,466 枚(重複を除く)の下 4 桁と有効期限。
- 注文情報
- 5,356 人の注文 7,774 件のうち、閲覧された最大 202 件。
時系列
- 15 時過ぎころ、不正アクセスが始まる(22 日 23 時前ころまで)。
- 13 時 55 分、決済ページに不正なプログラムが置かれる。
- 6 時過ぎころ、委託先の連絡で不正アクセスが判明し、7 時にサイトを閉鎖。第 1 報(カード情報は下 4 桁と有効期限のみ)。
- 第 2 報(第 1 報への追記)。
- 18 時 30 分過ぎころ、決済ページのプログラムが判明。
- 第 3 報。カード全桁とセキュリティコードの漏えいの可能性を公表(30 日の第 4 報で注文情報の範囲を訂正)。
事実は同社の公式告知(第 1 報〜第 4 報と Q&A)に拠り、「漏えいした可能性」は同社の表現のままである。公表されていないことは、対策が無かったことを意味しない。11 月 2 日時点で、第 5 報は出ていない。
公表後の対応
- 改修: 原因と思われる脆弱性を改修し、システム間の接続情報を一式無効化して更新した。サイトの再開時期は未定。
- 連絡と報告: 対象者にメールで個別に連絡し、個人情報保護委員会に報告した。カードの再発行の手数料を利用者に負担させないよう、カード会社に申し入れている。
Sources
- 一次・当事者の公表グッドスマイルカンパニー「不正アクセスによるお客様情報流出の可能性について(第4報)」
- 一次・当事者の公表グッドスマイルカンパニー「不正アクセスによるお客様情報流出の可能性について【2026年10月26日追記】」(第 1 報 2026-10-23、第 2 報 10-26)
- 一次・Q&Aグッドスマイルカンパニー「グループB:クレジットカード全情報が漏えいした可能性のあるお客様」
- 一次・Q&Aグッドスマイルカンパニー「不正アクセス・情報漏えいに関するよくあるご質問(全対象共通)」
- 一次・基準の策定団体PCI Security Standards Council “Coffee with the Council Podcast: Guidance for PCI DSS E-commerce Requirements Effective After 31 March 2025”
- 一次・基準の策定団体PCI Security Standards Council FAQ 1533「PCI DSS で、環境に PAN が無くても、認証後の機微認証データ(SAD)の保存が認められないのはなぜか」
- 一次・当事者の公表、英語版グッドスマイルカンパニー “Notice of Possible Exposure of Customer Information Due to Unauthorized Access (Fourth Update)“