¿Cuáles son las mejores prácticas para desarrollar una aplicación segura de Android?

La seguridad es una preocupación importante al desarrollar aplicaciones móviles en la era actual. Aquí, enumero las cosas más comunes que los desarrolladores deben tener cuidado para proteger la aplicación.

  • No almacene datos privados o confidenciales en la tarjeta SD. Para almacenar el archivo en el almacenamiento interno, use los siguientes métodos con modo privado ( Context.MODE_PRIVATE ) openFileOutput & openFileInput. Si desea almacenar datos en la tarjeta SD, encripte. Encontrará muchas bibliotecas de cifrado.
  • Restrinja WebView para acceder a datos locales. HTML5 y las tecnologías relacionadas se han vuelto populares para desarrollar aplicaciones web móviles o aplicaciones híbridas. For Hybrid utiliza WebView para mostrar contenido del HTML almacenado localmente o recuperar HTML y otro contenido del servidor. Las principales preocupaciones de seguridad para WebView son los métodos setAllowFileAccess () y setAllowContentAccess () .
  • Restrinja a ContentProvider usando la bandera exportada establecida como falsa. No es el caso de que cada vez que desarrollamos ContentProvider para el intercambio de datos entre aplicaciones, pero ContentProvider se puede desarrollar para una sola aplicación o privado.
  • No pase información confidencial a través de Broadcast & Intent . Use LocalBroadcastManager para transmitir datos dentro del proceso / aplicación. LocalBroadcastManager está disponible en la Biblioteca de soporte V4.
  • No imprima información confidencial en LogCat . Información como URL del servicio web, nombre de usuario, contraseña, solicitud, etc.
  • No procese intenciones maliciosas. Antes del proceso Intención recibida en el método onReceive de BroadcastReceiver, valide el nombre del paquete de llamadas, la acción y otra información.
  • Proteja su servicio con permiso, para usar el indicador expuesto como falso cuando el servicio se desarrolla solo para su aplicación.
  • Elimine el registro innecesario antes de publicar la aplicación .
  • Asegúrese de que el modo de depuración sea falso antes de publicar APK .
  • Para la funcionalidad de aplicaciones cruzadas, valide la aplicación de llamada antes de la respuesta.
  • Cifre datos confidenciales incluso si los almacena en almacenamiento interno .
  • Verifique correctamente el certificado de servidor TLS / SSL para la llamada web HTTPS.
  • Use NDK cuando considere que la información no es segura en el código Java porque puede descompilarse fácilmente. (es decir, constante).
  • Use ProGuard que optimiza, reduce y ofusca su código.
  • Eliminar no deseado de AndroidManifest.xml
  • Cargar classes.dex fuera de la aplicación es un gran riesgo de seguridad. DexClassLoader permitió al desarrollador cargar classes.dex a pedido.

Espero que tenga en cuenta estos consejos de seguridad mientras desarrolla una aplicación. Su principal preocupación siempre debe ser la seguridad de una aplicación. Ofrecer lo mejor al usuario y garantizarle una aplicación segura desarrollada es su responsabilidad como desarrollador de Android. Desarrolle lo mejor, reciba la mejor respuesta, obtenga usuarios genuinos y leales.

¿Está interesado en obtener más información sobre Android? Haga clic aquí

Revisa – Lista de errores de Android: 10 errores comunes y cómo solucionarlos

Si la aplicación que está desarrollando se basa en datos confidenciales (es decir, información financiera), le recomendamos que considere los siguientes consejos y realice pruebas de penetración para garantizar la máxima seguridad.

1. Evaluación de riesgos
La evaluación cuidadosa de los riesgos es el primer paso que lo ayudará a decidir si acepta los riesgos residuales o si toma un rol activo para minimizarlos. Las tres preguntas principales que debe hacerse son: ¿Cuáles son los riesgos? ¿Cuáles serán las pérdidas? ¿Cuáles son las vulnerabilidades de la aplicación?

2. La continuidad de la implementación de seguridad.
Cuando se trata de la seguridad de la aplicación móvil, no hay un hechizo mágico que un desarrollador pueda lanzar para hacer que la aplicación sea inaccesible una vez que finaliza la fase de desarrollo. La seguridad es un proceso. Debe comenzar durante la fase de planificación, pasar por la revisión del código y la etapa de implementación, así como realizar pruebas de penetración antes del lanzamiento.

