RSS |

Blog de Omar

Just another WordPress weblog

Advertisement

Posts Tagged ‘ datos ’

Cuando tenía 16 años, cuando estaba por terminar el último año de colegio y cuando algunos de mis compañeros de aula lloraban ridículamente en medio de un mar de abrazos de despedida causados por el tan -  pero tan – esperado y épico viaje de promoción, a mi me dolía la cabeza. Siempre creí que tales escenas causaban nauseas en mi, desencadenando un pequeño, continuo y desesperante dolor de cabeza, no paso mucho tiempo para darme cuenta que el verdadero origen era otro, uno que me perseguiría por el resto de mi vida, triglicéridos.

Si señores, triglicéridos, y es que en ese momento a parte de no saber que carajos era eso,  no pude advertir lo jodido que sería llevar esa bendita enfermedad por el resto de mi vida. La verdad, he aprendido a cargar con los triglicéridos, tuve que darle una temprana despedida a las hamburguesas, papas fritas, pollo a la brasa y demás comida grasienta y rica de la  monumental gastronomía peruana, supongo que debe ser algún castigo de los dioses nacer en el país que se dice tener la comida más sabrosa del mundo y no poder disfrutarla en su totalidad.

Nunca se me hubiera ocurrido confesar mi dolencia en el blog, jamás!!! porque va en contra de lo que siempre predico, ya saben …. entre menos sepan de uno es mejor, les estás dando menos armas a todos aquellos que se la pasan jodiendo y pegándosela de valientes detrás de un blog, a todos esos estafadores que gastan su tiempo llamando a mi casa con menos ideas en cada intento (ya inventen otra cosa a parte de que estoy en arrestado en una comisaría por favor) y en general a todo aquel retrasado con problemas y complejos de inferioridad que está dispuesto a joder y a vociferar sus traumas en contra de otros por internet.

He decidido confesar mi enfermedad no porque haya renunciado a mi ideal de seguridad de información, sino porque lo que creí  hasta hace poco una enfermedad conocida sólo por mis padres, familiares y amigos muy cercanos es en realidad de conocimiento de todo el Perú, de los 30 millones de habitantes peruanos, de los casi 15 millones de ecuatorianos, de los 17.5 millones de chilenos, 47.2 millones de colombianos y de los 1,351 miles de millones de chinos que muy probablemente – y para suerte mía – no entienden ni una pisca de español.

Si señores con mucho pesar debo decirles que mis datos, nuestros datos, vuestros datos de análisis clínicos lo puede ver “cualquier hijo de vecino” sin tener mucho -  o casi nada – conocimiento informático.

¿Las vulnerabilidades?

1. El muy “difícil” formulario de ingreso

*************************************************************************************************************
- Haga puño su mano por favor -  dijo la enfermera
- ¿No me va doler, verdad? – dijo el chico temeroso
- Listo, ya terminé, sus resultados estarán en Internet por la tarde. Ingrese a esta página web, su usuario es la primera letra de su nombre más su primer apellido.
- ¿Y la contraseña? – pregunté ansioso, esperando un error escandaloso, un error que me permita escribir un post y me generará una mueca de felicidad.
- La contraseña es simple, coloque su número de DNI y ya está.

*************************************************************************************************************

Así terminó la corta, escueta pero fructífera conversación con la enfermera. Es como sacarse la “Tinka” (lotería peruana que nunca ganaré por simple estadística), que te faciliten la contraseña de todos los usuarios del sistema en tan sólo 02 minutos de conversación. ¿Se dieron cuenta del error, verdad? Si no se dieron cuenta aquí lo explico:

A. ¿Ustedes creen que los usuarios cambian las contraseñas por defecto? Mentira, las personas no lo cambian y menos de sistemas que utilizan sólo una (01) o dos (02) veces al año. La gente es perezosa, tiene tiempo para escribir en Twitter todo el puto día pero no tienen tiempo para buscar el enlace de cambio de contraseña.

B. Tenemos un perfecto patrón de contraseñas, el usuario de acceso es SIEMPRE la primera letra del nombre del cliente sumado a su apellido paterno. No se hagan los santos ahora, acaso no es lo primero que ustedes prueban cuando hacen auditorías y análisis de vulnerabilidades, los patrones más comunes a probar son:

- Nombre de la empresa + año actual. Por ejemplo: Empresa2014.
- Nombre de la empresa + 01. Por ejemplo: Empresa01, a veces también se suele probar: Empresa02
- Nombre de usuario + año actual. Por ejemplo: Opalomino2014.
- Y obviamente están las contraseñas más estúpidas de todos los tiempos: [AQUÍ]

