OAuth & OpenID : Vulnérabilité de redirection et XSS

598px-Oauth_logo.svg_

Il y a quelques temps, SYNETIS vous détaillait de nouveaux vecteurs d’attaques ciblant les protocoles d’authentification OAuth et OpenID ; notamment via les vulnérabilités XXE et Open Redirect.

Les attaques “Open Redirect” sont particulièrement en vogue depuis plusieurs mois, et cible les grandes plateformes qui implémentent ces protocoles.

An open redirect is an application that takes a parameter and redirects a user to the parameter value without any validation. This vulnerability is used in phishing attacks to get users to visit malicious sites without realizing it.

Le principe consiste à définir de manière arbitraire l’URL de redirection qu’une plateforme cible jugée de confiance va faire suivre. Il est ainsi possible d’effectuer des attaques de phishing à partir d’une URL initiale de confiance, ou bien récupérer des données/tokens des protocoles d’authentification pour accéder aux informations personnels des victimes.

A serious Covert Redirect vulnerability related to OAuth 2.0 and OpenID has been found. Almost all major providers of OAuth 2.0 and OpenID are affected, such as Facebook, Google, Yahoo, LinkedIn, Microsoft, Paypal, GitHub, QQ, Taobao, Weibo, VK, Mail.Ru, Sohu, etc.

It could lead to Open Redirect attacks to both clients and providers of OAuth 2.0 or OpenID.

For OAuth 2.0, these attacks might jeopardize “the token” of the site users, which could be used to access user information. In the case of Facebook, the information could include the basic ones, such as email address, age, locale, work history, etc. If “the token” has greater privilege (the user needs to consent in the first place though), the attacker could obtain more sensitive information, such as mailbox, friends list and online presence, and even operate the account on the user’s behalf.

De plus amples détails et une démonstration de cette vulnérabilité peuvent être visualisés ici:

[youtube]http://www.youtube.com/watch?v=HUE8VbbwUms[/youtube]

Les attaques “Open Redirect” sont de plus en plus exploitées au cours de ces dernières années. De ce fait, de nouvelles méthodes de bypass et des évolutions de ces vulnérabilités ont vu le jour. Nous vous encourageons à consulter certains de ces vecteurs à l’adresse suivante.

En manipulant les divers paramètres de redirection, le referer et en connaissance des échanges protocolaires, il est possible d’exploiter OAuth 2.0 pour générer des attaques XSS. Ce cas a été démontré à la HITB 2013 au cours de la présentation “OAuth 2.0 and the road to XSS” :

[youtube]http://www.youtube.com/watch?v=zAUzVjMhbqw[/youtube]

Détails de la présentation :

We performed a security study of one of the world’s largest implementations — Facebook’s OAuth 2.0 and in this presentation we will share a technical description of multiple high-impact security issues we uncovered including:

  • Data leakage of private Facebook user information
  • Theft of OAuth-specific credentials
  • Bypassing authentication on third party web-sites
  • Performing session fixation attacks
  • Converting authorization protocol features into XSS on Facebook.com domains

We will demonstrate how easy it is to break OAuth 2.0 authorization and will show some interesting approaches to exploiting it’s protocol weaknesses.

Les vulnérabilités Open Redirect sont jugées difficiles à patcher. Il est généralement conseillé d’utiliser un système de token par domaine de redirection de confiance, ou bien encore d’exploiter des listes blanches de domaines de redirection. Bien évidemment, pour certaines plateformes, maintenir ces listes blanches peut s’avérer très contraignant.

En ce qui concerne la sécurisation de l’XSS détaillée ci-dessus, il convient de nettoyer et valider (sanitize) toutes les données entrantes et récupérées par les scripts de traitement de question. L’adage “Never Trust User Input” doit être toujours gardé à l’esprit.

Il convient de noter que ces vulnérabilités n’affectent pas intrinsèquement les protocoles OAuth ou OpenID, mais bien leurs implémentations au travers des diverses plateformes de renoms.

SYNETIS ne peut que vous encourager à adopter les bonnes pratiques de sécurité au regard de ces protocoles d’authentification de plus en plus employés et adoptés. Des attaques pouvant compromettre des systèmes critiques peuvent être menées sur ces protocoles. La connaissance de ces vecteurs d’intrusion, de leurs parades et des outils d’analyse/prévention sont pour nous indispensables pour conserver l’intégrité des systèmes.

Sources & ressources :

Yann

Consultant Sécurité