En estos tiempos de transformación digital acelerada, la seguridad del software ha pasado de ser un tema técnico a una especie de obsesión estratégica para las empresas, sobre todo cuando hablamos de entornos cloud y desarrollos basados en Inteligencia Artificial (IA). Estos campos no sólo ofrecen un mundo de posibilidades, sino que aumentan de forma significativa la cantidad de riesgos en términos de seguridad.
Así que, sobre todo si eres responsable de seguridad de tu empresa, acompáñanos a ver algunas estrategias y prácticas recomendadas. En este artículo nos centraremos en la parte cloud. Más adelante hablaremos también de la seguridad específica relacionada con el hype de la década: la Inteligencia Artificial.
Entornos cloud más seguros
El uso de servicios en la nube, como AWS, Azure y Google Cloud Platform (GCP), ha revolucionado la forma en que las empresas crean y despliegan software. Sin embargo, este gran poder (la nube), conlleva, como no podría ser de otro modo, una gran responsabilidad: la seguridad. Hay que estar atento para no abrir la puerta a millones de intrusos, humanos o autómatas, mientras nos deslumbramos con lo práctico que es acceder a todo desde cualquier lugar.
Veamos algunos de los ámbitos a los que debemos estar especialmente atentos.
Control de acceso y gestión de identidades
Para garantizar que no haya un desfile de personas/bots no autorizados accediendo a tus recursos, necesitamos ingenieros de seguridad en la nube que dominen plataformas como AWS, Azure y GCP. Pero cuidado, porque configurar correctamente las políticas de acceso es casi como jugar a los castillos de naipes: un movimiento en falso y todo se viene abajo. Además, los seres humanos somos impredecibles, por lo que la falta de formación o, peor aún, esa tentación, normalmente acelerada por el estrés, de compartir contraseñas (no existe la más mínima duda de que se sigue haciendo todos los días del año) puede abrir una puerta grande a nuevos problemas.
¿La solución? La solución perfecta no existe, pero siempre podemos implementar autenticación multifactor, como ese doble cerrojo, el Fac, que te planteas poner en la puerta de tu casa cuando hueles el peligro; y asegurarnos de que los permisos mínimos se aplican estrictamente. Si no lo hacemos, en algún momento nos sorprenderá ver quién tiene las credenciales de un servidor de producción. Y no es de extrañar si esa persona es la misma que la que suele hacer tareas de mantenimiento de extintores.
Además, las normativas como ISO 27001 o GDPR están ahí para recordar que, si nos dejamos llevar, las consecuencias son reales y, con certeza, no vamos a querer conocerlas.
Configuración segura y gestión de recursos
En este punto, las cosas se ponen un pelín más interesantes. Configurar mal un bucket de AWS es como dejar la puerta dejar abierta la puerta de tu coche. Para evitar filtraciones, necesitas ingenieros DevSecOps, concienciados de su trabajo y arquitectos de seguridad que vigilen que todo esté en orden. Aún así, el problema técnico más común, aunque parezca una obviedad, es que, con tantos recursos, a veces las configuraciones se nos escapan como se filtra el agua por las rendijas.
Y si eso no fuera suficiente, la comunicación entre los equipos de desarrollo y seguridad suele ser una extraña pareja, normalmente con menos gracia que Jack Lemmon y Walter Matthau. La solución aquí es clara: automatizar la revisión de configuraciones con herramientas como AWS Config, Azure Security Center, Azure Policy, Azure Resource Graph, Google Cloud Security Command Center o Google Cloud Organization Policy entre otras. Pero, muy importante, que fluya el diálogo y la concienciación entre los equipos. Si no, preparémonos para que los datos queden expuestos y los hackers se den un festín.
El proceso de desarrollo seguro, normalmente implementado tras una buena certificación ISO 27001, ayuda mucho en este sentido.
Protección de datos
Los datos, el oro digital. La implementación de cifrado es esencial, pero puede ser un verdadero dolor de cabeza si no se sabe bien lo que se está haciendo. El cifrado en tránsito con TLS es como enviar un mensaje secreto en una botella: necesitamos asegurarnos de que nadie la abra en el camino. El cifrado en reposo, por otro lado, requiere algoritmos robustos como AES-256 (uno de los más robustos para aplicaciones empresariales). Es una de las mejores cajas fuertes que podemos tener en casa.
En este caso, hay más riesgos que vigilar. Otro error habitual, no menor, es no rotar las claves. Si tienes en tu casa una caja fuerte con cosas importantes dentro, nos apostamos lo que quieras a que cambiarías la combinación cada cierto tiempo. Pues en el mundo digital ocurre lo mismo. La solución es sencilla: usar servicios como AWS KMS, Azure Key Vault o Google Cloud KMS, que gestionan las claves y las rotan automáticamente.
No dejemos que cualquiera acceda a los datos más sensibles. Y esto no sólo aplica de puertas hacia afuera de la organización, también de puertas hacia dentro. Protección de acceso granular, mínimo privilegio posible, amigos.
Detección y respuesta ante incidentes
Vale, lo peor ha ocurrido. Los hackers la han liado parda, bien porque somos importantes, bien porque hemos tenido mala suerte, bien porque quizás no ha sido sólo una cuestión de mala suerte, sino también de olvido o vete tú a saber el porqué. El caso es que esto puede ocurrir y la detección y respuesta ante incidentes requiere que estemos preparados, tanto en protocolos como en actitud. Pero no es tan fácil: manejar eventos de este tipo en entornos distribuidos puede ser bastante complicado si no disponemos de las personas y la preparación adecuadas. No minusvaloremos nunca a los equipos de seguridad, velan porque nuestra vida sea algo más tranquila.
Herramientas como AWS GuardDuty, Azure Security Center o Google Cloud Security Center (Event Threat Detection) son una especie de Pepito Grillo que nos avisa cuando algo sospechoso pasa a nuestro alrededor. El gran problema es que los logs, esas piezas de información que nos dicen qué está pasando, pueden ser tantos que nos sintamos enterrados bajo una montaña de datos. Lo ideal es disponer de un sistema SIEM que haga todo este trabajo: correlacionar eventos, detectar patrones sospechosos y automatizar respuestas, como bloquear direcciones IP maliciosas. Pero no es suficiente; si no tenemos un plan de respuesta bien pensado, además de que la ISO 27001 y el ENS nos van a poner mala cara, nos encontraríamos corriendo como pollos sin cabeza cada vez que ocurra un incidente.
Backups y plan de recuperación ante desastres
Relacionado con lo anterior, pero con suficiente entidad como para dedicarle un apartado entero, aquí viene el tema que a todos nos recuerda esas promesas incumplidas de «mañana hago el backup». Implementar una estrategia de copias de seguridad y recuperación ante desastres es fundamental. No se trata sólo de hacer una copia de seguridad de vez en cuando y esperar que todo salga bien; sino de tener un plan completo para cuando las cosas vayan mal (y, sin ningún lugar a dudas, algún día irán mal). Imaginemos que se borra accidentalmente toda la base de datos de clientes o que uno de esos famosos ataques de ransomware bloquea el acceso a los sistemas. ¿Qué haríamos? Bueno, si no tenemos un buen plan, probablemente nos quedemos mirando la pantalla en blanco y se nos pase por la cabeza acudir de urgencia al MediaMarkt a comprar nuevos servidores y empezar desde cero. En el menos malo de los casos.
Es mejor idea organizarse previamente. La copia de seguridad debe ser automatizada y programada regularmente, pero más importante aún es verificar que realmente funciona. Volviendo a la caja fuerte, si metes tu dinero en ella y resulta que ésta tiene un agujero trasero accesible, poco más hay que explicar sobre las consecuencias. Además, el plan de recuperación debe definir claramente qué se restaura primero, quién es el responsable de cada acción y qué medidas se deben tomar para minimizar el tiempo de inactividad. Un desastre no tiene por qué ser el fin del mundo si estamos preparado. Si no, lo dejo a vuestra imaginación, no quiero pecar de agorero.
¿Solución? Usar servicios de backup automatizados como AWS Backup, Azure Backup o Google Cloud Backup and Disaster Recovery, y probar regularmente que se pueden restaurar los sistemas en un entorno de prueba. Además, establecer un plan de recuperación ante desastres que incluya procedimientos claros y responsables asignados. En medio del caos, es bueno saber quién se responsabiliza de qué.
Revisión de los puntos críticos y soluciones propuestas
Hemos cubierto de forma rápida mucho terreno, por supuesto no todo. Pero, para que este artículo tenga algo de utilidad, incluso para los más perezosos con ese viejo pasatiempo de la lectura, vamos a hacer un repaso rápido de los problemas principales.
Control de acceso y gestión de identidades
Control de acceso y gestión de identidades: Un ejemplo clásico de problemas con gestión de identidades fue el incidente de Uber en 2016, donde un atacante logró acceso a datos de 57 millones de usuarios. ¿Cómo lo hizo? Consiguió credenciales de AWS almacenadas en un repositorio público de GitHub.
Protección: usar AWS IAM para gestionar usuarios y permisos, Azure Active Directory para autenticar y controlar el acceso a las aplicaciones o Google Cloud IAM para administrar el acceso a recursos específicos en la nube. Implementar autenticación multifactor (MFA) en todas las plataformas y aplicar el principio de privilegios mínimos. Recordemos, casi nadie debe tener acceso a todo.
Configuración segura y gestión de recursos
En 2017, la cadena de restaurantes mexicana Chipotle sufrió un ataque debido a configuraciones de seguridad mal gestionadas en sus servidores de aplicaciones, lo que permitió a los atacantes acceder a información de tarjetas de crédito.
Protección: en AWS, podemos usar AWS Config para revisar y auditar configuraciones; en Azure, Azure Security Center para supervisar la seguridad de la infraestructura y en GCP, Google Cloud Security Command Center para gestionar y monitorizar los recursos. Es importante también automatizar las revisiones y establecer políticas de configuración segura para cada servicio utilizado. Y no creamos que es un tema menor que fluya la comunicación entre los equipos de seguridad y desarrollo.
Protección de datos
El caso de Capital One en 2019 es significativo. Un hacker logró acceder a datos personales de más de 100 millones de personas debido a una mala configuración en el firewall de su infraestructura cloud.
Protección: utilizar AWS KMS para gestionar el cifrado de datos y la rotación de claves, Azure Key Vault para almacenar y gestionar claves de manera segura o Google Cloud Key Management para manejar criptografía y proteger los secretos. También es muy importante configurar rotaciones automáticas de claves y monitorizar los accesos a ellas. El objetivo, aunque parezca algo paranoico, es que nadie entre a un recurso sin el permiso adecuado.
Detección y respuesta ante incidentes
En 2013, Target fue víctima de un ataque que comprometió los datos de 40 millones de tarjetas de crédito. Además de adolecer de medidas de protección de datos como las explicadas anteriormente en su infraestructura, fallaron en detectar y responder adecuadamente a las alertas generadas por actividad sospechosa.
Protección: Medidas de protección de datos y, además, en AWS, GuardDuty para la detección de amenazas y AWS CloudTrail para rastrear la actividad; en Azure, Azure Security Center y Azure Sentinel para monitorizar y gestionar incidentes; y en GCP, Google Cloud Security Command Center junto con Cloud Logging para análisis forense. Configuremos alertas automáticas y procedimientos de respuesta para cada tipo de amenaza. No es nada deseable improvisar cuando llegue el momento.
Backups y plan de recuperación ante desastres
El ataque de ransomware WannaCry en 2017 dejó fuera de combate a múltiples empresas e instituciones, incluida la NHS (Servicio Nacional de Salud del Reino Unido), debido a la falta de backups actualizados y un plan de recuperación ante desastres adecuado.
Protección: utilizar AWS Backup para copias automáticas, Azure Backup para garantizar la recuperación rápida de datos o Google Cloud Backup and Disaster Recovery para proteger los sistemas críticos. Verificar regularmente que los backups se pueden restaurar y definir un plan detallado de recuperación ante desastres, especificando quién hace qué y cuándo.
En la siguiente tabla resumimos los conceptos que hemos visto a lo largo del artículo.

Conclusión
En resumen, mejorar la seguridad en entornos cloud no es cuestión de aplicar un par de trucos mágicos y listo. Requiere esfuerzo, conocimiento y una buena dosis de coordinación entre equipos (algo así como coreografiar una obra de teatro con actores más o menos motivados). Las coreografías, en arquitectura del software y en la vida real también, requieren una buena dosis de compromiso individual.
Cada fase, desde la configuración hasta la monitorización continua, es clave para que no se nos cuele un hacker cuando menos lo esperamos. La seguridad no tiene por qué ser un incordio. Con un poco de planificación y buenas prácticas, evitaremos muchos dolores de cabeza.
Porque, al final, proteger tu infraestructura es dormir mejor. Y si no seguimos estas buenas prácticas, habrá que ir pensando en tener buena relación con el equipo legal.




