jueves, 16 de agosto de 2012

Seguridad en aplicaciones

Al momento de realizar aplicaciones o juegos en la web, la seguridad es algo indispensable a tener en cuenta. Chequeando aplicaciones de Facebook caí por ejemplo en el snake de facebook:



Más de 500.000 usuarios mensuales, sin embargo usando una extensión tan común como Firebug y analizando el tráfico de la misma, podemos ver lo transparente que se hace el envío de mensajes, y en este caso el puntaje.

Para Google Chrome por ejemplo tenemos la herramienta de desarrollador, ya provista en el navegador, que reemplaza de forma similar a la extensión Firebug.

Tal como vemos el envío es a través de un método POST (php). Esto facilita a todos a hackear el juego. Usando por ejemplo otra extensión de firefox llamada Tamper Data, podríamos activarla en el momento indicado, parar el envío de este mensaje php y modificar el score tal cual muestro en la siguiente imagen: 


Además en el mensaje se pueden cambiar otros datos como el user id, y por ejemplo loguear el puntaje a otras personas con su id de facebook. Sin contar las numerosas vulnerabilidades de seguridad que expone esta llamada visible, para ataques como un SQL Injection.

De esta manera es que aparezco en el máximo ranking, y es así cómo se rompe por ejemplo el esquema de puntuaciones planteado por la aplicación. No es nada grave, a comparación de lo que se puede hacer al tener esta función de inserción a su base de datos expuesta...

Como dato extra el score que ingresé no es arbitrario sino que se trata del máximo valor entero para sistemas 32 bit, y también el máximo valor para tipos de dato enteros en base de datos mysql.

Es interesante el uso de estas herramientas, se le puede sacar mucho más provecho del pensado al concepto de vigilar el tráfico en la red, detener llamadas a funciones php, requests http, obtener la forma en que se realizan y reproducirlas cíclicamente. Es así también como por ejemplo a un sitio como soundsnap.com se le pueden obtener urls de toda su librería de audio...


Bueno a pesar de mi intento de mantener actualizado el blog, por motivos más que nada laborales a veces no es tan fácil subir notas con frecuencia. Mi intento es siempre hacerlo y espero algun dia tener la constancia, el tiempo y el material necesario para bloggear con una frecuencia estable.. Lo siento y hasta la próxima :D