株式会社マクニカのセキュリティ研究センターは2月21日、ペイメントアプリケーションの改ざん(Webスキミング)に関する概説と対策手法について、同センターブログで発表した。掛谷 勇治氏が執筆している。
Webスキミングは、Webサイトが保有するデータベースの侵害等による情報漏えいではなく、Webサイトに不正なJavaScript(スキマー)が設置されることで引き起こされる情報漏えいで、下記の性質を持っている。
・クレジットカード番号だけではなく有効期限やセキュリティコードまで漏えい対象となる
・クレジットカード情報の非保持化を実施しているECサイトであっても漏えいする
・クレジットカード決済を取り扱っていないECサイトであっても漏えいする
(偽のクレジットカード入力フォームを表示させ、ユーザに入力を促すことができるため)
・「クレジットカード決済を実行」したタイミングではなく、ユーザが「クレジットカード情報を入力」したタイミングで漏えいする
(「クレジットカード情報は入力したが購入しなかった」ケースにおいても漏えいする)
同記事によると、Webスキミングの大まかな流れは下記の通り。
1.攻撃者が、スキマーと呼ばれる不正なJavaScriptを攻撃対象Webサイトに設置
2.ユーザはWebサイトへアクセスし、WebサーバはWebページとスキマーを返す
3.ユーザは自身の個人情報をフォームへ入力します
4.スキマーはフォームに入力された個人情報を窃取し、攻撃者のサーバへ送信
同ブログで例として取り上げたスキマーは、被害サイトがもともと使用していたJavaScriptファイルの中に改ざん設置され、攻撃に必要なメソッド名やプロパティ名をコードに直接的に記述するのではなく、何かしらの方法で難読化した上で配列やオブジェクトに格納し、必要になったら難読化を解いて取り出すといった手法が用いられていた。
Webスキミング攻撃への対策としては、「スキマーをユーザにダウンロードさせない(あるいは実行させない)」「スキマーが実行されたとしても、個人情報をユーザから攻撃者へ送信させない」が重要であり、「脆弱性管理を徹底する」「WAFや改ざん検知の仕組みを導入する」等を実施し、「スキマーを設置させない」ことも大切であるとしている。
同ブログではWebスキミング攻撃への対策を実現させる最も代表的な技術として、Webサイトからブラウザに対し「このWebページを表示させるために、どのリソースに対してアクセスをしてもよいか」を通知し、ブラウザにそれを強制させる技術である「Content Security Policy(CSP)」を取り上げ、例として取り上げたスキマーに対し、CSPを導入していた場合はどうなっていたかを解説している。