27 de noviembre de 2011

Borrando nuestra Wi-Fi de Google

Hace tiempo que Google se volcó de lleno en poder geolocalizar a sus usuarios, para así poder dar más precisión en sus búsquedas.

Inicialmente para poder localizar a un usuario era necesario que este tuviera algún dispositivo GPS que permitiera poder enviar su posición.
Esto impedía que los terminales móviles de baja gama pudieran ser localizados, por ello se desarrollo un mecanismo que permitiera localizar a los dispositivos sin hacer uso de un GPS.

En un principio se hacía uso de las celdas de cobertura que proporcionan conexión al dispositivo. Las celdas, tienen un tamaño variable dependiendo del lugar donde nos encontremos; de este modo, una celda en
Madrid capital ocupa un tamaño muy pequeño comparada con una, por ejemplo, en un pueblo de la sierra.

Este método de localización por tanto tiene un error variable según la zona. Para poder precisar más la posición Google desarrollo un mecanismo que permite localizar la posición usando además de la celda, datos de las redes Wifi de la zona. Como estas redes no tienen un alcance demasiado elevado, usando una o varias redes y su potencia de señal, podemos triangular una posición de forma más exacta.

En 2008 Google proporciona una funcionalidad en Gears que permite hacer uso de estos mecanismos para localizar al usuario. Gears permitía hacer uso de una serie de herramientas para mejorar la experiencia web; para ello era necesario instalar un cliente en el navegador que diera soporte a algunas de las funcionalidades. Este motor era el que permitía hacer uso de las aplicaciones Web de Google en modo off-line.

En 2010 Google descontinua Gears, pasando la carga de trabajo hacia el nuevo protocolo HTML5. Ese mismo año W3C incorpora en las especificaciones de HTML5 en la clase 'navigator' que permite enviar la posición a una aplicación web JavaScript.

Para que el navegador pueda dar soporte de localización ha usuarios sin GPS, hace uso de las técnicas anteriormente descritas y envía la información a un servidor donde le informarán de la posición actual.

Esta información fue recogida por Google mientras fotografiaba las ciudades del mundo, para Maps. Pero no es la única empresa que realiza esta labor; skyhookwireless.com, location-api.com o navizon.com son otras de las empresas que proporcionan estos servicios.

Desde que esta información fue almacenada por Google, no podíamos hacer nada para eliminar nuestra Wi-Fi de sus servidores, y por tanto siempre era usada para geolocalizarnos. Esto ha cambiado recientemente, ya que Google ha publicado un método para hacer que nuestra red Wi-Fi sea eliminada de sus servidores. Para ello, solo tenemos que renombrar nuestra web y hacer que termine con el nombre "_nomap". De este modo la próxima vez que se consulte usando tu punto de acceso, Google borrará la información.

Ante esto surgen algunas preguntas sin respuesta como, ¿porque no renombrar usando "_map" para que este punto sea localizable? y ¿que pasará si otras de las empresas deciden usar otro nombre para esta misma labor?

Más información:

Google blog:
http://googleblog.blogspot.com/2011/11/greater-choice-for-wireless-access.html

Google Location-based services Faq:
http://maps.google.com/support/bin/answer.py?hl=en&answer=1725632

W3C Geolocation API for HTML5:
http://dev.w3.org/geo/api/spec-source.html

Gears geolocation (Deprecated):
http://code.google.com/intl/es/apis/gears/api_geolocation.html

Mozilla info:
http://www.mozilla.org/es-ES/firefox/geolocation/
https://developer.mozilla.org/en/Using_geolocation

Samsung presenta la tecnología Secu-NFC

NFC (Near Field Communication) es una tecnología de comunicación inalámbrica basada RFID (Radio Frequency IDentification - ISO 14443). RFID funciona mediante inducción de campos magnéticos. Los 'tag' (tarjetas RFID) pueden ser pasivos (la energía de la respuesta proviene de la señal de lectura) con poco alcance o activos (usan una pila) con un alcance mayor. NFC permite funcionar al 'tag' en ambos modos y usando el protocolo NDEF (NFC Data Exchange Format) permite la comunicación bidireccional.

