SSTエンジニアブログ

SSTのエンジニアによるWebセキュリティの技術を中心としたエンジニアブログです。

2021年のWebスキミング被害を振り返ってみる

どうも!脆弱性診断士の西尾です!

2020年に引き続き、2021年もWebスキミングの国内の被害状況について振り返っていきたいと思います。
本当は1月に書きたかったのですが、本業が忙しく気づけば4月になってしまいました…
ちなみに前回の記事はこちら↓

techblog.securesky-tech.com

はじめに

Webスキミングとは、ECサイト(ネットショップ)の決済画面等を改ざんして不正なスクリプトを設置し、サイト利用者がフォームに入力したクレジットカード情報を秘密裏に窃取する攻撃です。オンラインスキミングとも呼ばれています。
詳しくは下記をご参照ください。少し古い記事ですが、攻撃手法は現在も大きくは変わっていないと思います。

techblog.securesky-tech.com

今回の調査では、2021年にクレジットカード情報の漏えいを発表したECサイトの中でも、その原因がWebスキミングと思われるサイトについてのみ調べました。
たとえば、各被害サイトが発表しているリリース内容に「ペイメントモジュールが改ざんされた」、「偽の決済画面が埋め込まれた」などと記載されていたり、クレジットカード情報を保持していなかったにも関わらず漏えいしたサイト、またはセキュリティコードまで漏えいしているサイトが調査対象です。
逆にSQLインジェクション等でデータベースから漏えいしたケースは今回の調査対象外です。

調査方法については、各被害サイトが発表しているリリース内容の確認に加え、魚拓サイトを利用して攻撃を受けた時点のHTML/JavaScriptソースコードを確認し、当時使用していたソフトとそのバージョン情報を簡単に調べています。
あくまでも正常にアクセスした際の通信内容を確認しているだけで、実際に攻撃を行うようなリクエストは送信していません。

2021年にWebスキミング被害に遭った国内ECサイト

私が独自に調査をしたところ、2021年にクレジットカード情報の漏えい被害を公表し、その原因がWebスキミングと思われる国内ECサイトは70サイトありました。2020年は48サイト*1だったため、かなり増えている印象です。
なお、私が観測しきれていないサイトや現時点で被害を公表していないサイトも存在していると思われるので、実際の被害サイト数はもっと多くなると思われます。

2021年のWebスキミング被害一覧

Webスキミングによるクレジットカード情報の漏えい件数は179,040件でした。
2020年の漏えい件数は87,658件*2だったため、前年と比較すると2倍も漏えい件数が増加していることが分かります。
また、最近はユーザの認証情報や個人情報も漏えいするケースが増えている印象で、2021年はそのようなケースが18サイト確認されました。

上表の「漏えい期間」は改ざん期間とも考えることができ、この期間中に決済画面で入力したクレジットカード情報が漏えいしています。

上表のうち、背景がオレンジになっているサイトBE, BG, BH, BM, BN, BOは「オムニECシステム」に対する不正アクセスが原因で漏えい被害が発生したECサイトです。そのため、これらのサイトは同じような漏えい期間になっています。
オムニECシステムのインシデントについてはこちらの記事が参考になるかと思います。

piyolog.hatenadiary.jp


また、漏えい被害の公表数を月別に集計すると以下のようになりました。

月別の漏えい被害の公表数

毎月2サイト以上が漏えい被害を公表しており、一番多かった11月は10サイトが公表していました。
ちなみに2022年も漏えい被害の公表は継続しており、まだまだWebスキミングの脅威は収まりそうにありません。

被害サイトの分析と考察

ここからは被害サイトの特徴や傾向を分析していきます。

漏えい件数について

まず、サイト毎の漏えい件数をヒストグラムで表してみると以下のようになりました。

漏えい件数の分布(全体)

平均:2558件、中央値:1290件、最小値:23件、最大値:25,484件

