Acción de seguridad preventiva en la aplicación de Android

5

Actualmente, estoy desarrollando una aplicación para Android relacionada con el banco. Compartiría mis conocimientos y quizás también ustedes sean más expertos que yo para que puedan agregar sus ideas a la lista.

El banco es un cliente muy especial. Ellos realmente se preocupan por las cosas de seguridad. Sin embargo, al mismo tiempo, quieren tener mucha flexibilidad y una gran característica para consolar a sus usuarios. Realmente creo que la seguridad y la comodidad no se relacionan entre sí.

Entonces, ¿qué he hecho son:

  • Use SSL para comunicarse desde la aplicación y la API web.
  • Usar la autenticación de token para asegurarse de que la solicitud a la API sea de la aplicación oficial. Lo más probable es que use una clave de token compartida que se actualice cada mes. El token se basará en la cadena aleatoria acordada, la identificación de Android y la identificación de la aplicación.
  • Para evitar la ingeniería inversa, utilizo proguard para ofuscar la aplicación. No estoy realmente seguro de cuán seguros son los programas, pero los Java Class son muy fácilmente reversibles. Con suerte, con proguard puede hacerlo más difícil.
  • También uso MCSSID de simcard y Android ID para validar el inicio de sesión de cada usuario y cuando se inicia la aplicación. Una vez que se cambia la tarjeta SIM, el usuario debe volver a registrar toda la información (como el número CC, el teléfono móvil y la OTP del banco). Además, el servidor comprobará una vez que la ID de Android no coincida. El servidor marcará la transacción con mayor riesgo. El banco puede llamarlos para verificar su transacción.
  • La aplicación no podrá ejecutarse en dispositivos Rooted. Si los dispositivos están enraizados, no permitirá continuar y finalizar la actividad en ejecución después de la alerta.
  • Además, en el futuro, estoy planeando revisar regularmente el inicio de sesión del comportamiento del usuario (como Tiempo, Ubicación) para garantizar que cualquier actividad inusual se marque como de alto riesgo

De los pasos dados anteriormente, ¿hay alguna acción preventiva que pueda impulsar más en el lado de la seguridad?

Gracias

    
pregunta William Calvin 07.05.2014 - 06:26
fuente

3 respuestas

4

La ofuscación es una táctica dilatoria, no una solución. Tienes que trabajar en el supuesto de que la aplicación y el teléfono se verán comprometidos. Trátelo como si fuera un navegador, use la aplicación para enviar y mostrar información solamente:

  • No almacene ningún dato sensible localmente
  • Manejar todo el procesamiento en los servidores del banco
  • No almacene en caché ninguna contraseña, información de cuenta o datos de transacción

Aliente al banco a realizar un análisis de riesgos sobre la funcionalidad que desean que tenga la aplicación y evalúe si la funcionalidad debe incluirse. Haga su propio análisis y adviértales sobre cualquier cosa que no esté seguro de poder proteger.

No tiene sentido bloquear el uso en teléfonos rooteados, muchas personas rootean sus teléfonos por razones legítimas y no quiere negar el servicio por ese motivo. Si diseñas tu aplicación correctamente, no importará, que es el punto.

    
respondido por el GdD 07.05.2014 - 11:50
fuente
0

Debes consultar Owasp mobile development guide .

También puede usar Ssl fijación para aplicaciones móviles.

Como usted sabe mucho de malware bancario como las versiones móviles de Zeus o Spyeye. Por lo tanto, puede implementar una autenticación bidireccional para su aplicación como Google Authenticator

    
respondido por el dgn 03.06.2014 - 12:48
fuente
0

Piensa en limitar la funcionalidad de la aplicación. En los Países Bajos, todos los bancos utilizan un dispositivo especial para el inicio de sesión bancario normal. Usted ingresa su tarjeta bancaria, luego ingresa el código PIN, ingresa un código en el dispositivo, recupera un código y lo ingresa para ingresar al sitio.

Para una aplicación, esto no funcionará, por lo que crearon un inicio de sesión especial para teléfonos inteligentes. Usted vincula la aplicación a la cuenta y funciona con un código PIN simple. Funcionalidad limitada. Solo puede transferir dinero a cuentas bancarias a las que haya enviado dinero en los últimos 18 meses. Puede establecer la cantidad máxima de dinero para transferir por día a través del sitio normal.

Puede enviar cantidades mayores a cuentas desconocidas a través de la aplicación, pero luego necesita el dispositivo de inicio de sesión. Supongo que su banco no utiliza un dispositivo de inicio de sesión de este tipo. Limitar la funcionalidad sigue siendo una buena opción, creo.

    
respondido por el SPRBRN 03.06.2014 - 13:47
fuente

Lea otras preguntas en las etiquetas