24 abril 2014

Arrancan las Jornadas X1RedMasSegura 2014



Las Jornadas X1REDMASSEGURA nacieron en 2013 con el propósito de promover a través de un foro el uso de Internet de una manera confiable y segura. Su objetivo es hacer llegar a todos los públicos, independientemente de sus conocimientos técnicos en informática, el uso adecuado y responsable de los recursos disponibles en la red con el fin de evitar ser víctimas de abusos fraudulentos, estafas, acoso, grooming y tantos otros problemas que cualquier navegante puede sufrir en Internet si no cuenta con unos conocimientos adecuados.
Esta segunda edición del evento también se encuentra coordinada por el colectivo X1RedMasSegura, que desde su nacimiento en 2013 ha ofrecido sus ganas y todo su apoyo por hacer de estas jornadas algo grande, sin ningún ánimo de lucro.
Las Jornadas durarán dos semanas, del 8 al 17 de Mayo. Comenzarán por una serie de talleres GRATUITOS que se celebrarán del 8 al 14 de Mayo en las sedes de IPA Madrid, del Vivero de Empresas de Móstoles y de la UDIMA, para Padres, Niños, Ciberabuelos, Empresarios, Profesores e Internautas Base, en los que se enseñarán como protegerse de la red de redes sin necesidad de ser experto ni en Informática, ni en Seguridad de la Información. Entre los temas que se tratarán se encuentran porqué es necesario utilizar HTTPS, cómo crear una contraseña segura, seguridad en redes sociales, etc. Los talleres tienen un máximo de 20 plazas cada uno, y podréis apuntaros GRATUITAMENTE desde el siguiente formulario de inscripción:
Además, el día 10 de mayo tendrá lugar un taller dirigido a personas con discapacidad, gracias al Programa de Atención Integral a la Discapacidad del Ayuntamiento de Alcalá de Henares, que tendrá lugar en el Espacio Joven, situado en los bajos de la plaza de toros de Alcalá de Henares a las 18h
Los días 16 y 17 de Mayo se celebrará el evento principal en el auditorio de la Escuela Técnica Superior de Ingenieros de Telecomunicación (ETSIT) de la Universidad Politécnica de Madrid, localizada en la “Ciudad Universitaria”. Las jornadas comenzarán el viernes 16 a las 16:00 horas y finalizarán el sábado a las 14:30 horas. Al igual que los talleres, las jornadas van dirigidas a público no técnico y en ellas se tratarán problemas actuales como las estafas cibernéticas, malware (virus), nuestros derechos en la red, la nube, etc., explicado para ser entendido por todos los niveles.
A continuación os dejamos la dirección para llegar tanto a los talleres como al lugar donde se celebrarán las jornadas:
Esperamos que las jornadas sean un éxito, las disfrutéis y sobretodo que sirvan para lo que queremos, conseguir entre todos 1Red MasSegura.
Aprovechamos para recordaros que sigue abierto el concurso “Infografías Jóvenes x1RedMasSegura ’14″ hasta el próximo 4 de Mayo, con el objetivo de concienciar y educar a los más jóvenes en el uso seguro y responsable de Internet.
Desde Security By Default, queremos mostrar nuestro apoyo a este eventos como este, que se hacen por causa solidaria, sin otro fin que el de educar y enseñar a los colectivos que tienen un mayor riesgo en Internet: nos referimos personas mayores y niños. 
En Internet no debe haber prohibición ni censura, sino educación y concienciación; y aun así, nadie está exento totalmente de sufrir diversos ataques que puedan afectar a nuestra vida digital. Cuanto más preparados estemos, mejor seremos capaces de enfrentarnos y reaccionar ante estas amenazas.      
El hashtag del evento será #X1RedMasSegura. No os lo podéis perder!
Leer más...

23 abril 2014

Menuda sorpresa recibimos ayer, resulta que este humilde blog ha sido seleccionado finalista de los 'European Security Blogger Awards' unos prestigiosos premios que se celebran en el marco del evento 'INFOSECURITY EUROPE'

Cuando nos llegó el correo: 


Al principio se nos quedó cara de WTF ! y pensamos que se trataría del típico correo que luego no es lo que parece, nos cruzamos varios correos entre los editores hasta que confirmamos el correo: Efectivamente estamos nominados !

Viendo la lista de los otros nominados, la verdad es que impone bastante respeto:


Estamos hablando del blog de Brian Krebs, blog con decenas de miles de visitas diarias y miles de seguidores en twitter, el blog de Xavier Mertens e incluso el blog Countermeasures de todo un Trendmicro 

Y sobre todo, el matiz más importante es que, todos los blogs nominados están escritos en lengua Inglesa, con lo que el hándicap para SbD es aun mucho más grande.

El hecho de que nos hayan nominado para llegar a la parte de votación pura (la fase de nominación es mediante jurado), la verdad es que es bastante impresionante y supone un inmenso honor

Sabemos que es imposible: por tamaño, por lenguaje, por trayectoria ... pero ¿hay alguna posibilidad de ganar el premio?

De momento se han abierto las votaciones y si queréis podéis votar a SbD en este enlace

Si os hace ilusión que un blog de habla hispana esté ahí luchando entre los grandes, vota. Lleguemos hasta donde lleguemos, siempre os estaremos agradecidos, porque el hecho de haber llegado hasta aquí, es gracias a vosotros
Leer más...

22 abril 2014

Hackeos Memorables: El asesino en serie B.T.K


La historia del asesino en serie Dennis Rader, más conocido como B.T.K. (Bind, Torture, Kill),  es memorable y digna de un pequeño hueco en este blog debido a la importancia de la ciencia forense informática en su captura.

El primero de los asesinatos de BTK de los que se tiene constancia, fue en 1974, cuando mató a una pareja y a dos de sus hijos: entró en su casa, les cortó el teléfono, los ató a las sillas, y los fue asfixiando uno a uno con bolsas de plástico en la cabeza.

Ese mismo año asesino a otra joven e intento lo mismo con su hermano.

Durante ese año, tres personas confesaron los crímenes asegurando que eran B.T.K., lo que provocó que el Dennis Rader llamase a un periódico local para contarles que había colocado una carta en un libro de la biblioteca pública en la que desacreditaba a los falsos asesinos, y daba más datos para demostrar que el asesino era él. No sólo reconocía los crímenes sino que aseguraba que volvería a matar: 

The code word for me will be....Bind them, toture them, kill them, B.T.K., you see he at it again. They will be on the next victim.

Y efectivamente, así lo hizo: mató a 5 personas más entre el 77 y el 91.

En 1977 asesina a una chica y lo intenta con sus dos hijos, pero el sonido del teléfono lo asusta y huye del lugar del asesinato.  También en el 77 asfixia a otra chica de 25 años.

Sus actos cesan hasta el año 85, donde estrangula a otra mujer. Un año después otra joven es asesinada siguiendo el mismo patrón. Finalmente en el año 91, comete su décimo y último crimen al secuestrar y estrangular a otra mujer. 

Firma de BTK
A Dennis Rader le gustaba comunicarse con la policía mediante cartas y pretendía llamar la atención de los medios de comunicación.

Era 2004, habían pasado décadas y el asesino seguía libre, además enviaba sobres y notas con su firma a cadenas de televisión locales, también solía incluir documentos personales de sus víctimas, puzzles y acertijos.

Pero el 16 de Febrero de 2005 algo cambió. Un disquete que contenía un archivo con el nombre: "Test A.RTF" y algunos objetos más se entregaba en KSAS TV.

El fichero contenía el texto: This is a test. See 3 x 5 Card for details on Communication with me in the newspaper
Disquete con Test A.RTF
El disquete fue entregado a los forenses que no tardaron en observar en las propiedades del archivo el texto: "Dennis" y "Christ Lutheran Church". Lo que llevó al especialista a lanzar una consulta a Google. Allí encontró la página web de la iglesia, en la que figuraba un tal "Dennis Rader" como presidente de la Congregación. ¡Bingo!

El grupo encargado de su búsqueda rápidamente lo localizó y distintas pruebas de ADN hicieron el resto.

Debido a que Kansas re-instauró la pena de muerte en 1994 (3 años después de su último asesinato) fue condenado a 10 cadenas perpetuas consecutivas. Lo que garantiza que morirá en prisión.

Lo cierto es que la historia da para una buena telenovela, y así ha sido ya que hay unas cuantas películas sobre este asesino (ninguna demasiado buena, todo hay que decirlo): Feast of the Assumption: The Otero Family Murders, The Hunt for the BTK Killer, B.T.K. Killer y B.T.K.  También documentales y libros de todo tipo. 

Referencias:
Leer más...

21 abril 2014

Análisis de Acierta las preguntas (Parte II de II)

En la entrega anterior vimos algunas de las vulnerabilidades presentadas por la aplicación Acierta las preguntas, además de posibles soluciones que se podrían haber implementado para evitar su explotación.

Nos quedó por analizar el apartado multi-jugador, así que manos a la obra.

El modo online


El juego dispone también de un modo multi-jugador donde retar a otros usuarios. Cuando accedemos capturaremos la siguiente petición/respuesta:


