CSIRTCV

Está usted visitando una publicación en la hemeroteca de CSIRT-CV.
Para acceder al portal y contenido actual, visite https://www.csirtcv.gva.es

02/05/2012

Vulnerabilidad crítica en bases de datos Oracle

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

Riesgo: Crítico

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:



Sistemas Afectados:

Todas las versiones de las bases de datos Oracle desde 8i hasta 11g R2.

Referencias:

CVE-2012-1675

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
Notas:

Oracle Security Alert for CVE-2012-1675

Aviso de seguridad INTECO-CERT

Fuente: Inteco-CERT

CSIRT-CV