はじめに
サイバー攻撃には様々な手法があります。
セキュリティ対策を講じるには、それらの手法を知ることが重要です。
「サイバー攻撃手法」シリーズとして、私が学んだサイバー攻撃手法を随時アウトプットします。
クレジットマスタ攻撃とは
クレジットカード番号(以下、クレカ番号)の規則性から適当なクレカ番号を採番し、決済システム等にクレジットカードの有効性を確認する攻撃手法です。
手法例
クレカ番号に規則性があることをご存じですか?( 私は知りませんでした)
例えばVISAは全体で16桁の番号がありますが、それぞれに以下のような意味があります。
- 発行者識別番号(1桁~6桁目):カード会社を識別する番号。特に1桁目は「主要産業識別子」と呼ばれ、VISAなら「4」となる。
- 会員口座番号(7桁~15桁目):個人を識別する番号
- チェックディジット(16桁目):クレカ番号が正しい数字かを判定するための番号
この規則に従って適当な数字を並べると、それっぽい番号が出来上がります。その番号を決済システム等に入力し、決済に進むことが出来れば、そのクレカ番号は実在するとわかるわけです。
クレカ番号とあわせて入力するセキュリティコードや有効期限はパターン数が限られるので、スクリプト等でちょちょいと作ってしまえば決済試行する情報は揃ってしまいます。
想定されるリスク
クレジットカード情報一式が漏洩したようなものなので、不正に買い物されます。
対策
-
レート制限
クレカ番号に規則性があるとはいえ、実在するクレカ番号を探し当てるには、クレカ番号・セキュリティコード・有効期限等の組み合わせを変え、何度も決済を試行する必要があります。
一定時間内に多数の決済試行があった場合に、一定時間決済を拒否する仕組みを導入することで、攻撃の成立を遅らせることができます。(あくまで遅らせるだけであり、時間をかければ攻撃は成立する点に注意) -
同一IPからの大量試行をブロック
多数の決済試行が同一IPアドレスから行われている場合、そのIPアドレスをブロックすることで決済試行を拒否します。
ただし、通常、決済試行はECサイト等からカード会社の決済システム宛にアクセスが発生するため、そのECサイトを使っている正規のユーザも決済がブロックされてしまう点に注意が必要です。 -
3Dセキュアの導入
本人認証サービスである3Dセキュアを導入することで、仮にクレカ番号の有効性が確認されてしまったとしても、本人認証を突破しない限り決済は成立しなくなります。
おわりに
対策を見てわかる通り、クレジットマスタ攻撃の目的である「クレカ番号の有効性確認」を阻む効果的かつ現実的な対策は現状ありません。これは、「クレカ番号の有効性確認」は正規のユーザに対しても行われる処理のため、正/不正の区別が難しいためと思われます。
攻撃者にクレカ番号の有効性がバレてしまう前提で、クレカの不正利用を防ぐような対策が必要です。
今回、クレジットマスタ攻撃を調べていて知ったのですが、
クレカ番号と合わせて入力するカードの名義人の氏名は、なんと形式的に入力させているだけで、チェックされていないそうです。(海外サイトではチェックされている場合あり)
「AAAA AAAA」とかでも通るってこと・・・?
試してバレると怒られそうなので、試しませんけど・・・