mabots' blog

知のレバレッジを最大化せよ (旧はてなダイアリーから移転しました。)

Paypay など店頭での QR コード決済に潜む脆弱性

昨今 QR コード決済が流行っている。クラッキングの主な手口は物理的な侵入による PC や HDD などの持ち出しなどであるともいうが、このような古典的なクラッキングの手順がないかどうか、ざっと考えてみた。

QR コード決済はいくつかのパターンがある

  • 店頭で利用者の QR コードを決済端末がスキャンし、決済端末が価格を決定する
  • 店頭で利用者が決済端末に表示された動的に作成された QR コードをスキャンし、決済端末が価格を決定する
  • 店頭で利用者が店頭 POP にあるような固定的に作成された QR コードをスキャンし、利用者が価格を決定する

一番最後のパターンでは、下記のような販促物が、店頭にあることが多い。下記の画像は白い領域にしているが、ここにシールで QR コードが貼られている。

f:id:mabots:20191127155018j:plain
QR コードで支払う店頭での販促物

さて、この QR コード (シール) を悪意のある第三者や関係者が差し替えたらどうなるだろうか・・? おそらくいつもと同じ画面で微妙に店名が異なっていたり、少し異なった画面が表示され、十分に思慮深くなければ送金してしまうだろう。支払先のお店が本当にそのお店かどうかわからないのだ。SSL のサイト証明書ではないが支払先が支払先であることを保証する仕組みが必要かもれしない。実際に中国ではこの方法によって被害が発生しているらしい。

本ブログのタイトルでは Paypay を具体的に記載したが、最後のパターンを用いる場合は、いろいろなサービスにて影響しうる。このタイプの QR コード決済をする時は、銀行 ATM に変な装置が貼り付けられているのか気をつけるのと同様に気をつけたほうが良いかもしれない。ちなみに銀行 ATM のスキミング先はリンク先を見てもらえばわかるように、相当に高度化されており、一見では判断することは難しいというのが正直なところである。