上図を見ると、漏えい件数は5000件以下が多く、その中でも1000件以下のサイトが圧倒的に多いことが分かります。割合で表すと、1000件以下のサイトは全体の約46%を占めていました。
これはおそらく、被害サイトの多くは中小規模のECサイトと思われるため、漏えい件数が比較的少なく済んでいることが多いのだろうと考えられます。
しかし、漏えい件数が8000件以上のサイトなど、利用者数が多い大規模なECサイトで被害が発生してしまうと、一度の攻撃で大量のクレジットカード情報を漏えいしてしまう可能性があります。

ちなみに漏えい件数が1000件以下のサイトに絞ると以下のようになりました。

漏えい件数の分布(1000件以下)

漏えい件数が1000件以下の中では、400件以下のサイトが約69%を占めていました。
小規模なECサイトがWebスキミング被害に遭うと、大体このくらいのクレジットカード情報が漏えいするみたいです。ただし、小規模なECサイトでも漏えい期間が長くなれば漏えい件数はもっと多くなると考えられます。

漏えい期間について

次に、漏えい期間について見ていきます。
漏えい期間の分布をヒストグラムで表すと以下のようになりました。

漏えい期間の分布

平均:245日、中央値:278日、最小値:2日、最大値:939日

この図を見ると、漏えい期間が半年以内に収まっているグループと、約1年以上かかっているグループに分かれていることが確認できます。
この二つのグループ別に、クレジットカード情報の漏えい(Web改ざん)に気づいたきっかけについて調べると、以下のような結果になりました。

漏えいに気づいたきっかけ(漏えい期間180日以下)
漏えいに気づいたきっかけ(漏えい期間240日以上)

「カード会社からの連絡」で気づいたケースは、クレジットカード情報が漏えいし、実際にそのカードが悪用された段階で攻撃が発覚しています。
それに対して「保守・管理会社からの連絡」、「顧客からの連絡」、「自社調査」で気づいたケースは、クレジットカード情報は漏えいしてしまったが、実際にカードが悪用される前の段階で発覚したものと思われます。
つまり、実際にカードの悪用が行われる前に漏えいに気づけた事業者が、漏えい期間180日以下のグループでは約半数存在していましたが、漏えい期間240日以上のグループではほとんど存在していないことが分かります。
当然といえば当然ですが、日ごろから定期的にWebサイトの点検を行っておけば、万が一Web改ざんが行われたとしても被害が拡大する前に対処することができ、漏えい件数を少なく抑えることが可能となります。
逆に言うと、定期的にWebサイトの点検が行われていない場合、漏えいしたクレジットカード情報が実際に悪用されるまで攻撃に気づけないため、長期間漏えいし続けることになり、大きな被害に発展する可能性があります。

ちなみに、この二つのグループ別に漏えい件数の分布を調べてみると、以下のような結果になりました。

漏えい件数の分布(漏えい期間180日以下)

漏えい件数の分布(漏えい期間240日以上)

漏えい件数が6000件以上のサイトについて、漏えい期間が180日以下のサイトは1サイトのみでしたが、漏えい期間が240日以上のサイトは6サイトも存在していました。特に1万件以上も漏えいしたサイトは、いずれも漏えい期間が1年以上ありました。
このように、長期間漏えいし続けた場合、大量のクレジットカード情報を流出してしまう可能性があります。

発覚から公表までの期間について

次に、攻撃発覚から公式リリースの発表までの期間を見ていきます。
調査結果は以下のようになりました。

攻撃発覚から公表までの期間

こちらは前回の調査時とあまり大きな違いはなく、公表までに3~7ヶ月かかっているサイトが多いようです。ちなみに平均は約158日、中央値は約148日でした。
攻撃発覚後に原因や被害範囲特定のための調査を行い、そのあとクレジットカード会社等と調整を行って公表する流れが多いため、大体このくらいの期間を要するみたいです。
しかし、中には1年以上経過して公表しているケースもありました。このケースでは調査自体は2か月弱で完了していましたが、そこから公表するまでの準備にかなりの時間を要したようです。

事後対応について

次に、事後対応について見ていきます。
攻撃発覚直後の対応を調べてみると、以下のような結果になりました。

攻撃発覚直後の対応

