Grave error en VMWare muestra fragilidad de modelo propietario

El día de hoy, múltiples servidores que usan la version VMWare ESX 3.5U2 (la última versión disponible), no podrán arrancar debido a un error en el sistema de licencias de WMWare que detendrá todos los servidores virtuales que estén usando el popular software, según he podido leer en el blog de Matthew Marlowe. Las soluciones propuestas por el momento son no reiniciar ningun server virtual hasta que el parche éste disponible, VMWare ha ofrecido subsanar el problema en 36 horas. Y si por alguna razón se debe rebootear el sistema, una alternativa es cambiar la fecha a el 1 de agosto, o cualquier otra fecha anterior al día de hoy.

La pregunta es, ¿por qué usar un software propietario cuándo hay otro equivalete Open Source?, al parecer el mito de que los productos pagados son de mejor calidad aún pesa demasiado en la mente de muchos jefes del área informática de muchas empresas. Como comenta Marlowe en su blog, el dueño del software es el dueño de tu servidor, si quiere incluso podría a voluntad apagar tu servidor si quisiera. De alli la importancia de proyectos Open Source como VirtualBox (recientemente adquirido por Sun Microsystem) y Xen (adquirido por Citrix), que traen el balance al mercado de la virtualización.

Lo mismo que ha ocurrido con VMWare pasa con Microsoft y sus dos productos estrella (Windows y Office), toda la data que se produce usando esa plataforma esta amarrada a los caprichos de Microsoft y su abusiva política de precios. Espero que éste tipo de eventos contribuyan a crear conciencia en los jefes del  áreas informática que piensan que usar Open Source es una medida altruista, pero no práctica para los negocios, sin embargo no ven que usar Open Source es la única vía si deseamos mantener el control sobre nuestra data.

Windows Vista es tan inseguro como sus predecesores

En la última conferencia de hackers en Las Vegas (Black Hat), mientras todos los reflectores se enfocaban en Dan Kaminsky y su desubrimiento de una falla en los servidores DNS de cacheo, que de acuerdo a los medios pudo haber significado el fin de Internet (sobre ese tema posteare luego). Nadie ha prestado atención a un descubrimiento que ha hecho que la inversión de miles de millones de dólares por parte de Microsoft para mejorar la seguridad de Windows Vista y Windows 2008 a los largo de todo éstos años sea simplemente inútil.

De acuerdo a una nota publicada por SearchSecurity, los investigadores Mark Dowd de IBM Internet Security Systems (ISS) y Alexander Sotirov de VMware Inc., han descubierto una forma de saltar las dos mayores protecciones hardware/software que Microsoft ha incluído en Windows Vista y 2008, la ASLR (Address Space Layout Randomization) y la DEP (Data Execution Prevention), sin ese tipo de protecciones Vista es tan vulnerable a ataques externos como sus predecesores.

Aquellos que deseen leer el documento presentado por los dos investigadores pueden descargar el PDF desde aquí.

Lo importante del descubrimiento de Dowd y Sotirov es que no se basa sobre una vulnerabilidad, sino sobre la forma como Windows Vista trata los objetos .NET o ActiveX, osea aprovecha un fallo de diseño por parte de Microsoft, de esa forma cualquier vulnerabilidad que se descubra, podría usar esta técnica para subir troyanos a Vista a través del browser. Usando la técnica propuesta por los investigadores un atacante remoto podría descargar en la máquina afectada cualquier tipo de archivo, en cualquier localización y asignarle cualquier privilegio, con lo que Vista no presenta ninguna ventaja real con respecto a seguridad frente a Windows XP, y aún conserva todos los extras que le ha puesto Microsoft que lo vuelven terriblemente lento.

Muchas de las incompatibilidades y problemas que presenta Vista son el resultado de la "elevación" del nivel de seguridad a través de ASLR y DEP, la primera es una técnica de software que asigna aleatoriamente la memoria a los programas, librerias y espacios de datos, de esa forma es muy difícil para un atacante corromper la memoria y ejecutar código arbitrario en Windows Vista, al menos eso era en teoría hasta ahora. La segunda DEP, era un protección a  nivel de hardware que impedía que porciones declaradas como memoria de datos, sean usada para redireccionar el puntero de ejecución y de esa forma coneguir que se ejecute código que fue cargado originarlmente como datos, éste tipo de ataque es muy usuada cuando se inyecta código dentro de una imagen o video, en teoría DEP, protegía a Vista de éste tipo de ataques, lamentablemente ya no más con el descubrimiento de Dowd y Sotirov.

