Servicios de seguridad de AWS para tu App Mobile

David Silva
3 de noviembre de 2020
4 min. de lectura
Servicios de seguridad de AWS para tu App Mobile

La seguridad en las aplicaciones que usas a diario en tu dispositivo móvil es tan importante como cerrar con llave tu casa al salir o parquear tu vehículo en un establecimiento privado a diferencia de dejarlo en la calle.

Son muchas las situaciones en que pensamos si la información que estamos almacenando o enviando a través de nuestro dispositivo móvil está segura y en ocasiones dejamos de hacer uso de algunas apps ya que nos generan desconfianza.

Si estás pensando en construir una aplicación móvil para que tus clientes puedan conocer e interactuar con mayor facilidad de tus servicios, no olvides que la seguridad también es muy importante para tener éxito con tu propósito.

seguridas_aws_1

Sabemos, que a la hora de diseñar nuestra solución móvil, nos enfocamos principalmente en aspectos del funcionamiento de la misma que le entregue valor a los usuarios para poder ir creciendo en uso y masificandola apalancándonos en las estrategias de mercadeo que implementemos.

Y en ciertas ocasiones dejamos de un lado diferentes aspectos de seguridad por el afán de poner en producción pilotos o realizar pruebas; sin embargo, con el tiempo vamos evolucionando la funcionalidad y esos aspectos de seguridad que dejamos de hacer desde un principio se nos van volviendo más complejos de resolver con cada evolución que presente nuestra app.

Es por esto que recomendamos desde el diseño de la arquitectura y evolución tras evolución considerar también de manera incremental los aspectos de seguridad.

Es por esto que, basado en nuestros conocimientos y experiencia en implementaciones de soluciones móviles, presentamos a continuación varios servicios y tips que te servirán para que tu app en AWS sea más segura desde el punto de vista de infraestructura:

Servicios de seguridad para Apps en AWS

Servicios de seguridad para Apps en AWS

WAF

Este servicio no nos puede faltar en nuestra solución ya que nos permite tener una capa de seguridad externa a nuestra aplicación para controlar el tráfico que llega a nuestro CloudFront, ApiGateway o application load balancers.

Por medio de Web ACLs podemos ajustar reglas que se adecuen a las peticiones que recibiremos en nuestros componentes para controlar ataques tipo Cross Site Scripting, SQL Injection, controlar el tráfico basados en Blacklists, Georeferenciación o IP's.

Seguridad_aws_2

Cloudfront

Este servicio, aparte de distribuir el contenido de una manera eficiente y controlada, nos brinda diferentes configuraciones que nos ayudan a asegurar las invocaciones a nuestro contenido, como los son:

  • Integración con WAF
  • Habilitación de la política de seguridad en versiones TLSv1.1_2016 o TLSv1.2_2018/2019
  • De ser posible, configuración del certificado SSL con dominio propio
  • Configuración de los Origins siempre seguros, ya sea con OAI para s3 o SSL con customs
  • Aseguramiento de los header, habilitando el servicio de lambda edge.

S3

Con este servicio, podemos alojar nuestro contenido cifrado para presentarlo al cloudfront y por medio de políticas filtrar el acceso al este:

  • Bloqueo del acceso público
  • Creación de políticas que permitan el acceso granular a los objetos
  • Habilitación de la encriptación del contenido sensible con kms o cmk

Api Gateway

La exposición de nuestras API's siempre va a ser importante, por eso debemos hacerlo de manera segura ya que nos ayuda a canalizar las solicitudes hacia nuestros servicios. Para este servicio recomendamos lo siguiente:

  • Habilitar dominios personalizados para la exposición de nuestra API's
  • Integración con Cognito para autorización de las transacciones y acceso a los recursos por medio de Tokens JWT
  • Habilitar WAF para ApiGateway
  • Solo en el caso que sea necesario hacerlo público
    Para las APIS privadas habilitar el política de recursos (Resource Policy)

Cognito

Este es un servicio esencial en nuestras plataforma móviles ya que nos va a permitir federar la información de los usuarios de manera segura con diferentes entidades para garantizar la seguridad de los datos en el registro y autenticación a nuestra app. Adicionalmente, Cognito nos brinda métodos de autorización al interior de la app para usar recursos de AWS.

  • Utilizar inicio de sesión con proveedores de identidad externos tales como Amazon, Google, Facebook o alguno que sea confiable y compatible con OIDC para la aplicación.
  • Habilitar el uso de token JWT para la autorización de las transacciones a realizar en la app e interacción de los recursos.
  • Segmentar los permisos otorgados al rol que va a asumir la aplicación para evitar otorgar permisos elevados.

seguridad_aws_3

Aspectos generales Seguridad AWS

Es importante también tener en cuenta los aspectos que pertenecen a la infraestructura base tales como subnets, security groups, route tables y accesos desde y hacia internet para los recursos:

  1. Los recursos que van en subnets privadas y requieren salida a internet es importante que lo hagan de manera segura por medio de un Nat Gateway o Nat Instance ya que nos brindan mayor un acceso a internet más seguro evitando la exposición directa de estos recursos a internet.
  2. Solo permitir puertos y direcciones específicas en los security groups.
  3. Evitar utilizar el 0.0.0.0/0 en los ingresos en el security groups y así segmentar el acceso a nuestros recursos a direcciones deseadas y conocidas.
  4. Otorgar permisos específicos en IAM a los usuarios y roles por medio de políticas personalizadas que nos garanticen el menor privilegio posible.

En fin, son muchos los aspectos que debemos de tener en cuenta cuando hablamos de seguridad en aplicaciones móviles, pero si hay algo de lo que estemos completamente seguros es que “no hay plataforma 100% segura”.

Cada día surgen nuevas vulnerabilidades pero es ahí donde debemos aprovechar los diferentes servicios, herramientas, mecanismos y buenas prácticas que nos brinda AWS para mitigar y minimizar los riesgos y así tener nuestra app mucho más segura.

Guía para crear una aplicación serverless en 4 pasos

Suscríbete

No Comments Yet

Let us know what you think