Principales problemas de seguridad para prepararse en el desarrollo de aplicaciones móviles


Aasif
By Aasif  | April 6, 2018 10:10 am
creador de aplicaciones

La última vez que pidió su taza de café favorita en Starbucks, ¿se detuvo y se preguntó por la seguridad y la privacidad de los datos cuando utilizó la aplicación? ¿Te preguntaste qué tan seguro es jugar tu juego favorito mientras pasas el tiempo en tu viaje diario? ¿Te detuviste a preguntarte qué tan segura es la aplicación que ha estado haciendo funcionar tus estrategias comerciales digitales? ¡Probablemente no! Y si lo hiciste, probablemente te sientas cómodo pensando que los desarrolladores de la aplicación se habrían encargado de ello. Las preocupaciones sobre la aplicación son aún más bajas si provienen de una organización o empresa de buena reputación y prestigio, y si la aplicación se descargó de una buena tienda de aplicaciones como iTunes o Google Play Store. Pero el duro hecho es que incluso en todos estos escenarios hay una gran probabilidad de que las cosas vayan realmente mal.

El mercado móvil está creciendo y también lo está el mercado y escenario de desarrollo de aplicaciones. Ya sean individuos o grandes organizaciones, todos se vuelven cada vez más dependientes de una variedad de aplicaciones móviles para lograr eficiencia y aumentar la coordinación y la productividad de los empleados. Por lo tanto, es importante hacer la pregunta: ¿las aplicaciones móviles son lo suficientemente seguras como para estar protegidas de hackers malintencionados? Sin embargo, es la pregunta que la mayoría de nosotros no formulamos.

¿Sabía que una empresa promedio solo prueba aproximadamente la mitad de las aplicaciones móviles que construyen y lanzan, y un tercio de las empresas de desarrollo de aplicaciones ni siquiera prueban sus aplicaciones para garantizar su seguridad antes de lanzarse al mercado?

Es este hecho sorprendente que expone a los usuarios de la aplicación a posibles ataques cibernéticos que pueden permitir a los piratas informáticos acceder a todos los datos corporativos o personales en el dispositivo móvil que se utiliza para acceder a la aplicación. La tendencia actual de BYOD (Bring Your Own Device) donde los empleados pueden descargar y usar aplicaciones comerciales en sus dispositivos personales deja a las empresas aún más expuestas a ataques cibernéticos y ataques cibernéticos.

Hay miles de nuevas aplicaciones que llegan al mercado cada semana y probablemente un número igual o más de hackers listos para acceder a estas aplicaciones y falsificar información del usuario con fines maliciosos. Esto impone una gran responsabilidad a los desarrolladores de la aplicación para trabajar duro y garantizar la seguridad de sus aplicaciones. La siguiente es una lista de los principales problemas de seguridad que un desarrollador debe prepararse, en caso de desarrollo de aplicaciones móviles.

  1. Depender solo de la seguridad de la plataforma incorporada

Hay una gran cantidad de plataformas de desarrollo de aplicaciones para elegir, pero ninguna de ellas es completamente inmune a las amenazas y las lagunas de seguridad. De las plataformas de desarrollo de aplicaciones destacadas, la plataforma iOS de Apple tiene un proceso de selección bastante riguroso que la aplicación debe realizar antes de permitir el lanzamiento para los usuarios, por lo que se considera una de las plataformas más seguras. Sin embargo, también es cierto que no hay garantía de que todas las aplicaciones de la plataforma sean seguras. Cualquier proceso de selección, sin importar cuán estricto sea, no puede encargarse y frustrar los intentos de cada persona malintencionada que intente piratear las aplicaciones. Sin embargo, Android es completamente diferente, ya que simplemente permite el lanzamiento de cada nueva aplicación y deja a discreción de los usuarios para clasificar lo bueno de lo malo con la ayuda de las revisiones. Ambos sistemas tienen fallas a su manera y es extremadamente importante que no dependa por completo de las características de seguridad o del sistema de detección de una plataforma cuando se trata de proteger a los usuarios de las amenazas cibernéticas.

  1. Uso de códigos de otros desarrolladores