こちらも前回の調査時とあまり大きな変化はなく、ほとんどのサイトが何らかの制限をかけており、一時的にECサイトを閉鎖したケースが最も多い結果になりました。
クレジットカード決済やカートシステムだけを停止するケースも40%ありましたが、改ざんの原因を特定・解消していない状態で決済機能だけを停止しても安全にはなりません。攻撃者はさらなる改ざんを行い、偽の決済画面等を作成してそこに誘導する可能性があるため、被害がさらに拡大する恐れがあります。
そのため、せめて原因を解消するまでは一時的にECサイトを閉鎖することが望ましいと私は考えます。

また、改修後にECサイトを再開する際は、サイトを一から作り直しているケースが多い印象です。
Webスキミング被害に遭ってしまうと、サイト閉鎖中の機会損失だけではなくこのような再構築コストなども必要になってきます。

CMSについて

最後に、被害サイトで使用されていたCMS(コンテンツマネジメントシステム)について見ていきます。
CMSの種類について調べると以下のような結果になりました。

被害サイトが使用していたCMSの種類

前回に引き続き、EC-CUBEの割合が最も高く8割の被害サイトで使用されていました。SiTEMANAGEは前回の調査時も見つかっていましたが、futureshopは今回初めて発見されました。
EC-CUBE使用サイトについて、バージョン情報まで調べると以下のような結果になりました。

EC-CUBEのバージョン割合

古いバージョンである2系が最も多いのは例年通りなのですが、今回は3系の割合が意外と高く、4系のサイトも確認されました。
2系を使用していたサイトについては、長年アップデートをせずにEC-CUBEの古い脆弱性を放置したままだったり、管理画面のアクセス制御など基本的なセキュリティ対策が行われていなかったりしたことが大きな要因だと推測されます。
しかし、3系4系を使用していたサイトについては、昨年EC-CUBEで見つかったXSS(クロスサイトスクリプティング)の脆弱性が悪用された可能性が高いと思われます。
EC-CUBEのXSSについては下記のサイトをご参照ください。

blogs.jpcert.or.jp

www.ec-cube.net

簡単にまとめると、攻撃者が氏名や住所に攻撃コードを仕込んだ状態で注文処理を行い、ECサイトの管理者がその注文情報を閲覧すると攻撃コードが実行され、最終的にクレジットカード情報等を窃取する不正なスクリプトが設置されてしまいます。
このような攻撃は「Water Pamola」とも呼ばれており、EC-CUBE以外のCMSに対しても攻撃が行われているようです。

このように、最新バージョンのCMSを利用していても脆弱性が新しく見つかり、すぐに悪用される可能性があります。
ECサイト管理者は、CMSのバージョンを最新の状態に保つことはもちろんですが、日ごろから使用製品の脆弱性情報を収集し、新しく脆弱性が報告された際にはできるだけ迅速に修正パッチを適用するなどの対応が必要になってきます。
ただし、ゼロデイ脆弱性*3の場合は修正パッチが公開される前に攻撃が行われてしまうため対策は困難です。(WAFや改ざん検知システム等で防げる可能性はありますが)


話を戻して、EC-CUBEの次に被害サイトで多く使われていたCMSはfutureshopでした。
futureshopについては2021年4月に管理者アカウントの漏えいによるWeb改ざん被害が発生したとの発表がありました。
このことから、futureshopを使用していた被害サイトについては、管理画面に不正ログインされたことが原因でWebスキミングが行われた可能性が高いと考えられます。

www.future-shop.jp

管理画面への不正ログインを試みる攻撃は、ECサイトに限らず多くのWebサイトに対して日常的に行われています。
管理画面に不正ログインされてしまうとWebスキミングによるクレジットカード情報の漏えいだけではなく、顧客の個人情報の漏えいなど様々な被害が発生する可能性があります。
そのため多要素認証やIP制限を設定するなど、管理画面の不正ログイン対策は強固にしておく必要があります。推測されやすいパスワードを使わないことやパスワードの使い回しをしないことは言わずもがなです。

この事件を受け、futureshopは管理画面の二段階認証を必須化し、Webスキミング防止機能も実装したそうです。

www.future-shop.jp

www.future-shop.jp

調査のまとめ