Me pregunto por qué los medios no cubren con igual extensión ésta tremenda falla en el diseño de la seguridad de Vista y Windows 2008, y deben ser los pequeños blogs y entusias quienes alerten sobre el problema a la comunidad. Por el contrario la falla que encontro Kaminsky ha estado en todos los medios masivos. Supongo que ese es otro de los misterios de éstos tiempos modernos.

Ingeniería social la mejor forma de hackear

En éste tiempo de Web 2.0, donde todo lo social y viral puede llegar a propagarce en millones de PC en pocas horas, no cabe duda de que la ingeniería social es la mejor forma de propagar virus y troyanos por la red, el ejemplo más reciente ha sido un gusano que se esta propagando por la red anunciando un ataque militar de USA a Iran, aprovechando el tremendo revuelo que causo en los medios y sobre todo en los mercados la última prueba de misiles balísticos realizada por Iran. De acuerdo a Robert Vosami de CNet estamos en medio de una epidemia más de spam que propaga este gusano aprovechando el interés que pueden tener las personas por un ataque contra Iran.

No hace mucho también recibí un e-mail en mi cuenta de gmail donde se anunciaba la guerra entre Perú y Chile por el problema de los límites marítimos y al igual que en el caso de los e-mail del supuesto ataque a Iran se usaba el nombre de una fuente de noticias seria y se ofrecía un link para leer más detalles de la noticia. Ese link era el que infectaba el PC de la víctima y propagaba más e-mail envenenados a su listas de contacto.

Así que para ser un hacker y crear tu propia botnet, no debes de saber mucho de informática, ya que bastan $500 para comprarle a los hackers rusos un gusano (worm) que cuenta hasta con panel de control. Sólo se debe de contar una historia creible, pero sorprendente y además ayuda ser ducho en el Photoshop pues una imagen convence más que 1000 palabras.

Volviendo al gusano que reportó CNet, los correos anunciando el ataque de USA a Iran provienen de éstos servidores:

  • statenewsworld.com
  • morenewsonline.com
  • dailydotnews.com
  • dotdailynews.com
  • newsworldnow.com

Como dijo Kevin Mitnick, el hacker más conocido de la era Internet, la mejor forma de hackear un sistema es con ingeniería social, pues aunque el software/hardware se puede asegurar, es en última instancia el elemento humano y su entendimiento de las políticas de seguridad de una empresa lo que determinará la vulnerabilidad o no de un sistema.

PHP Suhosin excelente patch de seguridad para servidores compartidos

Debido a la naturaleza colaborativa del desarrollo de PHP (hay decenas de programadores involucrados de distintas regiones del planeta), es muy difícil que errores en la programación de PHP en sí mismo sean detectables, incluso para los programadores del PHP Core, y por ello se introduce algunas veces errores en funciones de PHP que pueden permitir a un atacante remoto escalar privilegios en el server, o instalar troyanos aprovechando un buffer overflow en alguna función de PHP. Para tratar de contener éste tipo de fallas es que existe un proyecto llamado Suhosin, que se encarga de proteger a los usuarios de PHP de vulnerabilidades conocidas o desconocidas que forman parte del código PHP en sí mismo. Para lograr tal fin Suhosin viene en dos partes que pueden utilizarce en forma separada o conjunta. La primera parte es un pequeño parche al PHP Core (el núcleo del lenguaje), que implementa unas cuantas medidas de protección básica de bajo nivel contra vulnerabilidades debidas a buffer overflow o problemas con el formato de los string (cadenas de texto). La segunda parte de Suhosin es una poderosa extensión que implementa medidas de protección adicionales como puede ser bloquear o desactivar funciones de PHP en caso de necesidad.

Si se usa un hosting compartido, es una muy buena idea instalar Suhosin, porque jamas uno puede estar seguro del código de un cliente que paga por hosting casi nada, y que le resulta extremadamente fácil saltar de un hosting a otro debido a la tremenda oferta existente. Debido a ello no le presta mucha atención a la seguridad de su código.

Adicionalmente a instalar Suhosin, una muy buena medida complementaria es deshabilitar la función eval() de PHP que abre las puertas a que cualquiera que consiga inyectar código en un script PHP puede ejecutar código PHP arbitrário sobre el server. Muchas veces themes o plugins de Joomla, Mambo o WordPress, traen troyanos ocultos por una función base64_decode(), que es luego ejecutada por eval(), hable sobre ello en diciembre del año pasado en un post de éste blog llamado "Troyanos en themes de WordPress", pero parece que la técnica se ha vuelto tan popular para ocultar troyanos que es aplicada en todo script que pretende infectar un webserver.

Entonces para evitar problemas debemos instalar Suhosin y deshabilitar eval(), de esa forma si alguien tiene un site infectado nos llamara para reportar que "el server tiene un error", porque su página no se ve bien. Para conseguir el objetivo anterior debemos de hacer éstos simple pasos en nuestro Debian (en Ubuntu sólo añadir sudo delante de cada comando):

# apt-get install php5-suhosin
# echo "suhosin.executor.disable_eval=On" >> /etc/php5/apache2/php.ini
# /etc/init.d/apache2 force-reload

Y listo, ya tenemos a nuestro servidor un poquito más protegido que antes, ahora al menos los troyanos no se ejecutaran tan fácilmente, los forzamos a ser más visibles. Complementariamente siempre es buena idea deshabilitar las fuciones que permiten ejecutar comandos del sistema con los privilegios del usuario del webserver (en Debian www-data), para ello edite el archivo /etc/php5/apache2/php.ini busque la línea que diga "disable_functions" y agregue la lista de funciones shell que desea deshabilitar separadas por comas, una buena idea es poner éstos valores:

disable_functions = exec, system, escapeshellcmd

No hay que olvidar reiniciar el apache, para que los cambios en el php.ini tengan efecto. Espero que toda esta información les haya sido de utilidad y los ayude a proteger sus servidores web.

Colección de exploits

Nunca he creído en la seguridad por oscuridad, es decir, si nadie sabe donde está el punto débil, nadie puede atacarlo. De ser cierta esa aproximación Windows debería de ser el sistema operativo más seguro del planeta, y sin embargo ese no es el caso. Por eso es que yo creo en la política de que muchos ojos pueden detectar los errores más fácilmente y corregirlos en cuánto se detecten.

Últimamente he visto en varios de los websites que hosteo en mi servidor un alarmente aumento de hacking exitoso, aunque muchas veces se debe a problemas de uso, más que a problemas del servidor en sí. Es muy común sobre todo si se hace uso de CMS como puede ser Joomla o WordPress, el tener directorios con privilegios 777 (osea acceso total) que son accesibles directamente via web, para permitir al control panel del CMS instalar themes o plugins, ésto que puede resultar tremendamente cómodo para el usuario, es ciertamente un gran riesgo de seguridad para la aplicación en sí; pues aprovechando esa facilidad cualquiera puede escribir sobre dichos directorios, para luego hacer que el server haga otras cosas.

A veces no es necesario que exista ese error en la configuración de privilegios, un CMS no actualizado y no parchado abre la puerta a otro tipo de ataques como inyección de código a través de SQL (MySQL en muchos casos), y otro tipo de ataques, he encontrado un website llamado milworm, donde como su nombre lo indica hay miles de troyanos y exploits para todas las plataformas (Linux/Windows), además de tutoriales (muchos de ellos en video), que muestran como hacer hacking de aplicaciones web.

Recomiendo que se den una vuelta por dicho website, especialmente si son webmasters o tienen a su cargo algún servidor web y vean por Uds. mismos lo fácil que es hackear un website, y se entienda que la seguridad no es un objetivo a cumplir, sino por el contrario es una filosofía de vida, especialmente si uno se dedica al diseño o administración de websites.

Una forma mucho más segura de permitir el que se suba contenido a directorios publicamente accesibles a través del web server, es usar el FTP (que requiere validación al menos), y si uno es paranoico o se tiene información realmente valiosa usar el sFTP, para ello hay que re-escribir nuestros scripts para hacer uso de dichas funciónes ftp, o alterar el código de nuestro CMS para no usar un simple HTTP/POST para subir archivos al server, sino hacerlo valiendonos de un protocolo que requiera validación como lo es el FTP.

UPDATE: Buscando en diversos websites encontre que los grandes proveedores de contenido social como LiveJournal, Blogger, Vox, etc., pues sencillamente tienen una red de servidores de almacenamiento estático que no corre ningun script sólo sirve de almacenmiento para los videos, fotos, archivos mp3, etc.; y se accede a ellos a través del protocolo WebDAV, lo cuál me parece una idea bastante interesante para explorar.