Descripción general
- El código personalizado de Rule que contiene lógica condicional para aplicar la (MFA) puede introducir la posibilidad de omitir por completo la MFA, especialmente al usar la autenticación silenciosa.
- El código personalizado de Rule que implementa controles de autorización basados en una subcadena específica sin la lógica adecuada puede dar lugar a privilegios elevados.
- El código personalizado de Rule que envía información de diagnóstico a servicios de terceros, en lugar de usar las funciones de depuración integradas de Auth0, puede provocar la divulgación de información confidencial.
- El código personalizado de Rule que activa servicios de pago puede permitir que un adversario genere cargos no deseados.
- El código personalizado de Rule que concede autorización basándose en direcciones de correo electrónico no verificadas puede permitir que adversarios obtengan esos privilegios mediante un tipo de conexión secundario.
- El código personalizado de Rule que contiene secretos codificados de forma fija, como claves de API, en lugar de usar el objeto de configuración global, aumenta el riesgo de exponer esos secretos.
Rules de MFA incorrectas
Autenticación silenciosa
/authorize?prompt=none
Sin embargo, si se agrega MFA al proceso de autenticación silenciosa, la interacción del usuario pasa a ser necesaria.
No debe utilizarse lógica condicional basada en la autenticación silenciosa para eludir MFA como solución alternativa. Rules de este tipo permiten omitir MFA por completo y no deben utilizarse:
Autenticación silenciosa con redirección a un proveedor de MFA personalizado
Verificación incorrecta
Huella digital del dispositivo
Código de país
¿Me afecta?
Si usa alguna de las lógicas de Rule descritas anteriormente, un adversario que haya iniciado sesión correctamente con el primer factor de autenticación podría eludir MFA en su aplicación.Pasos de mitigación
prompt === 'none'. Esto hará que se solicite autenticación multifactor en cada llamada de autenticación silenciosa para comprobar el estado de la sesión.
Si se ve afectado por el escenario de autenticación silenciosa con redirección, elimine la lógica condicional basada en prompt === 'none' y cambie a un proveedor de autenticación multifactor compatible con Auth0.
Para evitar solicitar MFA al usuario con demasiada frecuencia, puede establecer el parámetro allowRememberBrowser en true, lo que permitirá a los usuarios marcar una casilla para que solo se les solicite autenticación multifactor cada 30 días. Por ejemplo:
allowRememberBrowser descrita anteriormente.
¿Esta actualización afectará a mis usuarios?
Verificación incorrecta de subcadenas
if( _.findIndex(connection.options.domain_aliases,function(d){ return user.email.indexOf(d) >= 0;
La lógica anterior devolvería true para correos electrónicos como estos:
user.domain.com@not-domain.com"user@domain.com"@not-domain.com(comillas incluidas)
¿Me afecta?
Solo se ven afectados los clientes que usan lógica condicional en Rules, como se describió anteriormente.Pasos de mitigación
const emailSplit = user.email.split('@'); const userEmailDomain = emailSplit[emailSplit.length - 1].toLowerCase();
Consulte la plantilla de Rule Check Domains Against Connection Aliases para obtener más información. Como alternativa, en la sección Rules del , vea la plantilla de Rule llamada Check if user email domain matches configured domain.
¿Esta actualización afectará a mis usuarios?
Depuración con servicios externos
id_token o access_token asociados con la solicitud. Por ejemplo:
¿Me afecta?
Solo se ven afectados los clientes con lógica de Rule, como se describió anteriormente.Pasos de mitigación
id_token o access_token asociado a cada solicitud. En su lugar, debe enviar un subconjunto de atributos del objeto de contexto que sean menos sensibles.
Consulte la plantilla de Rule de Requestbin para obtener más información. Como alternativa, en la sección Rules del Auth0 Dashboard, vea la plantilla de Rule llamada Dump rule variables to RequestBin.
Auth0 también ofrece métodos integrados para depurar Rules sin enviar información a servicios externos.
¿Esta actualización afectará a mis usuarios?
Rules que usan un servicio de pago
¿Me afecta?
Solo se ven afectados los clientes que tengan lógica de Rule, como se describe anteriormente, y cuya lógica de Rule pueda ser activada por cualquier usuario no fiable.Pasos de mitigación
- Deshabilite los registros públicos, si no son necesarios, para reducir la cantidad de usuarios que pueden registrarse y desencadenar llamadas a servicios de pago.
- Mitigue el riesgo de robo de credenciales para evitar la toma de control de cuentas por parte de atacantes que puedan usar cuentas comprometidas para desencadenar llamadas a servicios de pago.
- Asegúrese de que sus usuarios tengan contraseñas seguras cuando usen conexiones de base de datos.
- Asegúrese de que sus usuarios utilicen autenticación multifactor.
- Asegúrese de que la Rule solo se active para un subconjunto autorizado de usuarios o en otras condiciones apropiadas. Por ejemplo, puede que desee agregar lógica que verifique si un usuario tiene un dominio de correo electrónico, un rol/grupo o un nivel de suscripción determinados antes de desencadenar la llamada al servicio de pago.
¿Esta actualización afectará a mis usuarios?
true si un atacante pudiera crear una cuenta mediante un tipo de conexión distinto (como una conexión social) con una dirección de correo electrónico incluida en la lista de permitidos. Esto sucede porque el mismo correo electrónico puede existir en distintos tipos de conexión.
¿Estoy afectado?
Pasos de mitigación
¿Esta actualización afectará a mis usuarios?
Secretos en texto sin cifrar dentro del código de Rule
const myApiKey = 'abcdefghijklmnopqrstuvwxyz';
Como esos valores confidenciales están presentes en el código de Rule, permanecerán sin cifrar en nuestros sistemas y correrán el riesgo de quedar expuestos.
¿Estoy afectado?
Pasos de mitigación
const myApiKey = configuration.myApiKey;
Esto garantiza que todos los valores confidenciales queden cifrados dentro de los sistemas de Auth0, lo que reduce el riesgo de exposición.