深刻度の高いPayPalセキュリティの脆弱性により、ユーザーのパスワードがハッカーにさらされる可能性がありました
2億8,600万以上のアクティブなアカウントを持つPayPalは、世界で最も大きく、最も人気のある決済プロセッサです。信頼できる使いやすいサービスを提供するだけでなく、その開発者とソフトウェアエンジニアが、オンライン支払いを処理するときにユーザーが安心できる多くのセキュリティ機能を実装したため、そのタイトルを達成しました。皮肉なことに、これらのセキュリティ機能の1つにはバグがあり、ユーザーがアカウント乗っ取り攻撃にさらされる可能性がありました。
Table of Contents
セキュリティの専門家が深刻なPayPalの脆弱性を発見
この脆弱性は、ルーマニアの情報セキュリティコンサルタントであり、バグハンティングにも時間を費やしているソフトウェアエンジニアであるAlex Birsanによって発見されました。クロスサイトリクエストフォージェリ(CSRF)トークンとセッションIDを含むJavaScriptファイルに気付いたとき、彼はPayPalのログインプロセスを突っついていました。ビルサンは興味をそそられました。
彼はで述べた彼の公表 JSファイルにこの種のデータを残すことは、ハッカーにそれを公開することができること。案の定、クロスサイトスクリプトインクルージョン(XSSI)として知られる手法を使用して、攻撃者が悪意のあるサイトを訪問するようにだまされたユーザーからCSRFトークンとセッションIDを盗むことができるシナリオを作成しましたページ。
当初、Alex Birsanはこれはひどいニュースだと考えていました。彼は、トークンとセッションIDがユーザーを偽装するのに十分であると想定しました。しかし、彼は自分のアカウントを引き継ごうと何度も試みた後、攻撃を成功させるにはさらに作業が必要であることを理解しました。それにもかかわらず、彼は押した。
この脆弱性は、ブルートフォース攻撃を阻止するように設計されたセキュリティ機能に隠れています
さらに調査した結果、BirsanはCSRFトークンとセッションIDが実際にPayPalのCAPTCHAメカニズムで使用されていることを発見しました。 CAPTCHAは、Computers and Humans Apartを完全に自動化する公開チューリングテストの略であり、 ブルートフォース攻撃に対する最も簡単な保護方法の1つです。
他の多くのオンラインサービスとは異なり、PayPalはメインのログインフォームの下にCAPTCHAチャレンジを含めないことを決定しました。代わりに、ログイン試行の失敗回数が事前に設定された後、空白のページに表示されます。ユーザーがCAPTCHAチャレンジを正常に解決すると、HTTP POSTリクエストがPayPalに送信されます。これには、前述のCSRFトークンとセッションIDに加えて、ユーザーが最後のログイン試行中に入力したユーザー名とパスワードがプレーンテキストで含まれています 。アレックス・ビルサンは、さらに頭をひっかいて、概念実証の準備ができていました。
攻撃者は最初にXSSIを使用して、CSRFトークンとユーザーのブラウザに有効なセッションIDを抽出します。次に、ランダムな資格情報を使用してログイン試行をいくつか行い、CAPTCHAチャレンジをトリガーします。ユーザーが同じブラウザを使用してアカウントにログインすると、ランダムなユーザー名とパスワードは有効な資格情報で上書きされます。次に、攻撃者が必要とするのは、ターゲットのログインデータをプレーンテキストで表示するための別のCAPTCHAトークン(CAPTCHA解決サービスを使用して比較的簡単に取得できる)です。
PayPalは迅速に動き、脆弱性にパッチを当てます
ご覧のとおり、バグを悪用する方法を見つけることは、公園を散歩することではありませんでした。それにもかかわらず、概念実証攻撃は、放置された場合、脆弱性が一部の人々に深刻な経済的損失を引き起こす可能性があることを示しました。 CVSSスコア。
最初のレポートは11月18日に送信され、18日後、HackerOneはBirsanの調査結果を最終的に検証しました。 PayPalは問題を認め、それがかなり深刻であることに同意しました。 12月10日に、Birsanは$ 15,300をわずかに上回る賞金を受け取り(重大度の高いバグに対してのみ報奨金が支払われます)、わずか24時間後、脆弱性はすでに修正されています。 Birsanは、PayPalが問題を解決するスピードを「印象的」だと説明しました。これは、今日ではめったに与えられない賞賛です。