徹底解説!ECサイトを狙う「Webスキミング」攻撃の動向と正しい対策について

3行でわかる!本記事のサマリ

・Webスキミング攻撃は入力フォームの情報を盗む攻撃のことで、国内でも被害が増加している。
・サプライチェーンアタックはWebサイトが参照するサードパーティにスキマーを設置する攻撃形態。
・対策として、Webサイトのリソースを可視化し、外部リソースへのアクセスを制御する技術が必要。
  

はじめに

2022年4月に公開されたPCI DSS v4.0では「Webスキミング」攻撃に対する要件が新設されました。Webスキミングとは、主にオンラインショッピングなどで入力されるクレジットカード情報を盗み出す攻撃のことであり、現在、国内外を問わず猛威を振るっています。手口は年々高度化し、カード情報非保持化のWebサイトであっても、カード情報を盗まれてしまうなど、今や全てのWebサイトがWebスキミングの脅威にさらされています。
顧客情報を守ることは、Webビジネスを展開するうえで事業者が果たすべき責務です。しかし、具体的にどのようにWebスキミング対策を行えば良いのかという問いに対して、いまだに誤った情報が飛び交っているのが実情です。
そこで本記事では、Webスキミング攻撃や最新動向を誰にでも分かるように説明し、具体的な対策方法についてご紹介します。

国内で猛威を振るうWebスキミング攻撃とは?

Webスキミング攻撃とはどのようなものでしょうか。私たちがオンラインショッピングサイトなどを利用する際には、名前、住所、クレジットカード番号といった個人情報を入力します。Webスキミング攻撃では、Webサイトの中に、フォームに入力した個人情報を盗み取るスクリプトが含まれており、そのスクリプトが実行されると、入力した情報が全て攻撃者のサーバーに送信されてしまいます。サーバーからデータが盗まれるわけではなく、ユーザーのブラウザから攻撃者に直接送信される点が、この攻撃の特徴です。

国内のWebサイトで発生した情報漏えい事件における、3種類の「お詫びとお知らせ」を挙げます。いずれもWebスキミング攻撃によるものだと推測できます。Webスキミング攻撃は一般的に「不正アクセス」として公表されます。言葉の認知度とは裏腹に、国内でもその脅威は猛威を振るっていることが明らかです。

徹底解説!ECサイトを狙う「Webスキミング」攻撃の動向と正しい対策について1.png文中にある「偽の入力フォームを表示し、そのデータを直接第三者へ送信する」というのは、Webスキミング攻撃の典型的な手法の1つです。「クレジットカード決済の非導入」「クレジットカード情報の非保持」は、Webスキミング攻撃に対する防御にはなりません。

2022年4月、カード情報セキュリティの国際的な共通基準であるPCI DSS v4.0に、Webスキミング対策が要件として明記されました。Webスキミング対策は、ユーザー側のエンドポイントセキュリティに頼らず、Webサイト事業者が行うべきです。正しいWebスキミング対策によって顧客情報を守ることは、自社のビジネスを守ることにもつながります。

Webスキミング攻撃の流れと、Webスキミング対策の必要性

Webスキミング攻撃の流れを見ていきましょう。攻撃者は事前に改ざん攻撃や脆弱性攻撃を行い、スキマーと呼ばれる危険なスクリプトをWebサーバーに設置しておきます。この状態でユーザーがアクセスすると、Webサーバーはスキマーを含んだレスポンスを返します。ユーザーがフォームに個人情報を入力して送信すると、スキマーがフォームの内容を収集して攻撃者に直接送信します。

Webスキミング攻撃は、ユーザーから攻撃者にデータが直接送信されるため、Webサイト側での検知が困難です。多くのケースで、クレジットカード会社からの連絡によって被害が発覚します。

Webスキミング攻撃の発展形として、サプライチェーンアタックと言われる攻撃形態があります。基本的なWebスキミング攻撃との違いは、スキマーが、Webサイトそのものではなく、Webサイトが参照するサードパーティに設定される点です。Webページを構成する際に、HTML、画像、スタイルシートといったリソースを外部のサードパーティから参照することは一般的に行われています。ここにスキマーを設置するのがサプライチェーンアタックです。

それ以外の攻撃の流れは同じです。ユーザーがWebサイトにアクセスし、追加リソースとしてサードパーティにアクセスしたときにスキマーが入ってきます。フォームに情報が入力され、スキマーが実行されると、データが送信されます。こちらもユーザーから攻撃者に直接データが流出するため、実態に気づくのが困難です。

徹底解説!ECサイトを狙う「Webスキミング」攻撃の動向と正しい対策について2.png 2021年、国内でもサプライチェーンアタックの被害事例が起きています。タグ型アクセス分析ドメインの第三者取得によるWebスキミング攻撃です。タグ型アクセス分析サービスを利用する際には、アクセス解析用スクリプトをダウンロードするためのスクリプトをLoaderとしてWebページ内に埋め込んでおきます。ユーザーがWebサイトにアクセスすると、Loaderが実行され、アクセス解析用スクリプトがダウンロードされます。

この事例では、アクセス解析サービスが終了し、ドメインが解放されました。本来Webサイト側ではLoaderを消しておかなければいけません。しかし、消されずに放置されている状態で、悪意ある第三者がこのドメインを取得。スキマーが配信されました。Webページ自体は誰にも攻撃されず、改ざんも行われていません。このように、サプライチェーンアタックでは、自社以外の部分から連鎖的に被害を受けます。

