¿Tengo que instalar los “Oracle Critical Patch Update” en mis entornos?
03/02/2011 -
Periódicamente (en la actualidad cada tres meses) Oracle envía a sus clientes notificaciones de la salida de los “Critical Patch Updates“. La mayoría de clientes se preguntan si deben instalar estos parches en sus entornos y qué ventajas/inconvenientes tendrían en caso de hacerlo. En la primera parte de este post intentaré aportar un poco de información que ayude a tomar estas decisiones y en la segunda haré algunos comentarios sobre la seguridad en las BBDD basados en mi experiencia propia. Como en otros de mis posts, la primera parte la basaré en hechos y documentación de Oracle (y por tanto, salvo error, debería ser información básicamente cierta), y la segunda parte será totalmente personal (y por tanto discutible).
En primer lugar comentar un poco qué son los “Critical Patch Updates” (CPU). Son conjuntos de parches que solucionan problemas de seguridad detectados en el software de Oracle y aparecen cada tres meses para una parte de los productos de Oracle (entre ellos BBDD, Middleware, Grid Control, …).
Oracle distribuye parches de seguridad de manera periódica en dos formatos, los ya comentados CPU’s y los “Patch Set Updates” (PSU). Los PSU’s los traté en detalle en el post http://avanttic.com/blog/oracle-patch-set-updates/.
En la siguiente tabla se pueden ver las diferencias entre ellos:
Básicamente las diferencias son:
- Los CPU’s sólo contienen parches para problemas de seguridad. Los PSU incluyen los parches de los CPU’s correspondientes (aparecen ambos al mismo tiempo) mas los parches para los Bugs mas destacados o que afectan a más clientes.
- Tanto los CPU’s como los PSU’s son incrementales. Dentro de cada release de BBDD los más nuevos incluyen los parches de los anteriores y no requieren que estos estén ya instalados (si no se indica lo contrario en las notas).
- Los CPU’s son colecciones de parches aglutinados en grupos llamados “moléculas”, de modo que si alguno de los parches del CPU tiene conflicto con alguno de los parches ya instalados podemos dejar de instalar esa “molécula” y instalar el resto mientras pedimos a Soporte Oracle que solucionen el conflicto con un “merge patch”. En el caso de los PSU’s se instalan todos como un grupo y no existe posibilidad de instalar solo una parte de ellos; en caso de conflicto se crean “Overlay patches” que acostumbran a tardar más que los “merge patch”.
- Los CPU’s se instalan siempre sobre la versión base, así que tendremos un CPU especifico para la 10.2.0.4, otro para la 10.2.0.5, otro para la 11.1.0.6, etc. y no modifican la versión de los binarios. Los PSU se pueden instalar sobre la versión base (las anteriores) o sobre otro PSU, y éstos si aumentan el numero de versión (en el quinto digito). Por ejemplo podemos aplicar el PSU 10.2.0.4.3 sobre unos binarios que ya dispongan del PSU 10.2.0.4.1
- Podemos aplicar un PSU sobre unos binarios a los que hayamos aplicado anteriormente un CPU con fecha anterior pero no a la inversa, ya que, como hemos comentado, los CPU solo se pueden aplicar sobre versiones “base” (que el quinto digito no exista). En realidad es posible pasar de aplicar PSU’s a aplicar CPU’s, pero es complicado y requiere de ayuda por parte de Soporte Oracle; Oracle no lo recomienda.
- Finalmente los CPU’s y PSU’s solo existen para plataformas Unix/Linux. Para los entornos Windows existen otro tipo de agrupaciones de parches llamados “bundles” que proporcionan las soluciones a los mismos bugs que los PSU’s.
Tanto los CPU’s como los PSU’s han sido probados en profundidad por parte de Oracle y se recomienda su instalación. No obstante, no deberemos dejar de realizar pruebas en nuestro entorno y planear su instalación de manera detallada y, a ser posible, periódica. En la siguiente imagen vemos los pasos recomendados por Oracle para la instalación de un CPU:
Imagen extraída del “whitepaper”: Oracle On Demand Best Practices Critical Patch Update
Un recorrido similar a este se seguiría para el entorno productivo una vez llegamos al “Ready to Patch Prod”.
A grandes trazos:
El CPU permite más flexibilidad (se puede aplicar parcialmente) y es de menor tamaño (hay menos cambios y por tanto menor riesgo, requiere menos pruebas). El PSU actualiza el sistema contra mas BUGS, aportando un mayor nivel de seguridad. Somos nosotros los que deberemos decidir cuál es el que más nos conviene.
Finalmente, y ya en el terreno de las opiniones personales:
Es una buena práctica instalar estos parches. Personalmente me decantaría por los PSU’s (en las instalaciones nuevas acostumbramos a aplicar el ultimo disponible en todos los productos que dispongan de ellos), pero no deberemos confiar la “seguridad” de nuestras BBDD y servidores de aplicaciones sólo a estos parches.
La monitorización de los sistemas, la auditoria de las acciones realizadas y las políticas de passwords (cambio, caducidad y bloqueo de cuentas) deberían ser también nuestra prioridad, en especial en los entornos que contengan datos confidenciales o protegidos por la LOPD.
Son múltiples las ocasiones en que nos encontramos con sistemas en que los passwords no se cambian de manera periódica o incluso siguen vigentes los usados durante la fase de puesta en marcha de los sistemas, sistemas en que las tablas con datos confidenciales no se monitorizan o sistemas en que existen usuarios con muchos más privilegios de los necesarios.
Tal vez la mejor opción sería ir mejorando en ambos flancos: la seguridad del propio software y la que nosotros aportamos con el correcto uso de las herramientas.