Llegamos a ustedes gracias a:



Reportajes y análisis

Asegurar la infraestructura como código: Riesgos y mejores prácticas

[26/07/2021] A medida que las organizaciones adoptan la computación en la nube, la tasa de adopción de infraestructura como código (IaC, por sus siglas en inglés) sigue aumentando. Al igual que con muchas tecnologías nuevas, la seguridad a menudo se atornilla a la IaC o se olvida por completo. Asegurar la IaC es importante. A continuación, le mostramos cómo hacerlo mejor y los riesgos de descuidar esta actividad de seguridad crítica.

[Reciba lo último de CIO Perú suscribiéndose a nuestro newsletter semanal]

¿Qué es la infraestructura como código?

Las formas tradicionales de implementar la infraestructura implicaban procesos de adquisición, infraestructura física, largos tiempos de espera y racks de servidores. Incluso con el advenimiento de la computación en la nube, los métodos iniciales de administración de la infraestructura implicaron "operaciones de clic, como se le llama; o ingresar manualmente a la consola del proveedor de servicios en la nube (CSP, por sus siglas en inglés) y crear instancias de la infraestructura directamente. Este enfoque es ineficiente, propenso a errores y no crece cuando se trata de ambientes empresariales en la nube.

La IaC cambia este paradigma al permitir la codificación y la gestión programática de la infraestructura, al igual que lo haría con el código de aplicación tradicional. Esto significa que puede utilizar prácticas como el control del código fuente, control de las versiones, reutilización, portabilidad, detección de desviaciones y automatización.

Las versiones populares de la IaC incluyen sabores específicos de CSP de IaC, como Cloudformation de AWS o Blueprints de Azure.También existen opciones de IaC populares de terceros, siendo HashiCorp de Terraform la más popular, con más de 100 millones de descargas. Los beneficios de una IaC de terceros es que se puede utilizar en varios ambientes de CSP.

Con la facilidad y la velocidad viene el riesgo

Para todos los beneficios de la IaC, existen peligros que debe conocer para evitar la introducción de riesgos innecesarios en sus ambientes de nube. El abastecimiento rápido de plantillas de IaC, implica la introducción potencialmente rápida de configuraciones inseguras y riesgos en las empresas. Lo mismo puede decirse del aprovechamiento de las plantillas de IaC disponibles públicamente. Estas plantillas pueden contener, y a menudo contienen, desviaciones de las mejores prácticas de seguridad o configuraciones inseguras.

El Cloud Threat Report de la Unit 42 de Palo Alto: primavera del 2020 reveló muchos hallazgos alarmantes. A pesar de la capacidad de hacer cumplir la seguridad a través de la IaC, las organizaciones a menudo no lo hicieron. Casi el 50% de las plantillas de CloudFormation examinadas tenían configuraciones potencialmente vulnerables. También identificaron que casi el 22% de todos los archivos de configuración de Terraform examinados también tenían al menos una configuración insegura.

La investigación realizada por la empresa de seguridad de la IaC, BridgeCrew, analizó más de 15 mil archivos de Terraform, e identificó que casi el 50% de ellos incluían configuraciones incorrectas que podrían exponer los datos de las organizaciones o comprometer las cargas de trabajo. Hubo más de 10 millones de descargas de esos archivos.

Como muestran estos estudios, aunque las organizaciones maximizan el uso de la IaC, a menudo lo hacen sin examinar las plantillas para detectar errores de configuración y vulnerabilidades de seguridad. Esto incluye tanto las plantillas de IaC desarrolladas internamente como las tomadas de repositorios públicos. Tenga cuidado al utilizar plantillas de IaC existentes, ya sea de repositorios públicos o internos, y examínelas en busca de configuraciones erróneas y vulnerabilidades.

Dado que la mayoría de los robos de datos en la nube son el resultado de configuraciones incorrectas de los clientes, ¿no deberíamos inyectar más rigor de seguridad en el abastecimiento rápido y dinámico de la IaC que tiene el potencial de replicar configuraciones incorrectas a escala?

Mejores prácticas de seguridad para la infraestructura como código

Dado que la IaC se usa de la misma manera que otros mecanismos de código, puede integrarse en estructuras y flujos de trabajo similares. Esto significa que puede almacenarse en repositorios de administración de código fuente (SCM, por sus siglas en inglés), integrarse en pipelines de integración continua/implementación continua (CI/CD) y escanearse en tiempo de ejecución.