Como en mi caso no tenía iniciada ninguna partida, el resultado es una estructura JSON vacía. Si ahora buscamos un reto a través del modo online capturaremos el siguiente tráfico:


Aquí podemos ver el ID asociado a nuestra partida, que cuando termine generará la siguiente petición:


Una vez más esta petición puede ser fácilmente alterada de modo que podemos indicar de manera libre nuestra puntuación.

Además al carecer de cualquier tipo de control de acceso nos permite enumerar las partidas de otros jugadores, esto se puede lograr si modificamos en la petición de recuperación de partidas la URL para indicar otro usuario:


De modo que si al final sumamos todas estas ausencias de comprobaciones, a través de la pantalla de ranking se podría obtener los nombre de los mejores jugadores, iniciarles un reto online sin su consentimiento y enviarles una puntuación de 0. Esto en el sistema de juego online supondría una bajada de nivel para su perfil.

Para protegernos ante estos problemas podríamos optar por soluciones que ya comentábamos en el artículo anterior:

  • Realizar una gestión correcta de la sesión. De este modo no haría falta intercambiar el usuario como un parámetro de la petición y evitaríamos la alteración de este dato.
  • Delegando la responsabilidad al servidor de determinar la puntuación. Si cada acierto/error se envía al servidor, cuando haya que calcular la puntuación no será necesario confiar en una petición que ha podido ser alterada por la parte cliente del juego.

 

Suplantación de identidad


Como ya hemos visto a lo largo de las peticiones capturadas se hace notar la falta de una gestión correcta de la sesión y prácticamente todo el sistema se basa en enviar el nombre del usuario como parámetro, ya sea en la URL porque es una petición de tipo GET o en el cuerpo de la petición porque es de tipo POST, pero, ¿de donde sale este nombre de usuario?

La respuesta está en el formulario de login que rellenamos en la primera ejecución. Este formulario intercambió la siguiente petición/respuesta:


A partir de este intercambio de información la aplicación ya da por supuesto que somos el usuario nodoraiz, que al ser un dato persistente nos induce a pensar que se encuentra en la base de datos. Lo comprobamos:


De este comportamiento podemos deducir que lo que ocurre es que:

  1. Rellenamos el formulario de inicio de sesión
  2. Se envía el nombre de usuario y el MD5(clave)
  3. Se recibe una respuesta que varía entre si es un alta, si es un inicio de sesión válido (es la captura que he puesto arriba de Respuesta) o si es un inicio de sesión inválido
  4. Si es un alta o inicio de sesión válido, se guarda en la base de datos y a partir de entonces se trabaja con ese valor en todas las peticiones

Una vez analizado el comportamiento, sólo queda hacer una explotación como prueba de concepto.
  • Desde el menú de Android nos vamos a Ajustes > Aplicaciones > Acierta las preguntas y borramos los datos. Esto lo hacemos para limpiar la base de datos del juego y así eliminar nuestro usuario.

  • Ponemos a interceptar el tráfico de nuestro dispositivo Android con un Web proxy
  • Iniciamos sesión en el juego con otro usuario inventándonos la clave:

  • Alteramos la respuesta y cambiamos el mensaje recibido de error:
    • {"resultado":[{"msg":"El usuario ya existe","code":2,"nivel":1}]}
  • Por el mensaje recibido cuando todo es correcto:
    • {"resultado":[{"msg":"Autentificaci\u00f3n correcta","code":1,"nivel":"1"}]}

A partir de este momento el juego enviará en todas las peticiones el nombre de usuario suplantado y el servidor se lo creerá ciegamente al no existir ningún otro mecanismo de validación.

Una vez más, para evitar este problema hubiera bastado con introducir un mecanismo de gestión de sesión y que cada vez que se abra la aplicación se envíen los credenciales al servidor para que este los valide. También y por pasarlo por alto, se debería evitar el uso de MD5 para realizar el hash de la clave y utilizar alguna función más robusta como SHA-2 con sal.


Conclusiones finales


Aunque sea a través del ejemplo de un juego, hemos visto como prácticamente toda la aplicación cae por tres motivos clave:

No olvidemos que aunque se trate de un juego se deben cuidar estos aspectos, de otro modo se favorece la aparición de cheaters y con ello se produce la caída de la experiencia jugable.

Artículo cortesía de Miguel Ángel García
Twitter: @nodoraiz
Leer más...

20 abril 2014

Enlaces de la SECmana - 223


Leer más...

18 abril 2014

Desde hace algún tiempo lleva pegando fuerte la web change.org, su cometido es recoger firmas para promover iniciativas o peticiones.

