SSTエンジニアブログ

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

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

こんにちは!ようやく一人前の脆弱性診断士になりつつある西尾です。

今回はタイトルの通り、2020年に公表されたWebスキミング被害を振り返ってみたいと思います。
Webスキミングとは、ECサイト(ネットショップ)の決済画面等を改ざんして不正なコードを仕込み、ユーザが入力したクレジットカード情報を窃取する攻撃です。
オンラインスキミング、デジタルスキミング、Eスキミングなどとも呼ばれています。

Webスキミングの概要を知りたい方は以下の記事をご参照ください。

techblog.securesky-tech.com


2020年に被害を公表した国内ECサイト

ここから本題ですが、私が独自に調査をしたところ、2020年12月16日までにクレジットカード情報の漏えい被害を公表し、その原因がWebスキミングによるものと思われる国内ECサイトは46サイトありました。

これらの被害サイトが発表しているリリースには「カード入力フォーム」や「ペイメントモジュール」が改ざんされたと記述されていたり、クレジットカードのセキュリティコード(CVV/CVC)も流出していることから、Webスキミング被害に遭ったと推測しています。

また、この46サイトは氷山の一角で、現時点で被害を公表していないサイトや私が観測しきれていないサイトは多く存在していると思われます。

f:id:swime:20201221135836p:plain:w500
2020年のWebスキミング被害の状況

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

サイトD, Hは漏えい期間が2つありますが、これはWeb改ざんを2度受けたためです。
1度目の改ざん(スキミング)が発覚した後にクレジットカード決済を停止していましたが、その後の原因調査中に再度攻撃を受けていました。
偽の決済画面を作成して誘導し、その画面上でクレジットカード情報を入力させれば窃取可能なため、クレジットカード決済を停止しただけではWebスキミングを防ぐことはできません。

サイトA, K, Rは個人情報も漏えいしていますが、これはWebスキミングとは別の攻撃によるもので、データベースから不正に取得された可能性があるとのことです。

また、サイトX~ACは同じ会社が運営していたため公表日が同じで、漏えい期間もほぼ同じです。
サイトAK~ANも同じ会社(サイトX~ACを運営している会社とは別)が運営しているECサイトでした。

被害サイトを分析してみる

ここからは、先ほどの46サイトの被害状況を簡単に分析してみます。

まずは漏えい(改ざん)期間に着目します。
漏えい期間を月数に換算してヒストグラムで表すと以下のようになりました。

f:id:swime:20201221185408p:plain
漏えい期間のヒストグラム

上図より、漏えい期間は1ヶ月以内が最も多く、3ヶ月以内に収まっているサイトも多いことが分かります。
しかしながら、10ヶ月~1年以上も漏えいし続けているサイトも多いことが分かります。

漏えい期間を日数換算して計算すると、平均は196日で、中央値は176日になりました。
このことから、約半数のサイトは漏えいに気づくまで半年以上かかっていることが分かります。

また、クレジットカード情報の漏えい(Web改ざん)に気づいたきっかけを調べてみると、大半のサイトはクレジットカード会社や顧客からの連絡を受けて発覚しており、自社調査で気づいたサイトは3つしかありませんでした。

f:id:swime:20201223172234p:plain:w500
カード情報の漏えいに気づいたきっかけ

これらの結果をまとめると、多くのサイトはクレジットカード情報が漏えいして悪用されたことで攻撃に気づいています。
つまり、1ヶ月以内に漏えいが発覚していたとしても、それは漏えいしたクレジットカードが"たまたま"1ヶ月以内に悪用されただけである可能性が高いです。
逆に漏えいしたクレジットカードが悪用されないままだと、長期間漏えいし続けることになり、結果的に大量のクレジットカードを漏えいすることに繋がります。


次に、漏えい期間と漏えい件数の関係を見てみます。
散布図で表すと以下のようになりました。なお、グラフを見やすくするため極端な値をとっているサイトAF, AO, ARは除外しています。

f:id:swime:20201222125020p:plain:w500
漏えい期間と漏えい件数の関係

直感的には漏えい期間が長いほど漏えい件数も多いだろうと思ったのですが、そう単純でもなさそうです。
漏えい期間も漏えい件数が増加する要因の一つとして考えられますが、より大きな影響を与えているものは「顧客数」だと思われます。

例えばサイトPは漏えい日数が394日、漏えい件数は138件で、1日あたりの漏えい件数は0.35件になります。
それに対してサイトARは漏えい日数が59日、漏えい件数は44,663件で、1日あたりの漏えい件数は757件になります。
つまりサイトARがたった1日Webスキミングを受けただけで、サイトPの5倍以上のクレジットカード情報を漏えいすることになります。