Existen muchas herramientas de escaneo de IaC para explorar. Algunas de las opciones populares de código abierto incluyen a Terrascan, Checkov, y TFLint. Cada uno puede escanear las plantillas de la infraestructura de la nube contra miles de políticas alineadas con una multitud de marcos de cumplimiento para detectar tanto las infracciones de cumplimiento como las configuraciones inseguras que introducen vulnerabilidades.

La plataforma de escaneo de IaC de Accurics, por ejemplo, le permite escanear plantillas de IaC con Azure Blueprints, AWS Cloudformation Templates y Kubernetes YAML, que se manifiestan para asegurar que los errores de configuración o configuraciones vulnerables no sean introducidos a sus ambientes. Accurics contiene más de mil 500 políticas en 10 estándares, como CIS Benchmarks, SOC2, PCI DSS e HIPAA.

Escaneo de plantillas de IaC en busca de problemas de configuración.

Esto incluye escanear estas plantillas cuando se crean y almacenan por primera vez en repositorios de SCM, lo que garantiza que las vulnerabilidades o desviaciones de cumplimiento se notifiquen rápidamente a los autores de la IaC para su corrección.

Las plantillas de IaC también se pueden escanear como parte de los pipelines de CI/CD con varias puertas de control para garantizar que no se promuevan a ambientes de tiempo de ejecución, e introduzcan riesgos no deseados en el ambiente de nube de una organización. Esto ayuda a validar que cualquier infraestructura que se abastezca en el ambiente no presente vulnerabilidades. También ayuda a garantizar que todo lo provisto se alinee con los marcos de cumplimiento organizativos y de cumplimiento aplicables en la industria.

Por último, existe la necesidad de implementar una gestión continua de la postura en la nube (CSPM, por sus siglas en inglés) para garantizar que las plantillas de IaC "conocidas como buenas, que se permitían abastecer y ejecutar no se hayan desviado y no se hayan introducido manualmente cambios inseguros o no compatibles. Aquí es donde debe asegurarse de escanear continuamente sus ambientes de ejecución para monitorear este tipo de escenarios y riesgos. Cuando se detectan desviaciones e infracciones, puede trabajar con el fin de implementar la corrección como código para restaurar su ambiente a un estado previamente revisado y autorizado.

También es importante escanear los repositorios de SCM de IaC periódicamente, a medida que se agregan nuevas comprobaciones de cumplimiento y seguridad a las herramientas que pueden no haber existido cuando las plantillas de IaC se comprometieron inicialmente. Esto ayuda a revelar hallazgos previamente desconocidos que ahora pueden existir.

Primeros pasos para la gobernanza de la IaC

Las organizaciones pueden comenzar el camino de la implementación de la gobernanza de la IaC determinando elementos como qué formas de IaC se están utilizando en su ambiente, quién, dónde y cómo se crean, almacenan y ejecutan estas plantillas. Luego, los equipos de seguridad pueden comenzar a introducir algo de rigor utilizando herramientas, como las mencionadas anteriormente, para comenzar a integrarse en los flujos de trabajo existentes, descubriendo vulnerabilidades y desviaciones de cumplimiento, y brindando retroalimentación rápida para las remediaciones a los autores de la IaC.

Como ocurre con todo lo relacionado con la seguridad, es importante integrarse con los métodos y flujos de trabajo existentes para evitar convertirse en un cuello de botella. Deseará introducir una fricción "saludable en los flujos de trabajo de los desarrolladores para asegurarse de que la productividad no se vea afectada innecesariamente por vulnerabilidades y se aborden los problemas de cumplimiento, al tiempo que permite que los equipos operen a una velocidad de relevancia para las partes interesadas y los clientes.

A medida que las organizaciones adoptan cada vez más la computación en la nube, cambian a enfoques de DevOps/DevSecOps y buscan aumentar la velocidad y las capacidades dinámicas, la adopción de la IaC seguirá aumentando. Si la seguridad aprovecha las prácticas y herramientas analizadas, pueden ayudar a facilitar esta adopción de forma segura, al tiempo que garantizan que su organización no introduzca rápidamente riesgos injustificados e incluso la explotación de los ambientes de nube.

Basado en el artículo de Chris Hughes (CSO) y editado por CIO Perú

Puede ver también: