miércoles, marzo 12, 2008

Exploits y Exploits

Hola a todos!

Como sabéis a mi me gusta todo lo que tiene que ver con la web y por eso me molan ver los exploits y las cagadas en la web, pero hay que reconocer que esto a veces es un poco irrisorio.

No deja de sorprenderme que sigan apareciendo exploits como estos que destrozan la seguridad de cientos de miles de servidores web permitiendo que los "malos" hagan su agosto llenandolos de "juguetitos" para hacer las delicias de esos niños que andan felices y despreocupados por los campos del señor Internet.

Este es un exploit publicado para un componente de Joomla la semana pasada. Encontrar sitios vulnerables es tan fácil como usar Google.

Exploit en Milw0rm

Claro, esto se hace público y ale, fiesta!. Todos los que lo tengan acaban de ser agraciados con un bonito marrón XXL. Así de divermegachuli.

Lo que me pregunto es, ¿no hay ningún control de calidad creado por Joomla o Mambo para validar el código de sus componentes, es decir, que el software sólo permita poner componentes validados? ¿o algún proceso de validación de componentes?. Joomla tiene un ciclo de vida basado en tres fases y he visto información para los desarrolladores en la web en la Wiki, pero no recomendaciones de seguridad o tests a probar, es decir, si están haciendo algo, no lo están haciendo correctamente. Si algún desarrollador quiere recomendaciones puede usar OWASP, pero en Joomla no se ve nada especialmente relevante al respecto.

Spectra puso la política de firmado de drivers no como una forma de "hacer un negocio" que no sólo no lo es sino que le da montones de quebraderos de cabeza, sino como una forma de comprobar y garantizar la calidad de los drivers (amén de evitar a esos maliciosos amigos que gustan de colocarse en el anillo interno).

En contrapartida de a esos exploits de ciclo de vida rápido, es decir, aparecen rápido, se despliegan como una plaga haciendo mil destrozos y se corrigen en unos minutos en el código madre (aunque perduran durante una larga long tail en el Internet) se ecuentran los de proyectos maduros.

Recientemente me leía las explicaciones de cómo funciona el exploit del vmsplice() que permitia un ataque local para ser root y su corolario. Las lecturas son interesantes a la vez que densas, de esas que gustan a las malas bestias de la seguridad, en las que hay que jugar y divertirse con C, el sistema operativo y el hardware del sistema.

En conclusión, existen palabras, adjetivos y un montón de argot para diferenciar a unos de otros, yo no voy a entrar en valoraciones, pero hay que reconocer que joder, no es lo mismo follarse un kernel que cepillarse un componente de Joomla, por mucho nombre chulo que se pongan...

Saludos Malignos!

