Vue d’ensemble
- Le code de Rule personnalisé contenant une logique conditionnelle pour appliquer (MFA) peut permettre de contourner complètement la MFA, surtout lors de l’utilisation de l’authentification silencieuse.
- Le code de Rule personnalisé qui met en œuvre des contrôles d’autorisation fondés sur une sous-chaîne précise sans logique appropriée peut entraîner une élévation de privilèges.
- Le code de Rule personnalisé qui envoie des renseignements de diagnostic à des services tiers, plutôt que d’utiliser les fonctionnalités de débogage intégrées d’Auth0, peut entraîner la divulgation de renseignements sensibles.
- Le code de Rule personnalisé qui déclenche des services payants peut permettre à un adversaire d’engendrer des frais de facturation indésirables.
- Le code de Rule personnalisé qui accorde des autorisations en fonction d’adresses de courriel non vérifiées peut permettre à des adversaires d’obtenir ces privilèges au moyen d’un type de connexion secondaire.
- Le code de Rule personnalisé contenant des secrets codés en dur, comme des clés API, au lieu d’utiliser l’objet de configuration global, augmente le risque d’exposer ces secrets.
Rules MFA incorrectes
Authentification silencieuse
/authorize?prompt=none
Toutefois, si la MFA est ajoutée au processus d’authentification silencieuse, une interaction de l’utilisateur devient nécessaire.
Il ne faut pas utiliser une logique conditionnelle fondée sur l’authentification silencieuse comme solution de contournement de la MFA. De telles Rules permettent un contournement complet de la MFA et ne doivent pas être utilisées :
Authentification silencieuse avec redirection vers un fournisseur de MFA personnalisé
Vérification inadéquate
Empreinte de l’appareil
Code de pays
Suis-je concerné ?
Si vous utilisez l’une des logiques de Rule illustrées précédemment, un adversaire qui s’est authentifié avec succès à l’aide du premier facteur pourrait être en mesure de contourner la MFA dans votre application.Étapes d’atténuation
Si le scénario d’authentification silencieuse vous concerne, supprimez la logique conditionnelle fondée surprompt === 'none'. Cela déclenchera l’authentification multifacteur à chaque appel d’authentification silencieuse pour vérifier l’état de la session.
Si le scénario d’authentification silencieuse avec redirection vous concerne, supprimez la logique conditionnelle fondée sur prompt === 'none' et passez à un fournisseur d’authentification multifacteur pris en charge par Auth0.
Pour éviter de demander trop souvent la MFA à l’utilisateur, vous pouvez définir le paramètre allowRememberBrowser sur true, ce qui permettra aux utilisateurs finaux de cocher une case afin qu’ils n’aient à effectuer l’authentification multifacteur que tous les 30 jours. Par exemple :
allowRememberBrowser décrite ci-dessus.
Cette mise à jour aura-t-elle une incidence sur mes utilisateurs?
Selon la façon dont vous ajustez vos Rules ou votre configuration, cette mise à jour peut avoir une incidence sur vos utilisateurs en leur demandant de recourir à la MFA plus souvent qu’à l’habitude.Vérification inadéquate des sous-chaînes
if( _.findIndex(connection.options.domain_aliases,function(d){ return user.email.indexOf(d) >= 0;
La logique ci-dessus renverrait true pour des courriels comme ceux-ci :
user.domain.com@not-domain.com"user@domain.com"@not-domain.com(guillemets compris)
Suis-je concerné ?
Seuls les clients qui utilisent une logique conditionnelle dans les Rules, comme décrit ci-dessus, sont concernés.Étapes d’atténuation
Utilisez une logique comme :const emailSplit = user.email.split('@'); const userEmailDomain = emailSplit[emailSplit.length - 1].toLowerCase();
Pour en savoir plus, consultez le modèle de Rule Check Domains Against Connection Aliases. Sinon, dans la section Rules de l’, consultez le modèle de Rule intitulé Vérifier si le domaine de courriel de l’utilisateur correspond au domaine configuré.
Cette mise à jour aura-t-elle une incidence sur mes utilisateurs ?
Débogage à l’aide de services externes
id_token ou access_token associés à la requête. Par exemple :
Suis-je concerné ?
Seuls les clients qui utilisent une logique de Rule, telle que décrite ci-dessus, sont concernés.Étapes d’atténuation
Vous devriez modifier votre Rule pour qu’elle n’envoie plus l’objet de contexte complet à requestbin, car cela pourrait exposer toutid_token ou access_token associé à chaque requête. Envoyez plutôt un sous-ensemble d’attributs de l’objet de contexte moins sensibles.
Consultez le modèle de Rule Requestbin pour en savoir plus. Vous pouvez aussi, dans la section Rules de l’Auth0 Dashboard, consulter le modèle de Rule nommé Dump rule variables to RequestBin.
Auth0 offre aussi des méthodes intégrées pour déboguer les Rules sans envoyer d’information à des services externes.
Cette mise à jour aura-t-elle un impact sur mes utilisateurs ?
Non. La Rule concernée était généralement utilisée à des fins de débogage. Cette modification ne devrait pas avoir d’incidence sur les utilisateurs finaux.Rules qui utilisent un service payant
Suis-je concerné ?
Seuls les clients qui utilisent une logique de Rule telle que décrite ci-dessus et dont cette logique peut être déclenchée par tout utilisateur non fiable sont concernés.Étapes d’atténuation
Pour atténuer ce risque, envisagez l’une ou plusieurs des mesures suivantes :- Désactivez les inscriptions publiques, si elles ne sont pas nécessaires, afin de réduire le nombre d’utilisateurs pouvant s’inscrire et déclencher des appels à des services payants.
- Réduisez le risque de vol d’identifiants afin d’éviter la prise de contrôle de comptes par des pirates qui pourraient utiliser des comptes compromis pour déclencher des appels à des services payants.
- Assurez-vous que vos utilisateurs ont des mots de passe robustes lorsqu’ils utilisent des connexions de base de données.
- Assurez-vous que vos utilisateurs utilisent l’authentification multifacteur.
- Assurez-vous que la Rule n’est déclenchée que pour un sous-ensemble autorisé d’utilisateurs, ou dans d’autres conditions appropriées. Par exemple, vous pouvez ajouter une logique qui vérifie si un utilisateur a un domaine de courriel précis, un rôle/groupe ou un niveau d’abonnement particulier avant de déclencher l’appel au service payant.
Cette mise à jour aura-t-elle une incidence sur mes utilisateurs ?
true si un attaquant pouvait créer un compte à l’aide d’un autre type de connexion (par exemple, une connexion sociale) avec une adresse de courriel figurant dans la liste d’autorisation. Cela se produit parce qu’une même adresse de courriel peut exister dans différents types de connexion.
Suis-je concerné(e) ?
Mesures d’atténuation
Cette mise à jour aura-t-elle une incidence sur mes utilisateurs?
Cela ne touchera les utilisateurs existants que s’ils n’ont pas vérifié leur adresse de courriel.Secrets en texte clair dans le code de Rule
const myApiKey = 'abcdefghijklmnopqrstuvwxyz';
Comme ces valeurs sensibles figurent dans le code de Rule, elles resteront non chiffrées dans nos systèmes et risquent d’être exposées.
Suis-je concerné ?
Si vos Rules contiennent des valeurs sensibles directement dans leur code, vous êtes concerné.Mesures d’atténuation
const myApiKey = configuration.myApiKey;
Ainsi, toutes les valeurs sensibles seront chiffrées dans les systèmes d’Auth0, ce qui réduit le risque d’exposition.