PDA

Ver la versión completa : Salto de restricciones de seguridad en productos Oracle



Marchi
28-01-2006, 19:56
Pocos días después del parche acumulativo publicado por Oracle, ha
aparecido una importante vulnerabilidad en diversos productos de la
compañía.

Oracle Coporation es un fabricante de soluciones software. Sin duda
alguna, su producto más popular es su gestor de bases de datos
relacionales, bastante empleado en entornos orgnizativos, especialmente
en corporaciones de gran tamaño. Los orígenes de Oracle se remontan
a finales de los 70, con la aparición de la sociedad Relational
Software y los trabajos de George Koch.

Los problemas documentados afectan a un amplio espectro de soluciones
Oracle. Se han identificado como vulnerables Application Server,
Database Enterprise Edition y Database Standard Edition versiones
9i, así como la ramas 8.x y 9.x del servidor HTTP de Oracle. Son
vulnerables también Oracle Application Server 10g, y Oracle Database
8.x, si bien no es descartable que otros productos sean vulnerables,
según se vayan ejecutando más pruebas en entornos distintos a los
empleados por el descubridor de los problemas, David Litchfield.

Los problemas de seguridad están causados por un error en el Gatway
PL/SQL de Oracle, cuando procesa y valida peticiones HTTP. Estas
peticiones podrían ser adulteradas, y ser empleadas para evitar la
lista de exclusiones de PL/SQL, lo que otorgaría a los atacantes
acceso a paquetes y procedimientos privilegiados.

PL/SQL es un lenguaje muy empleado en Oracle, que permite ampliar las
capacidades nativas del estándar SQL y faculta a los usuarios poder
definir secuencias de control, de flujo y toma de decisiones. Esto
lo convierte en un lenguaje de utilidad para administradores y
programadores, que reducen esfuerzos de control y simplifican los
programas, y para usuarios finales, que se pueden ver beneficiados
por las implicaciones de los resultados de los procesos de toma
de decisiones, los cuales pueden ser empleados para dotar de
funcionalidad "business intelligence" a los programas escritos
en este lenguaje.

La gravedad de los problemas puede ser calificada como altamente
crítica, ya que no existe solución del fabricante en la actualidad.
Los fallos son además explotables de modo remoto, y la explotación
exitosa de los mismos puede conducir a saltos de restricciones de
seguridad, que comprometan seriamente los entornos donde estén
desplegadas estas soluciones Oracle. Puesto que los atacantes
podrían ganar acceso a las bases de datos a través del servidor
Web.

El modelo de seguridad de Oracle está siendo sometido constantemente a
revisiones y críticas de toda índole. Especialmente en este caso, ya
que los problemas descubiertos fueron comunicados a Oracle en octubre
de 2005, y posteriormente, el 7 de noviembre, al NISCC británico. Ante
la severidad del problema, se esperaba que el parche de Oracle de
enero contuviera soluciones al problema, pero no ocurrió así. El fallo
continúa vigente, siendo poco comprensible la actitud del fabricante
ante la notificación de un problema tan comprometido como el descrito,
ante el cual han hecho caso omiso. Esta actitud sólo está ayudando a
tensar la ya tensa cuerda de la administración de seguridad de la
compañía, la cual es frecuentemente acusada de ser lenta y poco
flexible ofreciendo soluciones de seguridad.

En ausencia de respuesta oficial del fabricante, se aconseja a los
administradores Oracle filtren las posibles cadenas maliciosas a
través de un proxy o un firewall que tenga capacidad de filtrado de
URLs. Existe la posibilidad, siempre que emplee el módulo de Apache
mod_rewrite, presente en la distribución Apache de Oracle, de efectuar
reescrituras de URL que contengan el carácter del paréntesis de
cierre, ')'. Esto es posible mediante la introducción de las
siguientes reglas mod_rewrite en el fichero http.conf, si bien es
posible aplicar estas reglas en directorios específicos mediante
.htaccess. Es posible incluir estas reglas dentro de un bucle de
comprobación IfModule, del tipo <IfModule mod_rewrite.c> [Reglas
mod_rewrite] </IfModule>

RewriteEngine on
RewriteCond %{QUERY_STRING} ^.*\).*|.*%29.*$
RewriteRule ^.*$ http://127.0.0.1/denied.htm?attempted-attack
RewriteRule ^.*\).*|.*%29.*$
http://127.0.0.1/denied.htm?attempted-attack


Más Información:

Oracle Corporation
http://www.oracle.com

Oracle Security FAQ
http://www.orafaq.com/faqdbase.htm

Grupo de parches de enero para diversos productos Oracle
http://www.hispasec.com/unaaldia/2644