Todos los programadores sabemos a ciencia cierta que las aplicaciones son de una manera u otra "decompilables", es decir podemos obtener con las herramientas adecuadas el código fuente de la aplicación para alterarlo y/o modificarlo (y si no lo sabemos es hora de despertar). Sin embargo cuando una aplicación se encuentra en formato binario el proceso de ingeniería de reverso es mucho más complejo, pero no es este el caso cuando hablamos de aplicaciones móviles desarrolladas en lenguajes como Java o .NET que en realidad no se encuentran en código binario sino en formato intermedio conocidas como "bytecodes" en el caso de Java e "intermediate language (IL)" en el caso de .NET
En el caso de iOS, decompilar las aplicaciones es algo más complejo ya que son necesarios decompiladores costosos y conocimiento avanzado de las técnicas, sin embargo tampoco es un trabajo imposible de realizar.
Si dudan de lo anterior, solo necesitan seguir este enlace http://www.youtube.com/watch?v=3tioug10tuo que los llevará a un video de cómo decompilar aplicaciones para Android.
Por lo tanto es muy importante entender que debemos ser más eficientes y cautos a la hora de hablar de seguridad en el caso de las aplicaciones móviles, ya que ponemos en riesgo nuestro trabajo (lo cual sería lo menos preocupante) así como la "lógica de negocio" de la empresa para la que desarrollamos la aplicación o lo que es peor aún los datos confidenciales de los usuarios que la utilicen.
Hay una buena cantidad de consejos que deberemos tomar en cuenta mientras desarrollamos aplicaciones móviles, pero quizás el más importante de todos pudiera ser si vamos a desarrollar aplicaciones seguras, no dejar jamás datos específicos "hard coded" dentro de la aplicación. Hablando en lenguaje más simple, no debemos jamás dejar una clave de cifrado, una cadena de conexión a un servidor o base de datos o un algoritmo de negocios en texto plano en nuestro código.
Para evitar lo anterior, todo dato sensible debe ser cifrado y la clave de cifrado debe ser proporcionada por alguna constante del entorno del dispositivo que se mantenga permanentemente pero que sea diferente en otros dispositivos. Por tanto si un amigo de lo ajeno obtiene nuestro código, le será mucho más difícil obtener nuestros datos o lo de nuestros usuarios, ya que cada usuario tendrá una clave de cifrado única.
Lo anterior haría más difícil la obtención de la clave pero no evitaría que el atacante la obtuviera, sin embargo debería repetir un procedimiento complejo para cada usuario o tener acceso directo al dispositivo de cada uno de ellos, lo que reduce drásticamente la superficie de ataque.
Muchos otros son los consejos de seguridad para aplicaciones móviles, como por ejemplo obtener un buen ofuscador de código si realmente se considera de alta prioridad la seguridad, como en el caso de aplicaciones bancarias o de pago. En próximos artículos hablaremos más sobre esto...
Hasta la próxima...
Este blog está dirigido a todos los programadores y desarrolladores en general, en él encontrarán consejos útiles en las respectivas áreas del desarrollo de aplicaciones, especialmente de Aplicaciones y Soluciones Web sobre diferentes entornos y plataformas móviles como Windows Phone y Android.
Suscribirse a:
Entradas (Atom)
Entradas populares
-
Denunciar una página fraudulenta o de phishing es un proceso mucho más simple de lo que pudiera parece, a tal punto que en los primeros ataq...
-
Si usted está de alguna manera involucrado con cualquiera de las áreas de las tecnologías de información y no sabe lo que significa " P...
-
Los atacantes logran penetrar una aplicación web por los más insospechados lugares. A veces inclusive el ataque es llevado a cabo por vector...
-
Independientemente del lenguaje y/o plataforma de desarrollo que usted utilice, hay cosas que de una o de otra forma siempre hay que tomar e...
-
Es una indudable ventaja el hecho de poder obtener el número IMEI de un dispositivo móvil desde una aplicación para cualquiera de las plataf...
-
Es un pequeño dolor de cabeza convertir en tiempo real los URLs de una aplicación al formato que actualmente se utiliza para lograr una mayo...
-
Cuando apenas empezamos a controlar el dolor de cabeza generado por el XSS (Cross Site Scripting) nos vemos las caras con otra amenaza que a...
-
Una de las técnicas de hacking más temidas por los administradores de bases de datos y los desarrolladores web es el “SQL injection”, la cua...
-
Un documento muy importante creado por OWASP es el que se refiere a cómo ser programadores "seguros", aclarando específicamente un...
-
Como ya es sabido una de las mayores amenazas que rondan las aplicaciones web es el XSS o Cross Site Scripting, y algunas de sus múltiples v...