RSA comprometida: Posibles riesgos y contramedidas

RSA es la división de seguridad de EMC Software y es conocida sobre todo por sus tokens SecurID con dos factores de autenticación. Como muchos sabréis, el pasado 17 de marzo confirmaron un ciberataque con robo de información que podría "reducir la efectividad" de su seguridad y alertaron a sus clientes para que estuvieran especialmente atentos a la protección de sus infraestructuras.

Funcionamiento genérico

El sistema SecurID puede ser implementado como un token físico o por software. En ambos casos, la autenticación se basa en una contraseña única sincronizada u OTP (One-time Time-synchronized Password) que es facilitada por estos tokens de manera temporal.

La función que genera la contraseña se basa en el uso de un algoritmo propietario que utiliza la hora actual y una semilla de 128 bits que combinadas producen un código rotativo llamado 'tokencode'.
El usuario se autentica mediante la combinación de un tokencode y un PIN, generando una contraseña única que es enviada al servidor, si bien el PIN puede ser requerido o no según cada implementación.

El servidor de back-end que recibe el password (conocido también como servidor ACE) tiene estas mismas semillas y el algoritmo, y por lo tanto puede realizar el mismo cálculo para verificar que la contraseña se generó a partir del código de token actual.

El fin de este proceso es comprobar que el cliente tiene realmente el token, es decir, que conoce el algoritmo RSA y la semilla. El enorme número de posibles semillas y los cambios constantes de tokencodes hacen muy difícil adivinar o interceptar la contraseña.

El algoritmo RSA es propietario, aunque es conocido por muchos partners de RSA y se han realizado varios estudios criptográficos de cara a conseguir su ingeniería inversa. Si bien no es totalmente público, es poco probable que la exposición del algoritmo afecte la integridad del sistema global.

Lo que sí es fundamental es mantener en secreto las semillas ya que podría permitir la duplicación de tokencodes y, por extensión, la obtención de los PIN y las contraseñas OTP.

Riesgo y contramedidas

Debido a que RSA todavía no ha especificado detalles, el impacto en sus clientes sigue siendo en gran medida desconocido.

Poniéndonos en lo peor, las semillas podrían verse comprometidas, se podría haber filtrado su asignación a determinados clientes de RSA o incluso podría haberse revelado el código fuente del servidor ACE pudiendo obtener alguna vulnerabilidad o fallo.

Ante este nivel de riesgo es recomendable llevar a cabo diversas acciones:

- Ante ataques directos contra el servidor ACE:

* Confirmar el nivel de parches de seguridad y el estado general de fortificación del sistema
* Monitorizar los logs del IPS/IDS
* Monitorizar los logs del servidor

- Ante ataques de fuerza bruta intentando determinar una semilla específica utilizada en una cuenta de token determinada o, en definitiva, intentando comprometer cualquiera de los factores de autenticación:

* Monitorizar intentos fallidos de autenticación repetidos, tanto en el servidor ACE como en cualquier sistema o appliance intermedio
* Monitorizar intentos fallidos de autenticación no seguidos por accesos con éxito, tanto en el servidor ACE como en cualquier sistema o appliance intermedio

- Supervisar cambios en el orígen de los intentos de autenticación

- Monitorizar múltiples logins concurrentes para una única cuenta

- Asegurarse que los OTPs son transmitidos por canales cifrados

- Estar atentos ante intentos de phising o suplantación intentando conseguir los OTPs y educar a los usuarios para protegerse contra ataques de ingeniería social

Comentarios