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.
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.
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.
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
Visto en Boletín de Alerta CSIRT-cv
No hay comentarios:
Publicar un comentario