En los últimos días hemos sido testigos de una esperpéntica historia en el mundo de la seguridad informática, con una compañía que decía verdades a medias, un investigador de seguridad perplejo y una comunidad de usuarios bastante cabreada. Felizmente, Oracle ha reaccionado adecuadamente y la historia ha acabado bien para todos los implicados y lo más importante, los usuarios de Oracle disponen de un importante parche para Oracle Database Server.

oracle74

Para entender un poco la historia nos tenemos que remontar a 2008, ese año un investigador de seguridad llamado Joxean Koret, descubrió una vulnerabilidad TNS poison en Oracle Database Server, la cual afectaba versiones desde la 8i a la 11g R2. En ese momento siguió un protocolo bastante común que es alertar al fabricante y vender la vulnerabilidad a una tercera empresa de seguridad, en este caso iSIGHT Partners.

Pues bien en la ronda de parches de seguridad de Abril de este año, Oracle nombraba a este investigador y comentaba que la vulnerabilidad había sido parcheada, por lo que el investigador decidió que ya era hora de documentar la vulnerabilidad y lanzar un Proof of Concept (PoC), es decir una prueba de como funcionaba y se podía sacar provecho de la vulnerabilidad. Estos PoC son muy comunes en la scene y sirven como base para que se siga investigando sobre las vulnerabilidades y se puedan llegar a programar exploits sobre ellas.

Hasta este punto tendríamos un final feliz, investigador descubre vulnerabilidad, lo reporta a la empresa y esta lanza parche para mantener seguros sus productos y sus usuarios. Pero Joxean Koret no estaba muy convencido de que Oracle hubiera parcheado efectivamente esta vulnerabilidad por lo que tras varios emails y varias vagas respuestas por parte de Oracle, descubrió que realmente no existía un parche.... y decidió hacer pública su queja, lo cual inmediatamente puso en pie de guerra a la comunidad de usuarios de Oracle ante la inacción de la compañía.

Ahora vamos a ver un poco de que se trata la vulnerabilidad y el porqué de la alarma de Joxean Koret y de la comunidad de usuarios de Oracle. La función TNS Listener, conocida como registro remoto se instauró en la versión 8i de Oracle Database (con la que un servidor comenzó a trabajar con Oracle). Enviando una petición al servicio un atacante podría apropiarse conexiones legítimas que otros usuarios hubieran ya establecido con el servidor, sin necesidad obviamente de usuario o contraseña para autenticarse y desde ese momento los datos entre servidor y usuario legítimo pasaría a través del atacante. Por eso se conoce a esta vulnerabilidad como TNS poison o Man in the middle. A partir de este momento el atacante puede registrar toda comunicación entre el usuario legítimo y el servidor, pero también enviar sus propios comandos al servidor e incluso usando una vulnerabilidad de elevación de privilegios instalar software en el servidor, por ejemplo en sistemas Windows la base de datos ya funciona como Local System.

En el día de ayer y cuando las quejas más arreciaban contra Oracle y ya se habían empezado a usar vías alternativas para prevenir los ataques, Oracle finalmente lanzó un parche para esta vulnerabilidad, cubriendo las versiones 10g R2 10.2.0.3, 10.2.0.4 y 10.2.0.5 la versión 11g R1 11.1.0.7 y la versión 11g R2 11.2.0.2 y la 11.2.0.3 además de Oracle Fusion Middleware, Oracle Enterprise Manager y Oracle E-Business que también contienen este componente afectado de Oracle Database.

Felizmente como decíamos, la vulnerabilidad puede ser corregida aunque para hacer despertar a Oracle, haya hecho falta la insistencia del investigador y de la propia comunidad alarmados ambos ante la gravedad de la misma y la falta de reacción (inicialmente) por la compañía.