La tecnología NFC está siendo utilizada para pagos bancarios a través del móvil. Este echo está forzando a los fabricantes a buscar la mayor seguridad posible en esta tecnología. Samsung ha presentado un nuevo chip NFC (SENHRN1) con una nueva tecnología llamada Secu-NFC.

Esta tecnología incorpora al transmisor NFC, un bloque de cifrado de datos y una memoria flash (760 KB) para almacenar de forma segura (mediante cifrado) la información sensible.

Estas características permiten que los datos de pago, queden almacenados de forma segura en el propio chip y no sean accesibles en caso de ser comprometido el sistema o que se realice un análisis forense del dispositivo.

De este modo el sistema operativo no podría leer en claro los datos cuando son enviados.

Por el momento no ha sido publicada el 'datasheet' (hoja de características técnicas) que nos permita describir de mejor el comportamiento real de este dispositivo.

Referencia:
Anuncio de Samsung

8 de junio de 2011

Ejecución de comandos en WebSVN 2.3.2

Recientemente ha sido publicado en "exploit-db" un 0-day en WebSVN 2.3.2.
Esta vulnerabilidad permite a un atacante remoto no autenticado ejecutar comandos arbitrarios a través de una petición POST con un valor de "path" especialmente diseñado.

WebSVN es un proyecto Open Source que permite visualizar de forma cómoda uno o varios repositorios SVN. Está implementado en PHP y licenciado bajo GPL v2.

El fallo se da al no validar correctamente el valor recibido como nombre del fichero. Para poder usar esta vulnerabilidad hay que modificar el valor de la variable POST "path".
Para poder explotar esta vulnerabilidad es necesario encontrar un recurso que pueda ser descargado, puesto que el fallo se encuentra en la función "exportRepositoryPath()", que solo es accesible cuando nos descargamos un elemento.

El parche que soluciona esta vulnerabilida y algún otro posible vector de ataque ha sido publicada varias horas despues de haber sido echo publico el fallo.

Más información:

WebSVN 2.3.2 Unproper Metacharacters Escaping exec() Remote Command
Injection
http://www.exploit-db.com/exploits/17360/

Fix:
http://trunk.websvn.info/revision.php?repname=WebSVN&path=%2Ftrunk%2Fdl.php&rev=1256&peg=1256

Una al día:
http://www.hispasec.com/unaaldia/4608

3 de junio de 2011

Múltiples vulnerabilidades en "torremolinos.es"

Para quienes no lo conozcáis, Torremolinos es un pueblo de la provincia de Málaga.
Es el pueblo donde me he criado, estudiado, crecido,... y la verdad, ha cambiado mucho en estos años, en algunas cosas para bien y en otras para mal.

En lo que no ha cambiado demasiado (desde que soy usuario) es la web. Siempre me ha dado la sensación, de estar poco cuidada, insuficientemente accesible y poco actualizada. Parecen que en el ayuntamiento, no han entendido la importancia cada vez más creciente de la "web 2.0", y que cada vez más, tiene peso la presencia web para el turismo.

Tras mi critica personal sobre el estado "tecnológico" de mi pueblo, vamos a caso:

El primero de los fallos que he encontrado y reportado al ayuntamiento de Torremolinos es un Inyección SQL:
De Rollanwar
En este ejemplo se puede ver como la base de datos retorna el resultado inyectado, en este caso el voluntario anterior.
No he probado cosas más complicadas, pero cambiando "%20or%20ID_voluntario=%20453" por otro código más complejo se podría, potencialmente, obtener toda la base de datos de "www.torremolinos.es".

Recordar a los lectores que este tipo de practicas podrían constituir un delito.
Entiendo que esta explotación no cumple ninguno de los puntos que podrían ser tenidos en cuenta para constituir un delito, dado que esta explotación es inocua para el sistema y los datos obtenidos son publicos, se podría acceder a esos datos de forma normal.

