Cómo proteger mi aplicación de Android de copiar copias

Pautas de seguridad de Android:

1. Verificación de implementación SSL

Verificar la implementación de SSL es clave para muchas aplicaciones. Esto protege la aplicación de los ataques MITM y también asegura la comunicación entre la aplicación móvil y el servidor.

2. Gestión de información sensible en el lado del cliente.

Una aplicación nunca debe almacenar información confidencial como claves de cifrado, nombre de usuario, contraseñas en preferencias compartidas, archivos, etc. en el grupo local o la memoria. En caso de que una aplicación almacene información confidencial en la base de datos, se recomienda cifrar la base de datos con la biblioteca SQLCipher. La información confidencial debe tenerse en cuenta mientras la aplicación se carga en el mercado.

3. Código de ofuscación

Deben establecerse normas estrictas de ofuscación del código. Las aplicaciones deben cifrar u ofuscar el código para evitar la ingeniería inversa.

4. Identificación de bibliotecas criptográficas obsoletas

Las aplicaciones siempre deben usar los últimos algoritmos criptográficos que son seguros y recomendados. Los desarrolladores de aplicaciones no deben usar su propia implementación de criptografía.

5. Verificaciones de validación tanto del lado del cliente como del lado del servidor

A veces los desarrolladores realizan validaciones solo en el lado del cliente. Esto deja al servidor vulnerable a los ataques MITM. Verifique las validaciones de entrada en todos los escenarios posibles.

6. Sanitización de entrada

Desinfecte las entradas del usuario para liberarlas de caracteres maliciosos. Las aplicaciones deben usar la lista blanca para hacer una lista de caracteres permitidos.

7. Codificar y decodificar

Las aplicaciones siempre deben usar una codificación estándar para codificar las entradas del usuario desde el lado del cliente e implementar el mecanismo de decodificación para decodificar los datos en el cliente que se envían desde el lado del servidor. Todos los estándares de codificación y decodificación serán probados.

8. Implemente sumas de verificación y tokens

Una mejor práctica para los desarrolladores es implementar sumas de verificación en los datos que se pasan del cliente al servidor para verificar la integridad de los datos. Implemente tokens para proteger la aplicación de los ataques CSRF.

9. Encabezados de respuesta seguros

Verifique la implementación de encabezados de respuesta seguros.

10. Prueba de autorización

Autorización de prueba en todos los niveles. Las aplicaciones deben tener recursos en el lado del servidor configurados correctamente en función de los roles de usuario en la aplicación.

11. Gestión de la sesión

Las sesiones deben implementarse adecuadamente para evitar ataques basados ​​en sesiones. Los desarrolladores deben generar sesiones aleatorias y asegurarse de que las sesiones se terminen después de un período de tiempo particular o después de un uso inactivo. Es importante verificar la caducidad de las sesiones después del cierre de sesión o la sesión anterior se puede utilizar para la toma de control de la cuenta.

12. Proteja los componentes del sistema operativo

Una lista de verificación para verificar exported = false para los componentes de la aplicación de Android si no se desea que las otras aplicaciones interactúen con los componentes de su aplicación.

13. Implementando la política de contraseña

La mayoría de las aplicaciones móviles aún utilizan políticas de contraseña débiles. El uso de una contraseña mínima de 8 y asegurarse de que la contraseña contenga al menos un carácter numérico, uno en mayúscula, uno en minúscula y un carácter especial garantizará la seguridad a nivel humano.

14. Implementar Captcha

Para evitar ataques de fuerza bruta, las aplicaciones deben implementar reCAPTCHA de google.

Para más detalles: Entersoft Essentials: Pautas de seguridad de Android para asegurar su aplicación