miércoles, 2 de mayo de 2012

Vulnerabilidad crítica en bases de datos Oracle

Se ha detectado una vulnerabilidad crítica en Oracle que afecta a todas las versiones desde la 8i hasta la 11g R2, y que no fue completamente parcheada en la última actualización de productos Oracle del pasado mes de abril.
Un usuario remoto malicioso, que no necesitaría ningún permiso especial para explotar la vulnerabilidad, podría conseguir capturar la información intercambiada entre el cliente y el servidor de bases de datos, así como la inyección de código SQL en el servidor y el secuestro de sesiones.
Se recomienda revisar la información de la alerta que se detalla a continuación y seguir las directrices que se recomiendan para tratar de mitigar el problema.
Vulnerabilidad crítica en bases de datos Oracle

La vulnerabilidad afecta al componente TNS Listener, responsable del establecimiento de sesión.

Riesgo:

Sistemas afectados:
Todas las versiones de las bases de datos Oracle desde 8i hasta 11g R2.
Descripción:
Un atacante puede registrar, en este componente, una instancia ya registrada anteriormente. Esta acción es interpretada por el TNS Listener, como el registro de una instancia de un cluster. De forma que, a partir de ese momento, se realizará un balanceo de carga entre los miembros del cluster, incluido el equipo del atacante. Después, el atacante puede reenviar la información, o comandos del cliente, a un servidor legítimo de la BBDD.

No se necesita privilegios para explotar esta vulnerabilidad, llamada TNS Poison, sólo acceso por red al servicio TNS-Listener.
Una llamada de tipo TNS Poison permite establecer un ataque de tipo man-in-the-middle entre el servidor y el cliente de BBDD, permitiendo al usuario malicioso realizar los siguientes ataques:
  • Captura de información intercambiada entre el cliente y el servidor de BBDD.
  • Inyección de comandos SQL.
  • Secuestro de sesión.
Solución:
Oracle ha publicado el siguiente aviso de seguridad con medidas para evitar este problema: Oracle Security Alert for CVE-2012-1675
Para paliar el problema, se puede establecer a off la opción dynamic_registration en el archivo listener.ora. En clusters Oracle RAC, además, se debe establecer el balanceo de sesión en el cliente, añadiendo los nodos del cluster en el archivo tnsnames.ora.
Otra alternativa, en clusters Oracle RAC, es establecer la siguiente configuración en el archivo protocol.ora (aunque esta medida no evitará la explotación de la vulnerabilidad desde los clientes autorizados por dicha configuración):
TCP.VALIDNODE_CHECKING = YES

TCP.INVITED_NODE = (LISTA DE LOS CLIENTES ADMITIDOS)
Por último, para evitar el ataque también se puede establecer que la comunicación sea SSL/TLS (aunque esta funcionalidad se debe adquirir aparte), indicando en el archivo protocol.ora del cliente y servidor:
SQLNET.ENCRYPTION_CLIENT=REQUIRED
Fuente: Inteco-CERT

Visto en Boletín de Alerta CSIRT-cv



No hay comentarios: