En este artículo hablaremos de los grupos de seguridad de AWS. Aunque no tienen ninguna complejidad al configurarlos, se deben tener en cuenta varios factores para mantener un nivel alto de seguridad en tu infraestructura. Un grupo de seguridad no deja de ser un firewall virtual que controla el tráfico. Por ello, pasaremos a mencionar varias prácticas recomendables para asegurar los servicios. Varias de estas prácticas se deberían automatizar para agilizar los procesos.

¿Que entendemos por Security Groups?

Un security group funciona como un firewall virtual que controla la entrada y salida de tráfico de las instancias de EC2. Todas las instancias deben tener asociado un grupo de seguridad . En el caso de que no esté especificado al momento de crear la instancia, entonces se utiliza por defecto el grupo de seguridad predeterminado de la VPC, Un grupo de seguridad predeterminado se denomina default, y AWS le asigna un ID.

¿Cómo crear un grupo de Seguridad con la consola AWS?

    • Abra la consola de Amazon VPC en https://console.aws.amazon.com/vpc/.
    • En el panel de navegación, elija Security Groups (Grupos de seguridad).
    • Elija Create Security Group (Crear grupo de seguridad).
    • Escriba un nombre para el grupo de seguridad (por ejemplo, my-security-group) y proporcione una descripción.
    • En VPC, seleccione el ID de su VPC.
    • (Opcional) Añada o elimine una etiqueta.
    • [Agregar una etiqueta] Elija Agregar etiqueta y haga lo siguiente:

    1.- En Key (Clave), escriba el nombre de la clave.
    2.- En Value (Valor), escriba el valor de la clave.

    • [Eliminar una etiqueta] Elija Eliminar a la derecha de la clave y el valor de la etiqueta.
    • Seleccione Create (Crear).

    Recomendaciones de seguridad para security groups de AWS

    1.- Activar el servicio VPC Flow Logs en tu VPC o a cualquier nivel de ENI (Elastic Network Interfaces). VPC Flow logs se puede configurar para aceptar y rechazar todas las entradas que se producen a través de los grupos de seguridad a los distintos servicios como pueden ser EC2, ELB o RDS. Las entradas que se registran en VPC Flow Logs nos servirán para detectar ataques y actividades anormales.

2.- Se debe usar AWS IAM (Identity and Access Management) para controlar los usuarios de tu compañía que pueden crear/modificar grupos de seguridad. Por lo tanto, que únicamente tengan permisos los trabajadores que sea estrictamente necesario.

3.- Activar los logs de AWS CloudTrail para registrar todos los eventos de los grupos de seguridad. Para algunos registros puedes crear un mail automático el cual te informará al momento del evento y así revisarlo inmediatamente.

4.- Crear una nomenclatura descriptiva para los grupos de seguridad. De esta forma, con el nombre obtienes información del grupo correspondiente. Piensa que con el tiempo te evitarás el desorden. Lo conveniente es crear una nomenclatura abreviando con 1 o 2 caracteres las características del grupo que pueden ser. El tipo de sistema operativo, tipo de entorno, la región de AWS, el tipo de aplicación. Ten en cuenta que el nombre de grupo no debe ser tan explícito a primera vista. Por ejemplo, si le pones el nombre WinWebProdCRM le indicas a los hackers para qué usas este grupo de seguridad. Una solución será 0-Win 1-Linux, A-Producción, B-Desarrollo, C-Testeo.

Adicionalmente se debe tomar el consideración lo siguiente

5.- Al aplicar la nomenclatura para los grupos de seguridad, se recomienda eliminar los grupos que no la cumplan.

6.- Cuando se crea una VPC, se crea automáticamente un grupo de seguridad por defecto. Si al crear una instancia, no le asignas un grupo de seguridad creado por ti, AWS lo asigna por defecto. Esto no es una buena práctica. Lo recomendable es aplicar un grupo de seguridad concreto cada vez que se cree una instancia.

7.- Vigilar al asociar varios grupos de seguridad a una instancia, dado que se crea un conjunto de reglas. AWS utilizará este conjunto de reglas para determinar si se permite el acceso o no y siempre prevalecerá la más permisiva. Por lo que si una instancia EC2 tiene asociado dos grupos de seguridad, en un grupo hay una regla que permite el acceso por el puerto 22 desde la máquina 52.63.1.100 y otro grupo con una regla que permite el acceso por el puerto 22 para todo el mundo, AWS aplica la más permisiva y podrán acceder desde cualquier dirección por el puerto 22.

8.- Una recomendación consiste en no crear un grupo de seguridad que tenga muchos puertos abiertos en todo el mundo. Por ejemplo si es un servidor web, únicamente abriremos los puertos HTTP y HTTPS para el tráfico entrante: 0.0.0.0/0,TCP, 80 0.0.0.0/0,TCP, 443

Por último…

9.- No lanzar servidores con puertos predeterminados abiertos como pueden ser los 3306, 1630, 1433. Esto te crea una pequeña capa de defensa para el grupo de seguridad porque los hackers no sabrían a qué puertos atacar.

10.- En algunas ocasiones, sea para una intervención externa o para cualquier tipo de pruebas, se deberá crear momentáneamente reglas demasiado permisivas, lo correcto sería automatizar dicha operación de tal forma que el grupo de seguridad se borre automáticamente pasados X minutos.

11.- Intentar evitar el abrir el puerto SSH para otras instancias del entorno de producción. Si es posible, únicamente abrir el puerto SSH para hosts de la misma VPC.

12.- Después de mencionar la 11, queda claro que se debe evitar abrir el puerto SSH para todo el mundo. Es muy habitual aplicar esta regla a las instancias por si hay cualquier incidencia y es necesario acceder en remoto. Es rápido y sencillo crear una regla de seguridad para dar acceso a una ip por el puerto SSH en el caso de que sea necesario el acceso remoto en un momento determinado.

13.- Evitar abrir puertos para los protocolos UDP o ICMP en instancias privadas.

14.- Evitar también abrir rangos de puertos. Puedes añadir un gran número de líneas de reglas en los grupos de seguridad para tener que abrir directamente rangos.

15.- La instancias que están en la red privada se deberán abrir para los rangos ip de tu VPC, no tiene sentido abrir para todo el mundo (0.0.0.0/0) si solo se podrá acceder desde tu VPC.

16.- Aplicar también reglas de seguridad de salida siempre que sea aplicable dentro de tu VPC. Por ejemplo, aplicar regla para restringir una conexión FTP desde cualquier servidor de internet a tu VPC.

17.- Para ciertas instancias aplicar también grupos de seguridad en el ELB usándolo de esta manera de proxy. Así doblas la seguridad, aunque aumenta la latencia.

Amazon Web Services dispone de un documento muy recomendable donde reúne un conjunto de buenas prácticas para mantener segura tu infraestructura en AWS.