Desarrollar una aplicación desde cero es todo un desafío y requiere mucha experiencia y esfuerzo, además del gran precio que se le atribuye. El proceso de desarrollar una aplicación desde cero es largo, y no todos los desarrolladores tienen ese tipo de tiempo o recursos para lograrlo. es por esta razón que bastantes de ellos sacan y utilizan código de código abierto para acelerar el proceso. La mayoría de las aplicaciones modernas de hoy están hechas en un 90% de código abierto, lo que desafortunadamente significa que es el campo más grande y el más débil para ataques de hackers y ciberterroristas. Los hackers de hoy están creando códigos maliciosos con la esperanza de que un desarrollador los recoja y les dé acceso a todo tipo de información para los que la aplicación puede ser una puerta de entrada. Los hackers de hoy están haciendo uso de la tendencia de los desarrolladores a confiar en el código y soluciones de terceros para que puedan hacer que el desarrollador haga la escritura real por ellos.

No hay nada de malo en encontrar una base en el trabajo de otra persona y luego construir sobre ella. El código fuente abierto en realidad puede ser una gran manera de ahorrar mucho tiempo y dinero. Sin embargo, es de gran importancia hacer su diligencia debida y asegurarse de que el código de terceros que está desarrollando sea seguro para ser utilizado en su aplicación y que no ponga en peligro la seguridad de los usuarios. Además de eso, también es importante que después del lanzamiento de la aplicación vigile el código para validar la seguridad y asegúrese de que se mantenga seguro para ser utilizado durante un período de tiempo. Encuentre soluciones que lo ayuden a monitorear e identificar si el código de terceros que desea utilizar es seguro para ser utilizado, luego compleméntelo con su propio conjunto de herramientas, técnicas y procesos para hacer que la aplicación sea infalible. También es bueno si puede establecer una relación con esos proveedores que asegure una línea de comunicación abierta y abra caminos aptos para remediar cualquier cantidad de fallas o errores que puedan descubrirse en el proceso. La clave aquí es usar solo las fuentes que han sido examinadas cuidadosamente y verificarse a sí mismo si puede. Es bueno confiar, pero nunca coloque su fe ciegamente en nadie.

  1. No estar preparado para almacenar en caché y registrar vulnerabilidades

En la medida de lo posible, no guarde en caché los datos de la aplicación. Cuando se trata de almacenar cualquier tipo de datos de manera segura en cualquier dispositivo móvil, es importante emplear la técnica adecuada. La forma más segura y menos complicada de mitigar el compromiso de los datos en el dispositivo es asegurarse de que no se almacenan ni guardan en caché los datos. Hay una serie de formas en que los datos pueden almacenarse involuntariamente. Es posible que los desarrolladores no puedan registrar algunas de las formas en que se pueden almacenar los datos. Algunas de estas formas incluyen:

  • Archivos de registro y depuración
  • Caché e historial web
  • Cookies
  • Lista de propiedades y archivos
  • Bases de datos SQLite
  • KeyStore y Keychain

Los registros de depuración están diseñados con la intención de encontrar y corregir fallas en cualquier aplicación. Además, en caso de una falla de la aplicación, el pirata informático puede acceder a una gran cantidad de información de gran valor en forma de registro de bloqueo que se crea con ella. En ambos casos, existe la posibilidad de que el hacker obtenga acceso a mucha información sensible, que les proporciona mucho más combustible para orquestar otro ataque más. Cuando ofrece funciones como “Recordarme” o “Guardar esta identificación de usuario”, la ID de usuario se almacena en caché dentro del objeto Administrador de credenciales en iOS.

Los sistemas operativos destacados, incluidos iOS y Android, almacenan la información que escriben los usuarios, con la intención de proporcionar funciones especializadas, que incluyen la autocompletación personalizada, la autocorrección y la finalización del formulario. Al hacerlo, es posible que algunos de los datos confidenciales también puedan almacenarse en él.

Estas palabras cuando se ingresan, se almacenan en caché en la memoria caché del teclado, lo que las ubica esencialmente más allá del alcance administrativo de la aplicación, lo que significa que la aplicación no puede remover o eliminar estos datos del caché.

Sin embargo, existen algunas técnicas para evitar esto, como la programación de manera que el caché se borre automáticamente tan pronto como se reinicie el dispositivo o cada vez que el usuario sale de la aplicación. Hay bastantes otras preocupaciones y no todos los problemas se pueden manejar mediante la programación al final de los desarrolladores.

  1. No realizar pruebas exhaustivas para la seguridad

Se ha establecido anteriormente que la responsabilidad de hacer una aplicación recae principalmente en los hombros de los desarrolladores. Si usted, como desarrollador de aplicaciones no garantiza la seguridad total de su aplicación, está exponiendo a todos sus usuarios y sus datos en su aplicación a riesgos y amenazas potenciales. Por lo tanto, es sensato no apresurarse y lanzar una aplicación a toda prisa. Debe realizar suficientes pruebas para probar exhaustivamente su aplicación en busca de seguridad y privacidad de los usuarios.

Como mínimo, debe realizar un análisis estático y dinámico de sus aplicaciones.

Al usar SAST o Static Application Security Testing, puede evaluar las aplicaciones desde adentro hacia afuera y encontrar posibles fallas y vulnerabilidades en el código de la aplicación que expone los datos. Esta prueba también incluye datos de terceros.

DAST o Dynamic Application Security Testing también se conoce como Prueba de Seguridad de Aplicaciones Móviles Automatizadas y Manuales. Esta es una de las pruebas más importantes, ya que prueba las aplicaciones mientras trabajan en el dispositivo móvil e identifica cualquier susceptibilidad o comportamiento incierto que la aplicación pueda exhibir durante su tiempo de ejecución. DAST hace posible probar las aplicaciones en un escenario del mundo real en un entorno de red en vivo para poder analizar e identificar las vulnerabilidades en la transmisión de datos y la comunicación de red.

Es de suma importancia probar los códigos cada vez que se empuja una compilación. Es aconsejable integrar las pruebas de seguridad de la aplicación móvil en el SLDC con la automatización. Cuando implementa un flujo de trabajo build-test-deploy, se activa una prueba de seguridad cada vez que se empuja una compilación. Esto significa que su equipo de desarrolladores puede continuar centrándose en la codificación, mientras que los equipos de seguridad pueden ocuparse de todos los problemas de seguridad.

  1. Compromiso con el cifrado de datos

Lo que pasa con la tecnología es que siempre está evolucionando, lo que es el estado del arte actual puede volverse obsoleto mañana. Esto se aplica incluso a los algoritmos de cifrado que puede haber elegido aplicar en su aplicación, lo que significa que puede quedar obsoleto y, por lo tanto, ser fácil de descifrar. Si su sistema de encriptación es débil, está exponiendo a los usuarios y todo tipo de información confidencial que puedan tener en su aplicación a hackers malintencionados.

Si su aplicación implica pagos en la aplicación, o cualquier otro pago, se les puede solicitar a sus usuarios que ingresen la información de su tarjeta de crédito o cualquier otra información confidencial. En tales casos, si su aplicación no tiene una encriptación fuerte, ¡todos estos datos confidenciales están en juego! Lamentablemente, cuanto más popular sea su aplicación, mayores serán las posibilidades de un posible ataque sobre ella. Como desarrollador de aplicaciones, debe asegurarse de que el cifrado y su implementación en su aplicación se mantenga actualizado y configurado correctamente para proporcionar la máxima seguridad a los datos de los usuarios de la aplicación. Hay otras técnicas que se pueden utilizar en este sentido, como el cifrado de cadenas en el nivel de código y una aplicación más avanzada de criptografía de caja blanca que funcionan tanto en las etapas estáticas como dinámicas.

  1. Error al prepararse para la ingeniería inversa y alteración de la aplicación

¿Qué sucede cuando un dispositivo móvil se pierde o es robado? Como desarrollador de aplicaciones, ¡no hay nada que pueda hacer aquí! Sin embargo, si tuviera que implementar un código de tiempo de espera de sesión local, puede ser de gran ayuda al proporcionar una capa de seguridad para el usuario. Esto significa que, de vez en cuando, se le pedirá al usuario que ingrese una contraseña para poder acceder a la aplicación. Esta duración puede variar, y si no desea que sea una actividad diaria, puede convertirla en un evento semanal o hacer que el usuario ingrese la contraseña cada 7ª vez que accede a la aplicación. Es común en los teléfonos inteligentes u otros dispositivos móviles tener la provisión de guardar contraseñas u otros detalles de inicio de sesión, pero cuando implementa un tiempo de espera de sesión local en su aplicación, evita que esto ocurra.

No es tan descabellado imaginar que un teléfono o cualquier otro dispositivo móvil sea robado, perdido o que un usuario tenga acceso a él en algún momento, y es importante que el desarrollador de la aplicación planee y se prepare para esta eventualidad. . Los usuarios malintencionados pueden, en este punto, realizar una ingeniería inversa de la aplicación para comprender su funcionamiento y obtener información que podría ser valiosa para determinar cómo funciona la aplicación. Como desarrollador de aplicaciones, si aumentara el tiempo de ejecución y la complejidad del código. Aumenta los obstáculos para que un pirata informático analice o comprenda el funcionamiento de la aplicación. Esto, a su vez, traería la cantidad de ataques y protegería la información útil para que no llegue a manos de personas malintencionadas. Algunas de las técnicas más útiles para esto incluyen: detección de root / jailbreak, ocultación de código, detección de depuración y ofuscación de flujo de control.

Algunos hackers en el pasado han modificado las aplicaciones existentes e insertado elementos maliciosos antes de publicarlas en los sitios y tiendas de aplicaciones de terceros. Esto es posible cuando un hacker o un atacante manipula o abre puertas traseras en la aplicación y luego vuelve a firmarlo. Algunas de las formas de evitar que esto ocurra incluyen: verificación de integridad, firma de código, detección de manipulación y verificación de recursos.

  1. Ignorar para implementar la comunicación segura

Mientras que un desarrollador de aplicaciones como usted puede enfocar todos sus recursos y energía en hacer que sus aplicaciones sean seguras, es fácil olvidarse de la seguridad del lado del servidor, lo que hace que su aplicación sea susceptible a ataques maliciosos. La mayoría de las aplicaciones que necesitan manejar cualquier tipo de datos confidenciales necesitan conectarse a un servidor y es extremadamente importante garantizar la seguridad de este tránsito. De lo contrario, podría perderse o robarse información confidencial, incluida, entre otras, la información de la tarjeta de crédito de los usuarios, la información de identificación, etc. en caso de que su aplicación implique recopilar datos grandes, se recomienda obtener un SSL certificado (Secure Sockets Layer) ) en lugar de utilizar un cifrado de seguridad de bajo grado que puede generar filtraciones de datos, análisis e información publicitaria.

Cuando ha invertido todos estos recursos en la creación de una aplicación con características de seguridad ejemplares, no quiere ninguna intercepción sobre una conexión Wi-Fi insegura. Puede lograrlo empleando cifrados y cifrados potentes, fijación de certificados TLS / SSL o fijación de clave pública. También puede adquirir e implementar capas adicionales de protección utilizando claves de la aplicación y secretos en combinación con otras técnicas. No asegurar este aspecto solo puede significar un desastre para usted y sus datos.

  1. No lanzando suficientes actualizaciones de seguridad

Los piratas informáticos y los atacantes no pierden el tiempo e intentan encontrar y aprovechar las debilidades de su aplicación poco después de que la haya lanzado. Esto significa que no puede volverse complaciente una vez que se ha lanzado la aplicación. Son aquellas aplicaciones que no lanzan actualizaciones de seguridad frecuentes y oportunas que atraen a los hackers para encontrar y explotar las lagunas de seguridad. Es importante que estos agujeros se enchufen lo antes posible, y se envíe una actualización a los usuarios para que el funcionamiento de la aplicación y la confianza que los usuarios depositan en ella se restablezca de inmediato. Cuando se trata de información confidencial, no existe ningún margen de error, y cuando ignora o demora la solución de estos problemas, corre el riesgo de quedar obsoleto muy pronto.

  1. No proteger el dispositivo con EMM

La solución EMM o Enterprise Mobility Management es una forma extremadamente efectiva de proteger el dispositivo contra un jailbreak o un rooteo. Una solución de EMM adecuadamente empleada hace que sea imposible eliminar la seguridad incorporada que ofrece el sistema operativo en el móvil que ofrece mantener la seguridad de los datos durante mucho tiempo. Cuando emplea una solución de EMM, también está ofreciendo una forma de autenticar a los usuarios antes de que la aplicación se inicie y se utiliza para aplicar las diferentes políticas de seguridad a fin de proporcionar seguridad frente a los intentos de piratería.

  1. Almacenamiento de datos inseguros

Se sabe que algunas de las aplicaciones más populares guardan los datos de inicio de sesión en texto sin cifrar, lo que significa que cualquier persona que tenga su teléfono tendrá a su disposición todos estos detalles simplemente conectando el teléfono a una PC. Ahora, esto significa que cualquier persona que tenga su teléfono tiene acceso a toda su información confidencial, como nombres de usuario, contraseñas, ubicación geográfica, direcciones de correo electrónico y otros datos similares, que también podría haber estado utilizando en muchos otros lugares. El grado de vulnerabilidad que usted padece, en este caso, es insuperable.

Cuando diseñe su aplicación, asegúrese de que toda esta información vital que le ofrecen los usuarios no se almacena directamente en el dispositivo, y en caso de que deba almacenarse en el dispositivo, debe hacerse de manera segura.

Aasif
About The Author

App Builder

Utilizamos cookies para brindarle la mejor experiencia en línea. Al utilizar nuestro sitio web, acepta el uso de cookies de acuerdo con nuestra política de cookies. OK Obtenga más información aquí. aquí