3. El principio del menor privilegio
El diseño de una aplicación requiere solo aquellos permisos que son absolutamente necesarios para el propósito principal de su aplicación.

4. Validación de entrada
Asegúrese de que sus desarrolladores implementen las comprobaciones de entrada adecuadas, validando que la entrada es lo que se espera, ni más ni menos, antes de que la aplicación comience a procesarla.

5. Autenticación segura
Al diseñar un sistema de autenticación, preste especial atención a dos peculiaridades de los dispositivos móviles: sesiones episódicas y la forma inconveniente de escribir texto. Teniendo esto en cuenta, debe llevarse a cabo una investigación adecuada de todos los riesgos potenciales para encontrar un equilibrio entre usabilidad y seguridad.

6. Contraseñas seguras
Además de reducir la posibilidad de que los hackers accedan a los datos del usuario, las contraseñas afectan la fuerza del cifrado.

7. Comprobadores de seguridad de contraseña
Los usuarios tienden a elegir contraseñas débiles pero convenientes y rápidas para escribir contraseñas en lugar de tolerar la confusión de ingresar contraseñas seguras cada vez para desbloquear su dispositivo. Por lo tanto, si la seguridad es una de las principales prioridades para su proyecto, no confíe en los usuarios y considere implementar un comprobador de seguridad de contraseña.

8. Protección de datos
Elija qué datos realmente necesita almacenar: cuanto menos almacene, menos necesita proteger.

9. Limpieza remota
Un borrado es una técnica útil y efectiva, de protección de datos, pero no es una panacea. Se puede desarmar fácilmente simplemente apagando el dispositivo o la conexión a Internet.

10. Cifrado de datos
La palabra “encriptación” tiende a usarse como sinónimo de soluciones seguras, sin embargo, la cantidad de números de tarjetas de crédito robadas y descifradas sigue creciendo cada año. Por lo tanto, una pregunta crítica a considerar no es qué técnica de encriptación usar sino cómo implementarla adecuadamente.

11. Protección de claves de cifrado
Para proteger las claves de cifrado, no es suficiente confiar solo en medidas de plataforma estándar, como el llavero de iOS y el archivo de preferencias compartidas de Android.

12. Los riesgos de los servicios en la nube.
Si elige los servicios en la nube como almacenamiento externo, no olvide que deben usarse con precaución. Aunque los servicios en la nube tienen muchas ventajas, la nube no siempre es la mejor solución en términos de seguridad.

13. HTTPS
El uso del protocolo de seguridad SSL a través de una conexión HTTP normal ayuda a reducir el riesgo porque implica que los datos se cifrarían.

14. conexión Bluetooth segura
Bluetooth proporciona solo servicios de seguridad a nivel de dispositivo, no a nivel de usuario, y no puede limitar el acceso a datos confidenciales a usuarios autorizados. Por lo tanto, los desarrolladores deben proporcionar controles de seguridad apropiados que ofrezcan características de seguridad a nivel de identidad, como la autenticación y la autorización del usuario.

15. Registro: utilizar con precaución
Antes de lanzar su aplicación, debe asegurarse de que no haya información confidencial en los registros. La mejor solución es habilitar registros separados para las versiones de depuración y lanzamiento.

16. Estar probando
La prueba es un procedimiento común y obligatorio y casi ninguna aplicación puede considerarse terminada sin una prueba adecuada.

Y muchos más.

Para obtener más ayuda, visite: Desarrollo de aplicaciones móviles (aplicaciones) Dallas, TX India para iOS, Android, Windows Phone, BlackBerry

En primer lugar, no existe un sistema a prueba de piratería en el mundo de TI, pero los desarrolladores de aplicaciones aún pueden seguir las mejores prácticas de seguridad de aplicaciones móviles para crear aplicaciones que son difíciles de penetrar.