16 comentarios:

  1. Una pregunta...Joomla es el rey de todos los desastres, Drupal es igual de caotico??? Yo me iva a montar una web con un CMS para la asociación de vecinos de mi pueblo, tenia pensado usar Joomla perooooo... mejor me lo pienso dos veces.

    Joer ahora replantearme que CMS a usar :(

    ResponderEliminar
  2. La administración de un Joomla es tan fácil como encontrar un fallo de seguridad en cualquiera de sus componentes.

    ResponderEliminar
  3. cada vez que veo cosas de estas me doy cuenta de todo lo que me queda por aprender...

    y me deprimo.

    ResponderEliminar
  4. ¿Pero eso es un componente oficial de Joomla o un componente que ha hecho alguien por ahí?.

    Lo que he encontrado de primeras es esto:

    http://ewriting.com.ar/content/blogcategory/88/59/

    El proyecto parece bastante abandonado.

    De todas maneras, no se me ocurre de que manera se podría tener un control de calidad sobre extensiones que escribe el primero que pase por ahí. Si a alguien se le ocurre utilizar algo que no tiene demasiado soporte y está desactualizado, es su responsabilidad.

    ResponderEliminar
  5. Sí, pues aparece alguno que lo usa buscando en google.... y quien dice alguno dice más de 100.000.

    Hombre, unas guías de desarrollo seguro, unos tests de prueba a realizar, un control de seguridad....no se.. algo.

    ResponderEliminar
  6. Si este error esta en productos Microsoft es un backhole y salen con los tapones de punta, en cambio en la comunidad linux es un error de seguridad que se soluciona en un ratito... total, que le podemos pedir a un software gratuito... El kernel vive auditado pero el exploits de root hace años que está sin salir a la luz... siempre me queda la duda si el código realmente esta auditado y siguen lineamientos mínimos de seguridad.

    ResponderEliminar
  7. También hay gente que sigue usando Windows 98 o el 95, recordemos que Linux desbancó a Windows 98 hace 4 días, :P.

    Hombre, unas guías no estarían mal, pero dudo que nadie se las leyera.

    Para inthemix2002:

    De verdad, la afirmación tipo: "si lo llega a hacer Microsoft esto, pero si Linux lo disculpamos" ya está muy vista, y además, no es así, seamos serios. Y lo de que el exploit existía desde hace años..., cuando se dice algo tan grave es costumbre aportar pruebas, enlaces, sitios donde sea afirme de forma tajante que ese exploit se usaba desde "hace años"(porque no es lo mismo que existiera un error a que existiera la forma de explotarlo) si no es como si yo te digo que cualquier error de seguridad de Windows no lo arreglaron durante años porque no les dio la gana, sin mostrar prueba alguna, sólo mi careto a lo Dans, ¿no?.

    ResponderEliminar
  8. Me exprese mal, la posibilidad de explotar este crater de seguridad esta desde junio del 2006 o sea desde la version 2.6.17 del kernel.

    ResponderEliminar
  9. Si, pero una cosa es que exista el bug, y otra que exista el exploit. Según los enlaces sobre el tema que adjunta Maligno, hacer el exploit no está al alcance de todos y se necesita un cierto nivel de conocimiento del kernel, y requiere, parece, cierto ingenio, ya que aglutina el encadenamiento de 3 bugs separados.

    Pero vamos, como bien ha indicado Maligno, nada que ver con los errores tan patéticos que se ven en muchas aplicaciones web.

    ResponderEliminar
  10. el tema de los exploits locales, son bien jodidos, hacer el exploit de algunos y el estudio para consegior hacerlo essta jodido, pero siempre hay alguien que los hace o te deja bastantes datos para intentarlo tu, ademas con linux cuentas con el codigo en claro para ayudarte, y eso al juntarlo con uno web pues se puede hacer de todo, pero bueno cuando virtualicen los servidores, tocara buscar fallos en ese software antes que en linux, windows, etc. A ver como evoluciona la seguridad, bueno chema a ver si dejas alguna info de la seguridad que traera el ultimo sp d windows xp contra los exploits :P

    ResponderEliminar
  11. @trancek: Puedes leer la serie de articulos de "Windows Vista SP1" en vista tecnica (http://geeks.ms/blogs/vista-tecnica/)
    que hay un post sobre mejoras en la seguridad.

    ResponderEliminar
  12. Trancek, no entiendo lo de atacar el SW de virtualización antes que el SO virtualizado. Si está virtualizado para tí es transparente. Si te entran en un SO bajo por ejemplo VMWare o VirtualPC, te pueden hacer la puñeta con la info que tienes en ese SO virtualizado, eso es mucho.

    Claro que si además logras saltar al SO que corre la máquina virtual (por dentro), pues realmente lo que haces es atacar varios SO desde una sóla máquina. Pero tal como yo lo veo, que entren en una máquina, ya estás fastidiado, porque ya están en tu red local y pueden atacar otros sistemas, virtualizados o no.

    ResponderEliminar
  13. anonimo:pero lo que dices de atacar el SO primero se esta complicando hacerlo remotamente, y si quieres hacerlo con acceso local, lo van a controlar con software d virtualizacion que sera el que te tengas que saltar primero, me refiero en cuanto a hackeos de webs y tal con el que se consigue acceso al software virtualizado como mucho(todavia hay pocos asi pero bueno ya creceran)

    sirw2p:gracias, no lei el ultimo sobre el sp1, la cosa que de momento soy como los dmas, utilizo mas el xp, estoy a ver que ponen en el sp3, porque cada vez se vuelve mas jodido en el tema que me gusta :P

    ResponderEliminar
  14. Para evitar este problema en parte no hay que usar el prefijo predeterminado mos_ o jos_.

    ResponderEliminar
  15. @alexis, tardar más en descubrir el nombre de la tabla puede ayudar, pero si tiene sql injection como este... cae seguro.

    ResponderEliminar
  16. Seguramente tengan controles de calidad, pero obviamente no han sido suficientes.
    Nunca lo son, por definición. Desde tonterias como el fallo de spectra en calcular que el 2008 es bisiesto en el exchange y sql o las famosas multiplicaciones fantasma del excel, hasta cosas más supuestamente rebuscadas como lo del vmspice del kernel de linux.
    En todos sitios cuecen habas, en joomla puede que sean "habones", que historial tienen.

    ResponderEliminar