ネットサービス

ウェブ決済システム「Stripe」はウェブサイト上のユーザーの動き全てを記録してStripeに送信している


ウェブ決済システム「Stripe」はアプリやプログラムにソースコードを貼り付けるだけで決済システムが導入できるとして、多くの企業や開発者が利用しています。決済システムにとってセキュリティは最重要事項といえますが、ソフトウェアエンジニアのマイケル・リンチさんがStripeを利用したところ、Stripeの公式JavaScriptライブラリ(Stripe.js)がウェブサイト上のユーザーの行動すべてを記録しStripeのサーバーに秘密裏に送信していたことが発見しました。

Stripe is Silently Recording Your Movements On its Customers' Websites · mtlynch.io
https://mtlynch.io/stripe-recording-its-customers/


Stripe.jsが記録しStripeに送信していたデータは、以下の3つです。

1:Stripeの支払いフォームを表示しないウェブページを含む、ユーザーが訪れた全てのページ
2:ウェブサイトでユーザーがカーソルをどのように動かしたかという記録
3:ウェブサイトを訪れた人とウェブサイトを結び付ける識別子

リンチさんがStripe.jsの動きに気づいたのは、製品に有料プランを追加する際に、ブラウザからのHTTPトラフィックを検知するHTTPプロキシを使用していたため。Stripeを使用してウェブアプリの支払いフローを実装した後に、全てのページナビゲーションがStripeのURLに対して新しいPOSTリクエストを生成していたとのこと。リンチさんのウェブアプリはユーザーがアカウントを作成するまで支払情報を収集しませんが、Stripe.jsは新しいユーザーがウェブアプリのホームを開いた時点でHTTPリクエストを生成していました。

リンチさんは最初、自分がStripeを実装する際に何か間違いを犯したのではないかと考えたそうです。しかし、何が間違っていたのかを調べるべく、ウェブアプリから送られたPOSTリクエストをGoogle検索したところ、同様の事態を報告する開発者が複数おり、2017年にまでさかのぼって存在することがわかりました。


Githubに立てられたスレッドではStripeの従業員が「これは意図していない動作であり、修正を行います」とコメントしていました


アプリに問題がないことを確認したリンチさんは、問題をStripeのサポートに報告し、この挙動を防ぐ方法について尋ねました。すると、すぐに「ユーザートラッキングは仕様上のものであり、機能を受け入れて欲しい」という旨の返信が来たとのこと。実際のメールは以下のようなものでした。

Hi Michael,

Thanks for getting in touch. Faith here from Stripe support.

Jumping right in, the calls being seen are by design in order to detect fraud and is in the best interests of the user. According to the docs: “To best leverage Stripe’s advanced fraud functionality, include this script on every page, not just the checkout page. This allows Stripe to detect anomalous behavior that may be indicative of fraud as customers browse your website.”

https://stripe.com/docs/js/including

Please let us know should you run into any other issues or have any other concerns.

All the best,
Faith


(ハイ、マイケル

連絡をありがとうございます。StripeのサポートのFaithがお答えします。

さっそく本題に入ると、あなたの報告してくれた内容は詐欺を見つけるための仕様であり、ユーザーにとって最善の利益となるものです。仕様書には、「Stripeの高度な詐欺対策を最大限に機能させるには、チェックアウトページだけでなく、全てのページにこのスクリプトを含めます。これによりStripeはカスタマーがあなたのウェブサイトをブラウジングしている時に起こる可能性のある異常な行動を検知することが可能です」と書かれています。

https://stripe.com/docs/js/including

他に問題や懸念点があればご連絡ください)

この返信に対しリンチさんは、「『ユーザーにとって最善の利益』とありますが、利益を得ているのは明らかにStripeだ」と述べ、送信されるデータを使ってStripeは無料で詐欺検知モデルをトレーニングでき、広告主にデータが売られる可能性についても指摘しています。なお、Stripeはこの問題について公式から情報の開示を行っていないとのこと。

この問題は、スタートアップ企業に投資するYコンビネータの掲示板「Hacker News」で話題になり、カリフォルニア州オンラインプライバシー保護法(CalOPPA)のもとデータ収集についての開示やオプトアウト方法の実装、顧客が集取データを検査する方法が必要だと指摘されました。

Stripe records user movements on its customers' websites | Hacker News
https://news.ycombinator.com/item?id=22936818


これに対し、スレッドには「Stripeの共同設立者」を名乗る人物が登場し、「収集されたデータはこれまでも、これからも、広告主に売られたり貸し出されたりすることはない」と断言しました。Stripe.jsはStripeを使用するビジネスをターゲットにした詐欺ボットの検出手段であり、Stripe.jsがなければStripeを使用する企業は多くの損失を被ることになると、書き込み主はつづりました。またStripe.jsを使用したくない場合は使用しないことも可能であると述べられつつも、Stripe.jsを使用しない企業が詐欺攻撃の的となる事例についても言及されています。

一方で、「問題は『詐欺対策としての収集かどうか』ではなく、『データ収集が合法かつ倫理的な方法で行われているか』です」として、Stripeの説明に的外れであることを指摘するユーザーもいます。

この記事のタイトルとURLをコピーする

・関連記事
Nintendo Switchに必須の「ニンテンドーアカウント」で不正ログイン被害が続発、任天堂は二段階認証を有効にすることを公式に推奨 - GIGAZINE

クレジットカードの決済情報はわずか6秒で推測可能であるという研究結果 - GIGAZINE

クレジットカードなどの情報を盗むマルウェアに感染しているオンラインショッピングサイトは増加し続けている - GIGAZINE

中国人ハッカー集団がモバイル決済サービス「Samsung Pay」に技術提供するLoopPayに侵入していたことが判明 - GIGAZINE

会社がハッキングされ個人情報が流出した際の言い訳を自動生成してくれるウェブサイト「Why the fuck was I breached?」 - GIGAZINE

in ネットサービス,   セキュリティ, Posted by logq_fa

You can read the machine translated English article here.