Estos son algunos puntos que puede seguir para desarrollar una aplicación segura:

  1. Cifre el código fuente.
  2. Garantizar la seguridad de los datos del usuario.
  3. Minimice el almacenamiento de datos confidenciales.
  4. Asegure las conexiones de la aplicación en el back-end de la aplicación.
  5. Planificar la estrategia de seguridad API.
  6. Integrar con la gestión de dispositivos móviles.

Para usuarios:

  1. No utilice dispositivos rotos y enraizados en la cárcel.
  2. Mantenga las aplicaciones actualizadas.
  3. Instale aplicaciones solo de tiendas de aplicaciones legítimas.

Para leer sobre estos puntos con mayor detalle, diríjase al enlace provisto en la parte superior de la respuesta.

¡Aclamaciones!

Métodos de hackeo de aplicaciones de Android como el hack de aplicaciones de terceros, un atacante puede robar los datos de todas las aplicaciones creadas descuidadamente en el dispositivo. Algunas aplicaciones incluso no validan la red obligatoria y el cumplimiento de seguridad en la aplicación. En un entorno móvil tan inseguro, los usuarios quedan vulnerables a las infracciones de datos personales y corporativos.

Use la aplicación Appvigil ( https://appvigil.co/ ) , es la primera aplicación de este tipo en el mundo que permite a los usuarios identificar qué aplicaciones en su teléfono son pirateables y pueden comprometer sus datos. Mientras el antivirus busca malware en el teléfono, Appvigil detecta qué aplicaciones pueden ser atacadas por hackers para inyectar dicho malware. Proporciona un informe consolidado completo de las vulnerabilidades en Android.

Puede usar esta aplicación mientras desarrolla, ya que proporciona a los usuarios la seguridad contra las últimas vulnerabilidades del Proyecto de aplicación de seguridad y web abierta (OWASP – 10) para dispositivos móviles

NowSecure lanza y actualiza una lista cada vez mayor de más de 50 mejores prácticas gratuitas de desarrollo móvil seguro.

Los temas abarcan desde prácticas de codificación hasta el manejo de datos confidenciales y la administración y configuración del servidor. También hay una categoría completa de Android.

Los investigadores de seguridad y otros profesionales de seguridad móvil mantienen la lista para ayudar a los desarrolladores y equipos de seguridad a evitar, encontrar y corregir fallas y vulnerabilidades.

More Interesting

¿Cómo explicar la evolución de diferentes versiones de Android? ¿Cuál es el avance que tuvo una versión a su predecesor?

Samsung Note VS Wacom Intuos Pro: ¿cuál le permite escribir y dibujar lo más parecido a usar un lápiz y papel? Estoy tratando de no usar papeles con mi vida y parece que estas dos son las mejores opciones que tienen un precio razonable.

¿Cómo se compara el teléfono OnePlus One con Android S5, HTC One M8 o Nexus 5, ya que es muy barato en comparación con otros teléfonos en el mercado?

¿Cuál es la probabilidad de que Facebook tenga éxito con un teléfono inteligente?

¿Hay una tableta que mide menos de 9 pulgadas, menos de $ 350 y ejecuta una de las versiones más recientes de Android?

¿Cuál fue el mejor teléfono Android a partir del primer trimestre de 2013?

¿Cuánto dinero ganan los anuncios de video en la aplicación?

¿Cuáles son los mejores consejos para crear una aplicación ligeramente exitosa que genere una cantidad adecuada de dinero?

¿Cuáles son las mejores aplicaciones gratuitas para teléfonos Android en este momento?

¿Puede una nueva plataforma móvil competir con iOS y Android?

¿Por qué Nokia se vendió a Microsoft cuando podría haber desarrollado la serie Lumia mucho mejor?

¿Por qué el reconocimiento de voz de Google para su interfaz de búsqueda en móviles (Android y iPhone) es tan bueno, pero su transcripción de mensajes de voz en Google Voice es tan pobre?

¿Existe algún buen software gratuito de videovigilancia que se ejecute en computadoras con Windows (cámara USB) o teléfonos Android?

¿Hay alguna característica en Android 5.0 que haga que el teléfono robado sea fácil?

¿Por qué el iPhone usa la pantalla IPS mientras que la mayoría de los competidores usan Super AMOLED o SLCD?