5 jul 2011

PoC: Seguridad por ignorancia, un ejemplo práctico

Buenas a todos, hoy os quería contar en el blog uno de esos casos curiosos del mundo de la seguridad informática, en concreto un ejemplo de lo más ilustrativo sobre lo que es seguridad por ignorancia.

El caso que os contaré es de una organización bastante grande, en la que ponen mucho empeño en esto de la seguridad, aunque en ocasiones sean más las ganas que las buenas ideas llevadas a la práctica (e ignoren algún aviso que han recibido...).

En dicha organización, como en muchas otras, se adquieren de manera legal licencias por lotes de una gran cantidad de software. Dependiendo del acuerdo, estas licencias se pueden utilizar en uno o varios equipos, pero siempre se suelen comprar para su uso dentro de la organización. Ahora bien, ¿cómo verificamos que no se instala alguna de estas licencias en el equipo de alguien que no es de la organización?:

  1. CAU, administrador, etc. Con políticas: En algunas organizaciones que tienen integrado directorio activo se limita a nivel de políticas la instalación del software (¿aunque esto para muchos no es problema verdad? };-P), y es el CAU el único que debería tener los permisos necesarios para instalarlo, y por tanto el único en tener las contraseñas de las licencias del software.
  2. Organizaciones sin políticas: Otras organizaciones no configuran ningún tipo de política (tienen fe de que los usuarios no instalen dicho software pirata y con posibles regalitos). Y si el usuario necesita una licencia de dicho software, al igual que antes el CAU se personaría con la contraseña para instarlo en la máquina.
  3. Organizaciones vagas: Otras organizaciones, algo más vagas, prefieren dar las contraseñas y el software a los usuarios, y confiar en su buena fe. Y ellos son quienes instalan el software en los equipos de su oficina (¿y en los de su casa...?)
  4. Organizaciones con seguridad por ignorancia: El caso que da pie a este post. Se trata de organizaciones que quieren implementar medidas de seguridad, y desarrollan una pequeña aplicación que lance el software introduciéndole la contraseña de manera automática y limitando su instalación a equipos que están en la organización. ¡Genial, así se deben hacer las cosas!, pero la pregunta es ¿y como sabes que esos equipos son de tú organización y no son, por ejemplo, de la casa de un usuario?:
  • Se puede registrar la MAC de la tarjeta de red de todos los equipos de la organización, algún id que sea único del HW del equipo, por ejemplo un disco duro, etc. y verificarlos para dar acceso a la instalación del SW.
  • Se puede verificar que el equipo está dentro en la red de la organización de alguna manera segura. ¿Pero sabemos lo que es dar acceso de manera segura?

En esta organización pensaron que para comprobar que un equipo estaba en la red, era tan sencillo como solicitarle un archivo con la contraseña a través de un recurso de red para poder realizar la instalación, bien. De esta manera solo podrían acceder los equipos de la red. Para poder instalar un software, era necesario ejecutar un fichero "instalar.cmd" que contenía algo parecido a lo siguiente:

@echo off"\\RUTA DE RED\Aplicaciones\Microsoft Office 2007\SETUP.EXE" /adminfile "\\RUTA DE RED\aplicaciones\Microsoft Office 2007\inst.msp"

Imagino que sabéis por donde voy. como se puede ver se trata de un fichero de msdos, que comienza con "echo off" para no mostrar los mensajes por pantalla y que ejecuta un comando con unos archivos situados en la RUTA DE RED. Este comando permite importar un archivo de configuración (el que lleva la extensión .msp) al programa de instalación SETUP.EXE. De manera que se puede modificar fácilmente el instalador, por ejemplo para cargar la clave, como es el caso. Tenéis más información sobre el tema aquí.

En el caso de la organización, los archivos que aparecen en instalar.cmd son accesibles por el usuario desde la ruta de RED. Por lo que bastaría con traernos dichos ejecutables a la ruta donde se encuentre el software en nuestro equipo, y sustituir las rutas de RED del fichero por las de nuestra máquina, para poder instalar el software en cualquier máquina fuera de la intranet. Quedando el fichero instalar.cmd de la siguiente manera:

@echo off "SETUP.EXE" /adminfile "inst.msp"

Y ya tenemos nuestro instalador funcionando desde fuera de la red de la organización :)

 

Como podéis ver, este sistema de seguridad se basa en que el usuario no se moleste en mirar el contenido del fichero "instalar.cmd".

¿Y vosotros como limitáis la instalación de software con licencias por lotes fuera de la organización?

¡saludos!

2 comentarios: