令和6年度 秋期 情報処理安全確保支援士試験 午後 問3 WebスキミングによるECサイト情報漏えい

テクノロジセキュリティ技術

この問題は2024(R6)秋 情報処理安全確保支援士 午後に出題されたものです。出題時点の法令・制度に基づく内容のため、現行の内容と一致しない場合があります。

本ページの問題文・選択肢は、原本の体裁を Web 表示用に正規化しています(改行・記号・数式・図表参照の調整)。設問の趣旨および正解に影響する変更は加えていません。

学習ガイド

ECサイトのWebスキミングによるクレジットカード情報漏えいを扱った、コード読解中心の実践的な問題です。改ざんされたHTMLと攻撃スクリプトの動きを追い、偽の入力フォームがどう表示され、入力情報がどこへ送られたのかを特定します。HTMLとECMAScriptの仕様知識が前提になるため、この記事ではスクリプトの処理内容を段階的に言語化し、被害利用者をログから特定する調査の考え方まで解説します。

この記事で押さえる論点

  • HTMLソースとアクセスログから改ざんの手口を特定する
  • 偽フォームによるクレジットカード情報窃取の流れをスクリプトから読み解く
  • 影響を受けた利用者の範囲をログから絞り込む調査手順を理解する

問題本文

問3 クレジットカード情報の漏えいに関する次の記述を読んで,設問に答えよ。

J社は,インテリアを扱うECサイト(以下,J社のECサイトをJ社ECサイトという)を運営する,従業員200名の会社である。

〔J社ECサイトの構成〕

J社ECサイトは,Webアプリケーションプログラム(以下,J社ECサイトのWebアプリケーションプログラムをWebアプリPという),Webサーバ及びDBサーバで構成されている。J社はWebアプリPの開発及び保守,並びにWebサーバ及びDBサーバの構築,管理及び保守をV社に委託している。WebアプリPのアプリケーションログには,アクセス日時,画面名,アカウント名,アクセス元IPアドレスなどが記録される。

J社ECサイトでの支払方法は,クレジットカード決済及び銀行振込に対応している。クレジットカード決済はD社の決済代行サービスを利用している。D社の提供する決済用ECMAScriptプログラムを使用したトークン型決済を用いて,クレジットカード情報の非保持化を実現している。商品購入に関する画面の概要を表1に,画面遷移を図1に示す。

表1 商品購入に関する画面の概要(抜粋)
図の説明テキスト
画面名 説明
ショッピングカート 購入対象としてショッピングカートに登録された商品を表示する。ショッピングカートに登録した商品を購入する場合は,“購入”ボタンを押す。配送先・支払方法選択画面に遷移する。
配送先・支払方法選択 配送先住所 1)と支払方法を選択する。配送先住所を選択し,クレジットカード決済と銀行振込のいずれかの支払方法を選択して,“次へ”ボタンを押す。支払手続画面に遷移する。
支払手続 支払方法に応じて,表示される内容及び入力する内容が異なる。クレジットカード決済の場合は,クレジットカード情報の入力フォームが表示される。D社の提供する決済用ECMAScriptプログラムによって,決済が行われる。銀行振込の場合は,振込先の口座情報が表示される。
注文完了 ショッピングカート→配送先・支払方法選択→支払手続が完了した場合に表示される。この後に注文確認の電子メール 2)が商品を購入した利用者に送信される。

注1) 利用者情報としてあらかじめ配送先住所を登録しておく。配送先住所は複数登録できる。登録済みの配送先住所はプルダウンで選択できる。
注2) 利用者情報としてあらかじめ電子メールアドレスを登録しておく。

図1 商品購入に関する画面遷移
図の説明テキスト

4つの画面(/cart, /shopping, /payment, /confirm)とそれらの間の画面遷移を示す状態遷移図。

  • /cart画面 (ショッピングカート)

    • 内容: 「ご注文一覧」として商品名、単価、数量の表と合計金額(小計、配送料、合計)が表示されている。
    • ボタン: 「戻る」「購入」
    • 遷移: 「購入」ボタンから「/shopping」画面へ矢印が引かれている。
  • /shopping画面 (配送先・支払方法選択)

    • 内容: 「配送先」のプルダウン、「お支払方法」のラジオボタン(クレジットカード決済、銀行振込)がある。
    • ボタン: 「戻る」「次へ」
    • 遷移: 「次へ」ボタンから「/payment」画面へ矢印が引かれている。
  • /payment画面 (支払手続)

    • 内容: ご利用金額(52,500円)、「クレジットカード情報の入力」としてカード番号、有効期限(月/年)、名義、セキュリティコードのテキスト入力欄がある。
    • ボタン: 「戻る」「注文」
    • 遷移: 「注文」ボタンから「/confirm」画面へ矢印が引かれている。
  • /confirm画面 (注文完了)

    • 内容: 「ご注文ありがとうございました。ご注文確認の電子メールをお送りしたのでご確認ください。」というメッセージが表示されている。
    • ボタン: 「トップへ」

注記1: /cartなどはURLのパス名を示す。
注記2: /cart以外へのアクセスはJ社ECサイトへのログインが必要である。
注記3: /cart以外は直接アクセスするとトップページにリダイレクトされる。

〔利用者からの問合せ〕

6月11日から12日にかけて,複数の利用者から,クレジットカード情報を入力する画面が2回表示されるという問合せ,及び支払方法が勝手にクレジットカード決済になってしまうという問合せがあった。J社ECサイト担当者のGさんは,偽のクレジットカード情報入力フォーム(以下,偽フォームという)が表示された可能性があると考え,上司のRさんに報告した上で,Webサーバの6月11日のアクセスログに不審な点がないかどうかを確認した。Webサーバの6月11日のアクセスログのうち,不審と思われるアクセスを抽出したものを表2に示す。

表2 Web サーバのアクセスログ
図の説明テキスト
行番号 メソッド リクエスト URI ステータスコード
1 GET /products/list?page=4&category_id=1 200
2 GET /login?id=hoge&pw=' UNION select 1 FROM… 200
3 POST /mypage/userinfo 200
4 POST /mypage/change 200
5 GET /cart?add=">