C. ¿De dónde sacamos el nombre y los números de DNI?

Se me ocurren muchos pero muchos lugares donde encontrar números de DNI con sus respectivas personas, voy a colocar sólo dos (02) sitios donde encontrarlos:

Nuestra querida red social: Facebook

Facebook es la versión moderna de la caja de Pandora, entrar a Facebook por la mañanas al despertar es encontrarse con un mundo de sorpresas: relaciones que inician, relaciones que terminan, relaciones que habían terminado y que vuelven a iniciar por décima vez, uno se encuentra con despechados, despechadas, con psicólogos frustrados, con acomplejados que reniegan porque pierden licitaciones, gente que no puede contener sus sentimientos, uno más estúpido que el anterior. Gracias Facebook, eres una fuente inagotable de entretenimiento.

Y claro, en Facebook también podemos encontrar números de DNI con sus respectivos nombres, allí están, listos para ser secuestrados por todo aquel que esté mediamente atento. Si no me creen… miren:

image image

El concurso de una camiseta colombiana presentada por “Jimmy Santi” a través de un programa deportivo y miles de peruanos hambrientos de mundial colocando todos sus datos en Internet. Yo se, yo se, Colombia ha hecho un espectacular mundial pero de allí a que los peruanos se aloquen por una camiseta extranjera me parece -  por decir lo menos – bochornoso y penoso.

Los datos los he cubierto con una barra de color negro pero están en la página de Facebook del programa televisivo, así como estos hay miles de concursos realizados por estos señores y por otros programas y siempre dejan todos los DNI expuestos al terminar el concurso.

En el centro comercial “Wilson”

Peruano que se respeta o al menos limeño que se respeta, ha caído en ese cementerio de computadores malogrados, computadores descuartizados, computadores que han sido rearmados tantas veces como un transformer, computadores utilizados (vendidos como nuevos)  y es que todo  aquel componente informático que busquemos será encontrado en el centro comercial Wilson.

image

Pero no sólo se venden computadores, todos saben que ese rinconcito antiguo y de arquitectura colonial también provee a cualquier – sí escuchaste bien a “cualquier” – transeúnte armado de 40 nuevos soles en su billetera todos los datos financieros, datos de identificación personal y de estado civil de todos los peruanos. Sólo es necesario ir con cara de despistado, preguntarle de manera sigilosa al morenaje que está parado como vigilante en la puerta de la casona, mostrarle con recelo el dinero, negociar el mejor estilo peruano y brindarle tu memoria USB para obtener los datos necesitados.

Hace como un año el amigo de un amigo estuvo por esos lares, no es que haya querido comprar algo de lo que venden, jamás!!! digamos que estuvo  haciendo algo de turismo extremo y le copiaron unos archivos, de hecho le copiaron unas carpetas a su memoria USB, todo por la módica suma descrita arriba. La imagen está distorsionada por obvias razones.

 

dnis

 

 

 

Lo alucinante de esto  es que todo ocurre a vista y paciencia de todos,  además, todos en el Perú sabe que esta información la comercializan sin ningún pudor y nadie hace nada, la ley contra delitos informáticos (Ley Beingolea) y la ley de protección de datos personales, ley 29733, son un saludo a la bandera. 

¿Y como exploto la vulnerabilidad?

De hecho, ya todos los que leen esto deben imaginárselo, cojan el IDE  que más les guste y desarrollen un script que coja los nombres, los números de DNI y utilícenlo como usuarios y contraseña. HTTPLib, URLib y CURL son buenas librerías a utilizar con python y php respectivamente. Allí lo voy a dejar. 

¿Soluciones?

De hecho hay varias y todas muy factibles de aplicar:

  • Generación de clave aleatoria para el primer ingreso. Nadie debería poder adivinar esta contraseña, deberían entregarte la contraseña en un sobre cerrado por ejemplo.
  • Forzar el cambio de contraseña tras el primer ingreso al sistema. (a mi  no me solicitó el cambio de contraseña).
  • Complejidad de contraseñas: caracteres alfanuméricos, por lo menos una mayúscula y por lo menos un caracter extraño.
  • Y, obviamente en la actualidad con todo el malware y mecanismos de hacking que existen, esto no basta pero créanme con eso ya estamos haciendo bastante.

 

2. Mala gestión de sesiones

Aquí no acaba todo, por si no fuera suficiente con todo lo explicado líneas arriba, me terminé yendo de narices al entrar al sistema y revisar mis resultados médicos, que por cierto esta vez tenían buenas nuevas para mí, es decir, los triglicéridos se habían ido a tomar un descanso y yo estaba muy bien. Encontré errores garrafales, me encontré en el terreno de lo incierto no sabía cuantos errores más podría encontrar, errores que bordeaban muy claramente la pelotudez y que hacen que todos los datos con información sensible sean vulnerables.

Iniciemos rápidamente, el análisis:

  • Cualquiera puede cambiar la contraseña de otro usuario

Obviamente lo primero que tocaba realizar después de encontrar ese fallo de seguridad era cambiar mi contraseña, ponerle una contraseña respetable, una contraseña tediosa, rimbombante y que contrastara con la primera ridícula contraseña entregada. Sin embargo me di cuenta que en la parte superior, la URL contenía un código de usuario, entonces supuse que ese era el código interno que me había generado el sistema, un código de cliente. Obviamente estoy tapando la URL (en la imagen inferior) y sólo dejo parte de mi código de usuario.

pass

 

Entonces, se me ocurrió editar la URL y colocar otro código de usuario, sólo seguir la secuencia, es decir, si mi código de usuario termina en 74095 que tal si prueba con un código que termine en 740976 o 74097 y ver que ocurre. Al parecer los desarrolladores  pensaron que utilizando un poco de JavaScript podían evitar que otra persona cambie las contraseñas de otro usuario, de hecho utilizaron el método OPEN del objeto WINDOW pero obviamente esto es fácilmente de bypassear.

 

pass2

Así que decidí cambiar el código de usuario y listo, sistema vulnerable. Resulta que cualquier usuario podría cambiar la contraseña de cualquier otro usuario.

pass4

 

  • Cualquiera puede ver mis exámenes médicos

Al final esto es lo más grave, el error descrito arriba se debe a una mala gestión de sesiones, es decir, al cambiar de página web no existe un pedacito de código de programación que valide si existe una sesión creada por cada usuario logueado en el sistema y que restrinja las opciones de acceso. Entonces, sólo tocaba verificar si los resultados de mi examen los podía ver cualquier usuario o peor aún cualquier persona SIN NECESIDAD de ingresar al sistema.

Abrí otro navegador, copié la URL de mi examen médico y lo pegue con ansias, lo correcto hubiera sido que me redirija a una página de ingreso de credenciales pero lamentablemente mi examen médico y mis triglicéridos son expuestos a cualquiera.

En conclusión, cualquier persona  – sin necesidad de tener un usuario en el sistema – puede ver los exámenes médicos de cualquier otro, dicho de otra manera, todos pueden ver de que enfermedades puede uno sufrir. Malaso!

examen2

 

¿Y , ¿cómo lo hago?

De hecho es demasiado simple, toca coger la URL que tiene una estructura como esta: “http://www.pagina.com/resultado.php?orden=2014000001”, copiarlo en cualquier browser y listo, tienes los resultados médicos sin requerir un usuario y contraseña. Para ver los resultados médicos de otra persona sólo toca ir modificando la serie, es decir, sería algo así: “?orden=2014000002” y luego “?orden=2014000003”, si se dan cuenta los primeros 04 dígitos corresponden al año y luego los siguientes al número de la orden (miren la imagen en la parte inferior) que es un número secuencial.

image

Descargar la página web de resultados con algún script es sumamente sencillo, de hecho aquí les dejo un script de como descargar páginas – en internet abunda información –, obviamente con el script que está en la parte inferior no van a poder descargar realizar ningún ataque, estaría loco si publico algo así.

 

 

Google Hacking

También me pregunte si el crawling de Google había visitado alguno de los sitios web, la imagen en la parte inferior evidencia que Google también conoce el resultado de algunos exámenes médicos, pero lo más grave de todo es que ahora si alguien que encuentra estas URL se dará cuenta que no hay una gestión de sesiones adecuada.

google

 

 

Ley de Protección de Datos Personales, 29733

Mi tesis de maestría es sobre la Ley de Protección de Datos Personales y en la empresa donde trabajo – Kunak Consulting – brindamos consultoría sobre la implementación y adecuación de las empresas a esta ley. La vulnerabilidad encontrada y descrita en este post está totalmente relacionada a este tema, así que toca explicar algunos detalles sobre la misma:

Fuentes:

  • Reglamento de Ley de Protección de Datos Personales: [AQUÍ]
  • Directiva de Seguridad de la Información dada por la Autoridad Nacional de Protección de Datos Personales: [AQUÍ]

Datos sensibles:

La ley indica como datos sensibles lo siguiente:

image

Categorización:

Además, los requisitos como las medidas de control varían dependiendo del tipo de la clasificación de los datos personales, la directiva de seguridad de información indica lo siguiente en este caso (ver imagen inferior) y la clasificación del tratamiento para estos datos personales caen perfectamente en COMPLEJO y CRÍTICO en algunos casos. Por ejemplo, cuando se habla de “en múltiples localizaciones” se hace referencia a la TRANSFERENCIA de información, tema tratado ampliamente en la ley y cuando se habla de “respaldada por una norma legal”, pues como sabrán es obligatorio por las empresas que los empleados de una organización sean sometidos a exámenes preventivos anuales y finalmente los datos sensibles, hacen referencia a información sobre la salud.

 

image

 

Datos finales:

  1. Como verán no se ha utilizado ninguna herramienta de búsqueda de vulnerabilidades, todo lo realizado fue a través de un browser y un teclado.
  2. Reporté el error a la empresa en cuestión (que no ha sido mencionada), indicándoles que como un cliente de ellos y que almacenan mis exámenes médicos tenían una grave vulnerabilidad, sin embargo, hasta la fecha no hay respuesta al correo enviado ni a la llamada telefónica realizada.
  3. Ojala identifiquen su vulnerabilidad porque me imagino que exponer triglicéridos como en mi caso no es tan grave pero estoy seguro que puede haber información extremadamente sensible.

 

********************

Me encontré con una canción muy buena hace poco, la comparto porque cuando se tiene triglicéridos pareciera que uno sólo quiere “Vacaciones permanentes”.

Popularity: 6% [?]

Popularity: 10% [?]

Cuando empeze a modelar BD en mi curso de Base de Datos en la Universidad, note que todos (incluyendo a mi profesora) modelaba SQL SERVER, y aquellos que programamos y usamos MySQL (que nada tiene que envidiarle a SQL SERVER) nos encontramos con el primer problema, con que herramienta modelamos.

En este primer video tutorial damos una introduccion al modelamiento, asi como al manejo de MicroOlap, una herramienta de modelamiento. Espero sea de su interes y espero sus comentarios.

Cabe recalcar que esta la primera vez que realizo un video tutorial asi que espero mejorar en los proximo videos, por ahora les dejo el video en Revver para que lo vean online, el link es:

http://revver.com/watch/494258/

Popularity: 7% [?]

Hoy por motivos de trabajo tenia que restaurar una base de datos MySql, pero esta base de datos tenia algo diferente, el archivo con extension SQL pesaba solo 900 MB (solo eso), y aquellos que usamos PHPMYADMIN nos ocasiona un gran problema ya que no se nos permite subir un archivo de semejante magnitud.

Asi que “googleando” encontre una aplicacion hecha en PHP (en que otro lenguaje más podria haber sido hecho? si se trata de MySql) que nos permite subir bases de datos de tamaño considerable.

¿Entonces como subimos a nuestra BD un *.sql tan grande?

Si estas pensando usar la linea de comandos, estas pensando en lo mas seguro, simple y correcto; pero que ocurre si no tuvieramos acceso a la consola? si solo tenemos acceso a nuestro hosting via FTP? aqui entra a tallar BIGDUMP!.

Modo de Uso

- Descarga bidump [DESCARGAR BIGDUMP] (pagina oficial) o tambien descargalo de AQUI.
- Descomprime el archivo ZIP, ahi encontraras un script llamado bigdump.php.
- El archivo bidump.php debe ser editado de la siguiente manera:

$db_server = ‘localhost’; //Aqui agregamos el servidor donde esta mysql
$db_name = ‘base_datos’;// la base de datos creada donde vamos a insertar el sql
$db_username = ‘user’;//el usuario de mysql con privilegios a la base de datos
$db_password = ‘password’;//el password del usuario
$filename = ‘archivo.sql’; //aqui colocamos el archivo sql que queremos restaurar

- Bigdump nos permite subir al servidor el archivo SQL que vamos a restaurar, pero seria mas conveniente subir el archivo sql via FTP junto al script bigdump.php

- Despues de haber subido el archivo SQL, ingresamos a la direccion URL donde colocamos los archivos, por ejemplo: http://localhost/bigdump.php

- Nos aparecera el nombre del archivo sql que queremos restaurar y pulsamos sobre START IMPORT.

- Ahora solo queda esperar que restaure el archivo.

Definitivamente es muy tedioso en comparacion con la consola de linux, pero…. siempre es bueno conocer todas las formas en que podemos restaurar nuestra BD en caso de restricciones.

Popularity: 1% [?]