Por otro lado he encontrado un XSS.
Los más observasores se abran dado cuenta que en la imagen anterior ambos voluntarios tenían la misma cantidad de puntos, y es que no es casualidad, es por el parámetro '&puntos=750&', cambiando el valor por '&puntos=750<script >alert("XSS");</script>&' magia:
De Rollanwar
En este ejemplo se puede ver se ejecuta el código inyectado.

Este fallo no es demasiado grave, pero permite modificar el contenido de la web, a través de una url, es decir, solo ven el contenido modificado quienes sigan ese enlace.
Al tratarse de una vulnerabilidad leve, he decidido publicarla directamente, sin espera respuesta, en "http://secureless.org".

Un ejemplo de esta explotación más llamativa puede ser la siguiente:
De Rollanwar


Por último podemos ver como también se produce un error en el tercer marámetro si insertamos una comilla.
De Rollanwar
No he intentado explotar este SQLi.

En la primera solución que se implementó por parte del ayuntamiento se filtra inadecualamente los caracteres de la URL, para redirigir a la web principal, pero se puede seguir explotando el fallo sustituyendo los espacios por '+'.

Como esta primera solución no se me comunicó decidí pasarme en persona a ver si solucionan el fallo.

Durante mi paso por el ayuntamiento, me informaron de nuevas mejoras e ideas para el futuro "web" del ayuntamiento. He de decir que los cambios para el futuro que me comentaron solucionará varias de las criticas que he vertido al inicio del post.

Estos fallos ya han sido solucionados.

TIMELINE:
08-05-2011: Descubierta
09-05-2011: Notificación del SQLi y XSS
09-05-2011: Publicación del XSS en 'secureless.org'
11-05-2011: No responde, pero parece que solucionan el problema
16-05-2011: Me pongo en contacto de nuevo, esperando contestación.
19-05-2011: No contestan y publico.
24-05-2011: Confirmo que el filtro aplicado no es valido.
24-05-2011: Retiro el post.
24-05-2011: Reenvio fallo con el nuevo ejemplo.
25-05-2011: Paso en persona a ver que ocurre con este asunto.
02-06-2011: Me informan que está solucionado.

25 de mayo de 2011

SafeCreative Python API

Bueno, esto es algo que hace tiempo que hice y aún no he comentado nada en el blog.

Para quienes no conozcáis SafeCreative; es la primera plataforma de registro, información y gestión de Propiedad Intelectual en el mundo digital, algo así como un registro online de obras.

Una herramienta muy útil para la autogestión de los derechos de propiedad intelectual en Internet, además de un lugar donde almacenar tus obras.

Paralelamente a este proyecto dedicado a la autogestión de los derecho intelectuales, la gente de SafeCreative a desarrollado la web creativepeople.sc que permite buscar obras, así como conocer las distintas licencias de las mismas y adquirirlas.

SafeCreative, tiene varios modos de uso, uno de ellos gratuito para el registro de obras, pero con limites en la cantidad de información almacenada y de resgistros mensuales.

La ventaja con respecto a otros registros es que online y que tu eliges el modo de licencia que vas a otorgar a cada obra.

SafeCreative tiene para los programadores una API que permite hacer uso de un protocolo de comunicación con múltiples objetivos. Hace tiempo vi que no tenían implementada una API para Python y decidí hacerla para que quieres la necesiten puedan usarla.

Como ejemplo de uso de este proyecto, el documental emitido por Televisión Española "Copiad Malditos!" que fué registrado a través de esta web.

Para quienes quieran ver y/o usar el código, está en http://code.google.com/p/safecreative-python-api/

8 de mayo de 2011

Mudanza a Blogger

Como ya habeis podido observar he decidio mudar el blog a Blogger.

Para que no se pierda la información que ya había escrito en el otro blog, teneis una copia de las entradas en este blog.

Como he estado muy liado no he podido escribir tanto como quisiera, pero espero que en breve pueda tener tiempo y escribir alguna que otra cosilla que he estado haciendo.