Personalmente nunca me ha convencido Change.org, considero que adolece del rigor mínimo necesario para tomarla en cuenta mas allá de lo que puede valer una encuesta online.

Ricardo Galli ya le dio un buen repaso a Change.org y creo que disipó cualquier duda que pudiese quedar sobre esa plataforma, ojo, tiene todo el mérito del mundo, pero se queda bastante corta.

Hace tiempo, de la mano de Nacho Alamillo, descubrí la web www.mifirma.com un proyecto realmente interesante que viene a cubrir ese vacío legal que tiene Change.org.

Esta plataforma, de entrada, requiere que las firmas se hagan utilizando un certificado digital reconocido con lo que, cuando firmas una petición, estás realizando una firma análoga a la manuscrita.

A partir de ahí, muchos partidos políticos están usando la plataforma para conseguir avales, haciendo de esta forma mucho más accesible la democracia.

Viendo la lista de personas que se encuentran tras esa iniciativa, me queda la sensación de que les va a ir muy bien ya que son personas ampliamente reconocidas en sus diferentes campos.

Sin duda una iniciativa muy interesante, a seguir muy de cerca y que abre un abanico de oportunidades realmente grande
Leer más...

17 abril 2014

Análisis de Acierta las preguntas (Parte I de II)

Acierta las preguntas es un juego online de preguntas y respuestas de diferentes categorías que te permitirá ejercitar tu cerebro en los momentos más estresantes del día.



Y como a algunos nos gusta encontrar retos diferentes dentro de los retos propuestos, vamos a ver qué podemos encontrar si observamos el comportamiento de la aplicación.

Las preguntas


Es la pieza sobre la que gira todo el juego, así que empecemos por aquí. Tenemos a nuestra disposición la base de datos del juego en la siguiente ruta:


Si descargamos y abrimos esta base de datos encontraremos tablas autoexplicativas:

Preguntas:


Respuestas:



Podemos ver entonces que una serie de preguntas vienen por defecto con la instalación de la aplicación, pero si observamos las comunicaciones que realiza el juego nada más arrancarse veremos la siguiente petición/respuesta HTTP realizada con el servidor del juego:


Como podéis observar se hace una petición en la que se envía como parámetro maxid el valor del pregunta_id más elevado existente en la base de datos, y la respuesta del servidor es todas las nuevas preguntas incluidas desde entonces, pero esta respuesta puede ser alterada para incorporar nuestras propias preguntas/respuestas:


Si observamos ahora la base de datos de la aplicación veremos como hemos incorporado nuestra propia pregunta:


Para concluir sobre este apartado podemos decir que:

  • Si nos preocupa proteger la base de datos podemos utilizar SEE (SQLite Encryption Extension)
  • Si queremos tener un sistema que se actualice en cada nueva ejecución y queremos evitar que nos inyecten valores no autorizados podemos recurrir a algún mecanismo de firma de los datos entregados


La tienda


El juego dispone de una tienda donde podremos comprar comodines para saltarnos preguntas que no sepamos responder, además de avatares que asociar a nuestra cuenta:


Si analizamos las comunicaciones realizadas por la aplicación comprobaremos que al arrancar el juego se intercambia la siguiente petición/respuesta HTTP que puede ser fácilmente alterada:


El resultado de hacer este cambio tendrá la respuesta que imaginamos:


Este problema se podría haber evitado con el mecanismo de firma comentado como conclusión del apartado anterior.


Subida de nivel


Si entramos en el modo de juego y respondemos las preguntas de forma correcta veremos que cuando subimos de nivel se ejecuta la siguiente petición:


Que la aplicación tenga este comportamiento nos permite alterar el nivel de cualquier usuario con sólo modificar la entrada del parámetro user, de modo que podemos subir niveles sin control tanto a nosotros mismos como a otros usuarios.

Si queremos evitar problemas como este podemos implementar las siguiente soluciones:

  • Para controlar que un usuario no altere a otro usuario se puede introducir un mecanismo de gestión de sesión de modo que queden expuestos los datos de forma explícita en ningún parámetro
  • Para controlar la subida de nivel se debe delegar la responsabilidad al servidor: esto se reduce a que el dispositivo Android envíe la respuesta seleccionada al servidor para que sea él quien determine si se ha acertado o no, de este modo el servidor podrá determinar si tiene o no que subir de nivel.


Espero que os haya entretenido y no os perdáis el siguiente artículo, en él entraremos a ver las funciones online del juego, que tampoco han quedado libres de problemas de seguridad.

Artículo cortesía de Miguel Ángel García
Twitter: @nodoraiz
Leer más...