国内のWebスキミング被害は現在も増加し続けており、2021年は少なくとも70サイトが被害に遭っていました。
クレジットカード情報の総漏えい件数は179,040件で、2020年の調査時と比較すると2倍も増加しています。
被害サイトを分析してみると、漏えい件数が1000件以下のサイトが全体の約46%を占めていました。
このことから、被害サイトの多くは中小規模のECサイトであると考えられます。

クレジットカード情報の漏えいに気づいたきっかけを調べてみると、漏えいしたクレジットカード情報が実際に悪用された後にクレジットカード会社等から連絡を受け発覚したケースが最も多い結果になりました。
また、CMSはEC-CUBE 2系の使用率が高いことから、被害サイトの多くは古いバージョンのCMSを長年使い続けていたと考えられます。
以上のことから、Webスキミング被害に遭ったサイトの多くは、普段からECサイトの点検や使用ソフトのバージョンアップなどの保守管理が十分に行われていなかったと考えられます。

中小規模のECサイト事業者の場合、セキュリティの知識を有している人材がおらず保守管理を外部委託先に丸投げしていることが多い*4ため、十分なセキュリティ対策を実施しておらず、Webスキミング被害に遭いやすいと考えられます。

Webスキミングの対策

もしクレジットカード情報の漏えい被害が起きてしまうと、基本的には一時的にECサイトを閉鎖する必要があるため、その間の機会損失が発生してしまいます。また、原因や被害範囲特定のための調査費用、クレジットカードの不正利用の補填、クレジットカードの再発行費用、ECサイトの再構築費用なども必要になるため大きな損害を受けてしまいます。

Webスキミング被害を未然に防ぐためにもECサイト事業者は以下のようなセキュリティ対策を実施しましょう。
Webスキミング対策の考え方として、このような基本的な対策を積み重ねていくことが最も重要です。

【基本的な対策】

  • CMSやプラグインのバージョンを最新の状態に保つ
  • 使用製品の脆弱性情報を積極的に収集し、セキュリティパッチが公開されたら早めに適用する
  • 適切なアクセス制御を行い、特に設定ファイルやログファイルなどが公開されていないか見直す

CMSの管理画面については以下のような対策を実施しましょう。

【管理画面の対策】

  • ID・パスワードは推測されにくい値を設定し、使い回さない
  • IP制限やアカウントロック機能、または多要素認証等を設定する
  • 管理画面のログインURLをデフォルト値から変更する

また、EC-CUBEやfutureshopを利用している場合は以下のサイトもチェックしておきましょう。

www.ec-cube.net

www.future-shop.jp

以上が基本的な対策です。これらの対策の見直しも定期的に行っていきましょう。
基本的な対策を実施した上で、さらにセキュリティを強化したい場合は以下のような+αの対策を検討すると良いでしょう。

【+αの対策】

  • 改ざん検知システムの導入
  • WAF(Webアプリケーションファイアウォール)の導入
  • 脆弱性診断の実施

また、ECサイトの保守・運用をやっていく自信がないのであれば、ECサイトの構築を自社開発や外部委託せずにクラウド型やモール型に移行するのも一つの手です。ただし、その場合もセキュリティ対策を全くしなくていいわけではなく、セキュリティ意識を高く持ち、自身でできる範囲の対策は積極的に行っていきましょう。

繰り返しになりますが、Webスキミング対策はこのような基本的な対策を積み重ねていくことが最も重要です。
攻撃者はセキュリティ対策がボロボロのサイトから狙っていくと考えられるため、基本的な対策を実施するだけでもWebスキミング被害に遭う可能性はぐっと下がると思います。
国内のWebスキミング被害は現在も増加傾向にあるため、このタイミングで、ECサイト事業者は自社サイトのセキュリティ対策を今一度見直していただければと思います。

本記事がECサイトのセキュリティ意識の向上に少しでも寄与できれば幸いです。

*1:前回の記事を執筆した時点では46サイトでしたが、その後2サイトが新たに被害を発表していました。

*2:前回の記事では86,737件と記載していますが、新たに発表された2サイトの漏えい件数を足すと87,658件になりました。

*3:脆弱性の存在や修正パッチが公開される前に発見された脆弱性のこと

*4:個人情報保護委員会のECサイトへの不正アクセスに関する実態調査を参考