WAF(Web Application Firewall)や改ざん検知といったWebアプリケーションの攻撃を保護するサーバーサイドセキュリティでは、Webスキミング攻撃の防御はできません。どのようなWebサイトであってもWebスキミング攻撃を受ける可能性があり、対策が求められます。サプライチェーンアタックであれ、自社のWebサイトへの攻撃であれ、スキマーがどこから侵入しても防げるようなアプローチが重要です。

Webスキミングからサイトを守るために。正しいWebスキミング対策の考え方

では、具体的にどのようなアプローチを行えば良いのでしょうか。Webスキミング対策の考え方として、攻撃の流れは2段階に分けられます。前準備としてスキマーを設置する段階と、スキマーによってデータを収集する段階です。各段階で対策を考えることができますが、重要なのは「Webスキミングを成功させない」ということです。つまり、スキマーを実行させない、データを外部送信させないための防御が必要です。

詳しく説明していきましょう。対策はまず「①Webサイトのあるべき姿の把握」から始めます。自社のWebサイトを可視化する仕組みを使って、使用しているリソースを洗い出し、外部のスクリプトや画像を使っている場合はその必要性を明確化します。続いて、それを承認する仕組みを設けます。これは技術的観点というよりも開発規則の観点になります。こうして、Webサイトのあるべき姿、サイトで使用する部品表のようなものが確立できます。

次に「②クライアントにWebサイトのあるべき姿を通知して、逸脱するリソースやネットワークへのアクセスを制御」します。つまり、自社のWebサイトでどのようなスクリプトや画像を使用するか、それ以外のリソースへのアクセスを禁じる旨をブラウザに教えるわけです。これにより、不審なスクリプトの実行やデータの外部送信を防ぐことが可能になります。PCI DSS v4.0の要件としても、こうした「可視化する仕組み」「承認する仕組み」「制御する仕組み」の3つを実装することが求められています。

徹底解説!ECサイトを狙う「Webスキミング」攻撃の動向と正しい対策について3.png具体的にどのような技術を利用すれば良いのでしょうか。ブラウザの挙動を制御するためには2つの方法が考えられます。1つは、Webの標準技術としてブラウザに搭載されているCSP,SRI、Nonceなどを活用する方法です。もう1つは、スキマーなどを含めてJava Scriptの挙動を監視するためのエージェントをWebページに埋め込んで監視する方法です。

それぞれの技術がどのように動作するかを紹介しましょう。Web標準技術として、CSPを例に挙げます。ユーザーがWebサイトにアクセスしたときにサーバーから返すレスポンスの中に、Content-Security-Policyによるリソースアクセス許可を明示しておきます。ブラウザはそれに従って、許可されているリソースにのみアクセスを行います。これにより、承認されていないサイトからスキマーをダウンロードすることや、個人情報を攻撃者のWebサイトに送信することを阻止できます。

続いて、JavaScript Agentを使う場合です。スキマーは、個人情報を外部送信するためにXMLHTTPRequestといったJavaScriptのWeb APIを利用します。そこで、検証機能を持たせた拡張型のXMLHTTPRequestを作成し、元のXMLHTTORequestと置き換えします。スキマーがデータを送ろうとすると、拡張型XMLHTTPRequestの検証機能が実行されるため、データの外部送信を阻止できます。

Web標準技術にせよ、JavaScript Agent技術にせよ、正しい設定を行わないと意味がありません。どちらのアプローチでも、攻撃者の回避行動や回避攻撃が観測されています。例えば、JavaScript Agentベースの場合、スキマーが先に読み込まれてXMLHTTPRequestのコピーが作られると、拡張型XMLHTTPRequestの検証を回避することができるため、データの外部送信が技術的に可能になります。
これを防ぐためには、JavaScript Agentによる拡張型XMLHTTPRequestの置き換えが完了する前に、他のいかなるリソースもロードしないようにするということです。ところが実際には、そのルールを無視して、先に別のリソースを読み込ませている失敗例が見受けられます。

次に、Webサイトのあるべき姿を把握するための代表的な技術として、「クローリング型」「テレメトリ型」の2つを紹介します。クローリング型は、外部のクローリングサービスを使ってWebサーバーやWebサイトにアクセスし、使用しているリソースを全てチェックする方法です。実際にファイルを読み込んで分析するため、インテリジェンスを使った詳細分析と併せて行われることもあります。自動的に可視化できるメリットがある一方、ログイン、二要素認証、CAPTCHA認証などを導入している場合の対応、公開前ページへの対応などには注意が必要です。

テレメトリ型は、CSPやJavaScript Agent のレポート機能を利用し、実際のアクセスをもとにWebサイトの構造を把握する方法です。人のアクセスがベースになるため、ログイン、二要素認証、CAPTCHA認証、公開前ページなどへの対応が容易です。一方、初期導入時は全ページに手動でアクセスする必要があり、手間がかかります。

クローリング型とテレメトリ型を比較すると、メリット・デメリットが対照的になっています。自社のWebサイトの特性を意識して、運用可能なソリューションを選択することが必要です。

まとめ

ここまで、Webスキミング攻撃の概要、対策の必要性、ポイントなどを紹介しました。正しいWebスキミング対策を行うためには、Webスキミング攻撃そのものや対策手法に関する知見が必要になります。それが欠如していたために、無駄な工数が発生したという事例も多く耳にします。マクニカでは、Webスキミング対策をはじめ、さまざまなWebセキュリティソリューションで、お客様のWebビジネスを支援しています。ご興味やご相談事項をお持ちの方は、お気軽にお問い合わせください。

徹底解説!ECサイトを狙う「Webスキミング」攻撃の動向と正しい対策について4.png

以下よりWebセキュリティ関連資料をダウンロード頂けます。
ホワイトペーパーのダウンロードはこちら2.JPG

メルマガ登録バナー(セキュリティ).jpg

ランキング