El 31 de Octubre del 2005, anónimamente fue liberada una prueba de concepto del código fuente de PL/SQL de un gusano que afecta a Oracle en la revelación total por lista de correos. El gusano está usando el paquete utl_tcp para encontrar otras bases de datos Oracle en la misma sub-red y usa enlaces de bases de datos privadas para conectar a bases de datos remotas. El payload es inofensivo (creación de tabla llamada x en la base de datos remota) pero puede ser cambiado fácilmente.
La versión inicial del gusano debe ser iniciada en la base de datos manualmente pero esto es posible por usar la característica glogin.sql de sqlplus para hacer esto sin el conocimiento del (base de datos) usuario.
Análisis del código:
- Obtiene la dirección ip actual con utl_inaddr
- Hace un loop vía todas la direcciones en la red en el mismo rango de direcciones (xx.yy.zz.220 – xx.yy.zz.216)
- Envía un estado tns listener vía utl_tcp hacia el puerto 1521.
- Recupera el identificador de la base de datos (SID).
- Construye un enlace privado a bases de datos usando el SID con alguna combinación común de usuario/contraseña (system/manager, sys/change_on_install, dbsnmp/dbsnmp, outln/outln, scott/tiger, mdsys/mdsys, ordcommon/ordcommon).
- si es satisfactorio crea una tabla llamada X sobre el servidor de base de datos remoto.
- Continúa el loop (2.)
Protección:
1. Cambiar la contraseña por defecto en toda la base de datos (test/development/education/production).
2. Revocar el privilegio “CREATE DATABASE LINK” de el (defecto) rol CONNECT (sobre Oracle 10g Rel. 1).
3. revocar la admisión pública (public grant) del paquete utl_tcp si no es usado.
4. revocar la admisión pública (public grant) de utl_inaddr si no es usado.
5. Proteger el TNS listener con una contraseña dificultosa. En Oracle 10g deshabilite siempre la autenticación OS local y use una contraseña difícil.
6. Cambie el puerto por defecto del TNS listener de 1521 a un puerto diferente.
Se recomienda a nuestros lectores realizar los cambios necesarios para que no sean afectados por el gusano.
Mayor información está disponible en:
http://www.red-database-security.com/advisory/oracle_worm_voyager.html
http://lists.grok.org.uk/pipermail/full-disclosure/2005-October/038290.html
http://www.red-database-security.com/software/checkpwd.html
Cesar Llanos, MCSE MCSA
Departamento Especializado en Seguridad - Internet