Google, una medida de nuestra seguridad
Ya que la cosa se está haciendo popular ("un saludo para meneame xD") decir que este artículo ha sido escrito con el único propósito de enseñar a la gente que NO se ha de hacer cuando se es webmaster. No me hago responsable de cualquier mal uso que se le de a lo que aquí expongo.
Todos sabemos que en Google se pueden encontrar cosas muy interesantes, y no es para menos! Google dispone de una serie de "arañas" que van rastreando todo internet y van listando todas las páginas que existen, y todas las páginas dentro de las páginas. Es un proceso rápido, y, como no podía ser de otra manera, está completamente automatizado.
En los casos que os presento a continuación os voy a mostrar por qué una combinación entre robot de Google que hace demasiado bien su trabajo, y administrador web, que no lo hace tan bien, puede dar como resultado la vulneración de la seguridad y la privacidad de, en ocasiones, hasta cientos de miles de personas, incluso de entidades estatales y militares.
Probad a poner lo siguiente en google: site:*.com ext:sql
Donde "site" se refiere a sitio web, en este caso le hemos pedido que nos busque entre todos los sitos que sean .com, pero también le podríamos pedir que nos busque en uno concreto "puzz******.com" [lo he censurado] por ejemplo os resultará interesante. Este campo lo podríamos no poner, o buscar directamente por otros parámetros. Lo explicaré más adelante.
Y "ext:sql" para pedirle que nos busque una extensión de archivo determinada. Con SQL lo que hacemos es buscar únicamente bases de datos, o copias de estas. Si pusiéramos "ext:pdf", encontraríamos solo dpf.
Como veis, los resultados que arroja la búsqueda son nada más y nada menos que de bases de datos (dumps) que, por alguna razón, están donde no deberían.
No se si sabréis como funciona un Servidor, os lo explicaré antes de seguir. Para servir una página al público desde un ordenador, instalamos un programa. Hay muchos, dos ejemplos muy populares serían "Xampp" y "Apache". Para poder servir de toda la complejidad que una página web necesita, esos servidores tienen en sí muchas carpetas, no obstante, hay algunas públicas, y otras no. Las públicas se suelen llamar httpdocs, como se ve en la foto, o, en otros casos public_html, entre otros.
En nuestro caso, esos dumps, no son otra cosa que copias de seguridad de las bases de datos de una web, ¡¡que se encuentran en la carpeta pública!! Estas bases de datos pueden contener desde información trivial, hasta información de contacto, o incluso los usuarios, mails y contraseñas del administrador y todos los usuarios.
Esto por sí solo, representa una vulneración en cuanto a la seguridad de la web y los datos que han sido proporcionados a esta, pero se puede agarbar si el administrador del sitio no ha encriptado toda la base de datos. Por ejemplo, en esta base de datos podemos ver, nada más y nada menos que los usuarios y contraseñas de 430000 personas, así, sin encriptar ni nada. Buscad "puzz****** ext:sql". Lo que encontráis es esto:
https://****legems.com/twodee_games.sql
[lo he censurado, pero podeis sumar 2 + 2 xD]
Pensad en cuantas personas utilizan comúnmente, la misma contraseña para todo. Tenemos el mail, y tenemos la contraseña que seguramente utilizará para el mail. Y seguramente tendremos cuentas de todo tipo asociadas a ese mail, desde la cuenta de la universidad, hasta la cuenta del banco.
Pero... vayamos un poco más allá, que pasaría si en esa base de datos buscáramos (Control +F xD) ".gov". Pues si, lo que encontramos son cuentas de correo gubernamentales, que no se porque cojones han utilizado para registrarse en mierdas así. Si empezáis a buscar por abajo podéis encontrar la cuenta de correo de una empleada del ministerio de trabajo de EEUU. Si buscáis por ".mil" podéis encontrar unas cuantas cuentas de militares, y si buscáis por "admin@" podéis encontrar un par de cuentas de, administradores, que han utilizado sus cuentas de correo de administrador para registrarse (despedidos tendrían que estar todos ellos).
Si queréis podéis utilizar esa base de datos para buscar la frecuencia de algunas contraseñas, probad a buscar (123456) y alucinareis.
Por supuesto esta es una vulneración terrible de la seguridad de muchos usuarios, y ya he mandado un mail al fbi con el link a la base de datos, ya que la mayoría de los usuarios, por contraseñas muy fuertes que utilicen, no pueden hacer nada si la base de datos está sin encriptar.
Bases de datos sin encriptar y de manera pública podríamos decir que es una de las peores cosas que le podemos hacer a nuestros usuarios. No obstante, en algunas ocasiones, hay webs que encriptan las contraseñas dentro de las bases de datos, y se les cuela el dejarlas públicas. En ese caso, no tendremos la contraseña de manera directa, sino que tendremos el hash (contraseña encriptada), seguramente con algoritmos como md5 o sha1. Para buscar un ejemplo de estas báses de datos lo mejor podemos, o probar suerte buscando por los parámetros que os enseñé antes, o calcular un hash de una contraseña suficientemente frecuente, como para que aparezca en la mayoría de las bases de datos.
Aquí teneis un calculador: http://www.fileformat.info/tool/hash.htm Podéis meter en el recuadro "Target text" la contraseña a calcular, y darle a botón hash. Para la contraseña "123456" que según algunos estudios, es una de las más frecuentes, el hash md5 (que es el más utilizado, aunque sha1 sea más seguro y se esté implementando) para esa contraseña es "e10adc3949ba59abbe56e057f20f883e". Vamos a buscar ese hash en Google de la siguiente manera:
e10adc3949ba59abbe56e057f20f883e ext:sql
A continuación se nos mostrarán todas las bases de datos que han sido puestas donde no deberían con una contraseña que corresponde a ese hash. Animaos a calcular los hashes de las contraseñas que soléis utilizar y junto a vuestro username (o vuestro mail), podéis ver si algún sitio tiene vuestros datos de forma pública. Por ejemplo
Allmy e10adc3949ba59abbe56e057f20f883e ext:sql
Sin entrar mucho en password cracking os diré que con una gráfica GTX560M de portátil una contraseña con números y letras de 7 caracteres en md5 se puede calcular en unos minutos. Para hacer esto no hay otra manera que no sea lanzar todas las passwords posibles, con todas las combinaciones posibles. Estamos hablando de una gráfica de portátil, imaginaos lo que puede hacer una grande, o 4 grandes juntas, o una instancia de gráficas en Ámazon, una empresa, o un gobierno. Es por esta razón por la que las passwords han de ser largas. Sha1 es algo más fuerte.
MD5:
SHA1
Pero, aún una password larga, puede ser vulnerada muy fácilmente, si esta corresponde a una serie muy común, como por ejemplo 123456789, o si la contraseña es una palabra que se puede encontrar en el diccionario. ¿Por qué? Cuanto la gente empezó a encriptar las contraseñas con algoritmos que no permitían ser revertidos, y que no tenían una contraseña, lo primero que se hizo fue, coger el diccionario de lengua inglesa, y una base de datos con las contraseñas más frecuentes, y calcular los hashes de cada palabra, y cada contraseña. Por tanto, tenemos en internet grandes bases de datos con contraseñas ya calculadas (bien por ser demasiado frecuentes, por aparecer en el diccionario, o porque alguien las ha metido).
Hay cientos de bases de datos, esta es una bastante decente: http://md5.rednoize.com/ Vamos a coger nuestro anterior calculador de hashes, y vamos a calcular el hash de "University" como guiño a censored. Obtenemos el hash 50c60ac437e4d4ef19c77bdca5bbcf3b. Si procedemos a buscarlo en rednoize, vemos como, efectivamente, nos devuelve la palabra "University". Vamos a hacer lo mismo con una contraseña más dura, por ejemplo " ()hululu=5432", cuyo hash es "3015d599c9e98fa5ea94947908db5061". Si procedemos a comprobar si está en la base de datos obtenemos que ?hash not found?. Esto significa que la contraseña es, al menos, un poco segura. Ahora ¡¡probad vuestras contraseñas!!
Como nota adicional he de decir, que estas vulneraciones de seguridad, y esas contraseñas no seguras, suelen serlo menos en países asiáticos. ¿Por qué? Pues bien, la mayoría del software solo está preparado para procesar caracteres puramente occidentales. Os imagináis a vosotros recordando una contraseña en chino cuando, seguramente, ni tengáis instalada esa opción? ¿No verdad? Pues es por eso por lo que las páginas web chinas, generalmente, utilizan solo números en sus contraseñas. Por lo tanto, cuando lo que tienes son hashes de usuarios chinos, sabes casi con total seguridad, que la mayoría de las contraseñas van a ser numéricas, con todo lo que ello implica. En vez de probar todas las combinaciones posibles para contraseñas con todos los números y todas las letras (y todos los caracteres), tener que hacer combinaciones solo con los números, se convierte en algo mucho más fácil y rápido.
Por supuesto, podéis recurrir a otros buscadores como bing para encontrar resultados diferentes, pero igual de interesantes.
Manitas si queréis segunda parte