lunes, julio 27, 2015

Cómo elegir un "mal desarrollador" para publicar tu app

Tras ya más de un año jugando con nuestra plataforma de investigación en el mundo de las apps Tacyt, hemos realizado muchos informes de seguridad a empresas sobre las amenazas en el mundo de las apps de Android. Una de las cosas que hacemos es generar una documento con las debilidades que vemos a sus apps publicadas, donde como os podéis imaginar la lista de cosas que nos hemos ido encontrando es larga.

Figura 1: Cómo elegir un "mal desarrollador" para publicar tu app

Desde apps con frameworks con bugs conocidos, hasta conexiones de login sin ningún tipo de cifrado, pasando por los típicos leaks de información de infraestructura interna o los accesos a servidores de backend desprotegidos. Son muchas las vulnerabilidades y debilidades que pueden tener las apps si no ha se ha tenido un mimo en su construcción y publicación. Ya sabéis que hackers y developers viven un amor imposible, así que toma nota de qué es una mala elección en tu app.

Mala elección en la cuenta del desarrollador

Hoy quería comentaros unos detalles sobre la cuenta de publicación de a las apps en Google Play. En este apartado quería recalcar que al final, la cuenta que tiene acceso a la plataforma es la autentica dueña de las apps, y es por tanto importante que se tenga muy controlada, en todo momento, esa identidad. Al acceso de esa cuenta se debe poner un segundo factor de autenticación, para que ningún atacante que se haga con la contraseña pueda utilizarla en ningún momento, algo que es evidente, pero además hay que elegir la identidad correctamente para la cuenta de Developer:
- Cuentas gratuitas para instituciones: La verdad es que una de las cosas que llama más la atención es encontrarnos como cuenta de developer para un banco, una empresa multinacional o una gran organización, que el desarrollador es una cuenta de Gmail, Hotmail o iCloud. En todo momento, una persona con algo de cuidado tiende a sospechar de este tipo de apps cuando se buscan apps oficiales, lo que hace que se pierda confianza y por tanto baje el número de apps descargadas. Si tienes una de esas, pon un 2FA y ten cuidado no te la estén espiando.
Figura 2: Apps con la palabra Bank en el Título de la app y cuenta de desarrollador de Gmail
- Cuentas de desarrolladores personales: Otra de las cosas curiosas es que, cuando encuentras una cuenta de correo electrónico para el desarrollador que no es genérica, y parece que es personal, como por ejemplo lucas.martin@miorg.lol también suceden problemas, que hay que tener presentes: 
Figura 3: John King era el desarrollador de esta app del South Bank
- La cuenta ya no existe: Si la app tiene un poco de tiempo, basta con enviarle un mensaje de correo electrónico para ver si esa cuenta sigue existiendo o no. Si no existe, tenemos un problema a corto, pero es que además puede que el empleado ya trabaje para otra empresa. 
- La cuenta no se puede tocar: Esa cuenta pertenece a una persona, y en muchos casos va a ser totalmente imposible meterle mano sin el permiso de esa persona. Re-crear la cuenta o cambiar la password para poder acceder a sus mensajes puede suponer un problema legal para la organización. 
- La cuenta tiene perfiles de redes sociales: La imagen es más divertida si la cuenta del desarrollador es una cuenta personal que tiene asociados perfiles en redes sociales,  como Facebook, Twitter, etcétera, lo que puede ser muy útil para saber más del desarrollador y la imagen de la empresa. Acabas de crear un portavoz de la organización sin pensarlo. 
Figura 4: Cuenta de Gmail personal para una app del Everest Bank
- Objetivo claro de APT: Por supuesto, si hay una organización enemiga que quiere hacerte un APT, acabas de apuntar con dedo a la persona clave a la que hay que atacar, así que más vale que le hayas puesto un buen entrenamiento de seguridad para evitar problemas.
- Cuentas de desarrolladores de empresas terceras: Esta es otra de las cosas que nosotros miramos. Muchas de las apps están subcontratadas, por lo que es fácil saber qué empresa es la encargada del desarrollo con este tipo de cuentas. Esto puede generar:
- Salir en listas no deseables: Esto puede dar situaciones cómicas, donde el desarrollador hace apps de muy diverso ámbito y la empresa puede aparecer listada en lugares poco deseables en el futuro. Una empresa que es capaz de cuidar sus referencias en proveedores al extremo, pierde el control total al utilizarse una cuenta que delata su procedencia. 
Figura 5: Todas las apps creadas por la misma empresa. Todas son cuasi-iguales
- Riesgo de seguridad asumido: Además, se acaba de asumir en el plan de riesgos la seguridad las políticas de seguridad y los fallos que tenga esa empresa, así como se ha extendido la superficie de exposición de la compañía.
Lo ideal es que se controle totalmente esa cuenta de developer y se tenga protegida dentro de la compañía para evitar cualquier problema de imagen y/o seguridad asociada a la app. Es algo fácil de controlar y que no requiere grandes esfuerzos - solo organizativos -, así que revisa cuáles son los desarrolladores de tus apps y toma medidas. 

Saludos Malignos!

2 comentarios:

Sourcerer dijo...

Eso me recuerda las facturas electrónicas firmadas de una gran telco, donde el certificado estaba identificado con el email personal de un directivo, que casualmente ya no trabaja allí...

Clavius dijo...

Una gran duda que tengo es, que pasa con alguien que recién se esta formando en esto?, es decir no soy programador de Android pero estoy aprendiendo y antes de enviar algún programa a la Play Store deberá pasar por un QA? o eso lo hace directamente Google?. La verdad creo que es un tema ya que si mi programa fuese exitoso y no me doy cuenta de errores podría pasar a formar parte de usos maliciosos. Sau2

Entrada destacada

Infraestructuras Críticas y Sistemas Industriales: Auditorías de Seguridad y Fortificación de @0xWord

Desde hoy está disponible a la venta un nuevo libro de 0xWord centrado en la seguridad de los Sistemas Industriales y las Infraestructuras...

Entradas populares