Los investigadores de ciberseguridad han revelado dos nuevas técnicas de ataque contra herramientas de infraestructura como código (IaC) y políticas como código (PaC), como Terraform de HashiCorp y Open Policy Agent (OPA) de Styra, que aprovechan lenguajes dedicados de dominio específico (DSL) para violar plataformas en la nube y extraer datos.
“Dado que estos son lenguajes reforzados con capacidades limitadas, se supone que son más seguros que los lenguajes de programación estándar, y de hecho lo son”, dijo Shelly Raban, investigadora senior de seguridad de Tenable, en un informe técnico publicado la semana pasada. “Sin embargo, más seguro no significa a prueba de balas”.
OPA es un popular motor de políticas de código abierto que permite a las organizaciones aplicar políticas en entornos nativos de la nube, como microservicios, canales de CI/CD y Kubernetes. Las políticas se definen utilizando un lenguaje de consulta nativo llamado Rego que luego OPA evalúa para devolver una decisión.
El método de ataque ideado por Tenable se dirige a la cadena de suministro, en el que un atacante obtiene acceso no autorizado a través de una clave de acceso comprometida para insertar una política Rego maliciosa en un servidor OPA, que se utiliza posteriormente durante la fase de decisión de la política para permitir acciones maliciosas como la exfiltración de credenciales utilizando una función incorporada conocida como “http.send”.
Incluso en los casos en los que una implementación de OPA restringe el uso de http.send, la empresa de ciberseguridad descubrió que es posible utilizar otra función llamada “net.lookup_ip_addr” para contrabandear los datos mediante búsquedas de DNS a través de una técnica conocida como túnel DNS.
“Por lo tanto, la función net.lookup_ip_addr es otra función que podría considerar restringir o al menos tener en cuenta en las políticas, ya que también introduce el riesgo de filtración de datos de su implementación de OPA”, dijo Raban.
Terraform, similar a OPA, tiene como objetivo simplificar el proceso de configuración, implementación y gestión de recursos en la nube a través de definiciones basadas en código. Estas configuraciones se pueden configurar utilizando otro DSL declarativo llamado HashiCorp Configuration Language (HCL).
Un atacante podría apuntar a la plataforma IaC de código abierto aprovechando su comando “terraform plan”, que normalmente se activa como parte de los flujos de trabajo “pull_request” de GitHub, para ejecutar cambios no revisados que contengan una fuente de datos maliciosa durante el proceso de CI/CD.
“Las fuentes de datos se ejecutan durante el ‘plan de terraformación’, lo que reduce significativamente el punto de entrada de los atacantes”, señaló Tenable. “Esto representa un riesgo, ya que un atacante externo en un repositorio público o un interno malicioso (o un atacante externo con un punto de apoyo) en un repositorio privado podría explotar una solicitud de extracción para sus objetivos maliciosos”.
Estas fuentes de datos, a su vez, podrían ser una fuente de datos externa no autorizada, un módulo Terraform compartido a través de registros públicos o privados, o una fuente de datos DNS, lo que requiere que solo se utilicen componentes de terceros de fuentes confiables. Algunas de las otras recomendaciones para mitigar dichos riesgos incluyen:
- Implemente un control de acceso granular basado en roles (RBAC) y siga el principio de privilegio mínimo
- Configure el registro a nivel de aplicación y de nube para monitoreo y análisis
- Limitar el acceso a la red y a los datos de las aplicaciones y las máquinas subyacentes.
- Evite la ejecución automática de código no revisado y potencialmente malicioso en canalizaciones de CI/CD
Además, las organizaciones pueden utilizar herramientas y soluciones de escaneo de IaC como Terrascan y Checkov para identificar de manera preventiva configuraciones incorrectas y problemas de cumplimiento antes de la implementación.