The Hacker Newsは7月28日(米国時間)、「A Data Exfiltration Attack Scenario: The Porsche Experience」において、セキュリティベンダーであるCheckmarxが行ったポルシェのWebサイトの調査にて、データ流出を引き起こす可能性があるWeb APIの脆弱性が見つかり、その攻撃手法の実証と対策について伝えた。

ポルシェは複数のマイクロサイト、Webサイト、Webアプリケーションを展開している。ポルシェのこれらWebサービスは、GraphQL APIを使用したシングルページアプリケーション(SPA: Single Page Application)で作られている。

Checkmarxはこの調査にて脆弱性のあるWeb APIエンドポイント「campaigns.porsche.com/charge/WebAjaxGet」を発見。このAPIはporsche.com以外からのリクエストを許可しており、クエリに含まれる文字列をサニタイズまたはエンコードせずレスポンスにそのまま書き込んで応答する。これはクロスサイトスクリプティング攻撃が可能であることを意味し、porsche.comサイトの応答として任意のスクリプトをブラウザ上で実行させることができ、GraphQLの認証情報などを流出させるリスクがある。

この攻撃を実行するには、フィッシングメールなどを使ってユーザーに悪意のあるスクリプトを含んだURLにアクセスさせる必要があるが、porsche.comの正規のURLであるためユーザーは気づかずにアクセスする可能性があり十分に脅威となる。実証実験が行われ、ユーザー情報を盗み出す動画が公開されている。

Checkmarxはクロスサイトスクリプティング攻撃を防止するために、クエリを応答に含める場合は必ずサニタイズまたはエンコード処理をすることに加え、適切なオリジン間リソース共有(CORS: Cross-Origin Resource Sharing)を設定し、APIを呼び出せるホストを制限するよう助言している。Webサイトの管理者は、すべてのWeb APIエンドポイントにおいて同様の脆弱性のがないか確認することが望まれる。