このように顧客数は漏えい件数に大きく影響していると考えられるため、顧客数の多いECサイトはWebスキミングを受けた際のリスクが特に大きいといえます。


次は事後対応について見ていきます。
クレジットカード情報の漏えいが発覚した後の対応を調べてみると、ECサイト自体を閉鎖するケースが最も多く、次にクレジットカード決済のみを停止するケースが多いことが分かりました。

f:id:swime:20201222140246p:plain:w400
漏えい発覚後の対応

「その他」は、サイトリニューアル後に旧サイトで漏えいしていたことが発覚したケースと、ユーザのログインを不可にすることで実質的にECサイトを停止していたケースがありました。

ECサイトを閉鎖するという決断はかなり厳しいものだと思われますが、クレジットカード決済を停止しただけではWebスキミングを防ぐことはできないため、原因を特定・解消するまでは一時的にECサイトを閉鎖することが望ましいと思われます。

ちなみにECサイトを再開する際には、サイトを一から作り直しているところが大半でした。


次に漏えい発覚からリリース発表までの期間を調べると、以下のようになりました。

f:id:swime:20201222141114p:plain:w600
漏えい発覚から被害公表までの期間

上図より、被害公表までに4~6ヶ月かかっていることが多いことが分かります。
漏えいが発覚してからフォレンジック調査を行い、その後クレジットカード会社等との調整を行って公表するまでに、一般的にはこのくらいの時間がかかるのだろうと思われます。
ただし、中には1年以上経って公表するケースも見られました。


最後に、被害サイトで使用されていたCMS(コンテンツマネジメントシステム)を調べてみました。
調査方法は1年前に書いた記事と同様で、被害サイトに実際にアクセスしたり魚拓サイトを利用したりして使用されているCMSを調査しました。

※正常にアクセスした際の通信内容やWebサイトのHTML/JavaScriptソースコードの内容から判断を行っています。

techblog.securesky-tech.com


調査結果は下記のようになりました。

f:id:swime:20201222175630p:plain:w400
被害サイトのCMS割合

去年と同様、2020年も被害サイトの多くはEC-CUBEを利用していたことが分かりました。
また、EC-CUBEを利用していた被害サイトはほぼ全てバージョン2系を使っており、その中でも古いバージョンを使用しているサイトが多い印象です。

多くのサイトがEC-CUBEの古いバージョンを使い続けていたことから、EC-CUBEの古い脆弱性を放置したままだったり、メンテナンスを行っておらず、基本的なセキュリティ対策ができていなかったECサイトがWebスキミングの被害に遭っていると思われます。

もしEC-CUBE 2系を使っている方がいらっしゃいましたら、こちらのサイトを参考にECサイトのセキュリティを今一度見直していただければと思います。

www.ec-cube.net

まとめと対策

今回は2020年のWebスキミング被害を振り返ってみました。
ECサイトでのクレジットカード情報の漏えいについて、昨年から経済産業省などから以下のような注意喚起が行われていましたが、依然として被害が収まる気配はありません。

被害を受けているサイトの傾向は昨年と変わらず、EC-CUBE 2系を利用しているサイトが多いようです。
2系に限らずEC-CUBEを利用している方は、下記のサイトを参考に基本的なセキュリティ対策をしっかりと行いましょう。

また、EC-CUBE以外のCMSを利用しているサイトでも漏えい被害が確認されており、その原因は基本的なセキュリティ対策が不十分だったためと思われます。
この機会にECサイト運営者は自社サイトのセキュリティ対策が十分な状態であるかチェックしてみてはいかがでしょうか。
例えば以下のようなサイトが参考になるかと思います。

Webスキミングを防ぐためには、特に以下のポイントを確認しましょう。

  • 使用ソフトのバージョンが古くないか?(できるだけ最新の状態に)
  • 設定ファイルなど公開すべきではないファイルが公開されていないか?
  • 管理画面のセキュリティ対策は十分か?

顧客数の多いECサイトの場合は、数日間Webスキミングを受けただけで大量のクレジットカード情報を漏えいしてしまうため、上記に加えて以下のような対策も検討すると良いでしょう。

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

以上の内容を参考に、自社ECサイトのセキュリティ対策を見直していただければと思います。
また、ECサイト構築時は安全でも、時間が経つにつれて新しい脆弱性や攻撃手法が見つかって安全ではない状態になっていくため、これらのセキュリティチェックを定期的に行っていきましょう。

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