Uno de los mayores avances en los últimos años en la industria de software de Internet es la tecnología de despliegue de aplicaciones basada en contenedores. Con la irrupción de la metodología DevOps y la necesidad de acelerar la actualización continua de aplicaciones, este tipo de despliegues es cada vez más ubicuo. Tanto Docker como Kubernetes se han convertido, por méritos propios, en el estándar de facto para muchas empresas a la hora de poner en producción sus aplicaciones.
Qué es un contenedor
Empecemos por explicar de la forma más sencilla posible qué son los contenedores.
Buscando alguna analogía con el mundo real, podemos hablar de esos containers que vemos en los barcos y que son transportados de un sitio a otro. No importa su contenido. Lo importante es su forma y que pueden ser almacenados y transportados de un sitio a otro.
Algo parecido ocurre con los contenedores de software. En ellos se alojan todas las dependencias que la aplicación necesita para ser ejecutada, desde el propio código, la configuración del sistema operativo y el entorno de ejecución. En resumen, todo lo que la aplicación necesita para correr está agrupado en un único artefacto.
Un beneficio inmediato de los contenedores es que la validación se simplifica, ya que estos garantizan un entorno reproducible e invariable a condiciones externas.
Otro beneficio es la escalabilidad de las aplicaciones. Una aplicación desplegada en contenedores se puede replicar más fácilmente, y por tanto incrementar y disminuir capacidad en función de la demanda instantánea.
Como resultado de estos beneficios, según Gartner, «en 2023, más del 70 por ciento de las organizaciones globales ejecutarán más de dos aplicaciones en contenedores en producción, frente a menos del 20 en 2019″ (fuente: 3 Critical Mistakes That I&O Leaders Must Avoid With Containers).
Problemas de seguridad
Sin embargo, no todo es perfecto en el mundo de los contenedores. Por un lado, los riesgos de seguridad de las aplicaciones en sí mismas no cambian; y por otro, se introducen nuevos vectores de ataque en la forma en la que se define y ensambla un contenedor.
Centrándonos en la seguridad de las aplicaciones en particular, un despliegue basado en contenedores acentúa las limitaciones que las herramientas tradicionales padecen para securizar aplicaciones de manera efectiva.
El enfoque tradicional
Las herramientas tradicionales de detección de vulnerabilidades, como el análisis estático (SAST) o los escáneres de web tipo DAST, se basan en un enfoque de exploración mediante un escaneo. Estos escaneos bloquean la ejecución de la integración y el despliegue. Las empresas no pueden depender de los retrasos impuestos por las pruebas constantes que requieren el uso de un SAST o de un DAST. Lo único que consigue todo esto es formar un cuello de botella donde bien el departamento de quality assurance o el de seguridad vuelven a enviar la aplicación a los desarrolladores, frustrándose todos en el proceso.
Este es el peligro que nos encontramos en la fase previa a producción. Sin embargo, sabemos que puede haber vulnerabilidades que no sean detectadas en esta etapa. Y es aquí donde debemos asegurarnos de que las aplicaciones puedan ser protegidas en tiempo real cuando ya están desplegadas. El enfoque estándar basado en Web Application Firewalls (WAF) dista en este sentido de ser apropiado. La creación de un perímetro de seguridad no se traduce bien a la hora de asegurar contenedores.
Nuevo enfoque para el futuro
En cualquier entorno DevOps basado en contenedores, las organizaciones deben resolver tres problemas de seguridad principales. En primer lugar, detectar vulnerabilidades en las aplicaciones tanto en el código privado como en dependencias externas; por ejemplo, componentes open source. En segundo lugar, flexibilidad, es decir, que no requieran perímetros externos o configuración de redes. Y por último, han de garantizar la seguridad durante todo el ciclo de vida del desarrollo del software.
Teniendo en cuenta estas necesidades, la tecnología de Hdiv propone integrar la seguridad en la propia aplicación mediante técnicas de instrumentación. Es decir, introducir la seguridad como una dependencia más dentro del contenedor, con lo que la aplicación permanece segura allá donde el contenedor vaya.
El enfoque de protección contra ataques basado en tecnología RASP es ideal para aplicaciones que se ejecutan en contenedores
Este enfoque basado en tecnologías IAST y RASP ofrece capacidades integrales de visibilidad, monitoreo y automatización en todas las partes de la aplicación e incorpora seguridad en todas las fases del ciclo de desarrollo. Al introducir sensores de instrumentación especializados en todo el código, la seguridad de aplicaciones basada en instrumentación nos permite una detección continua, automatizada y en tiempo real de las vulnerabilidades.
Nuestra tecnología IAST implica un análisis preciso, continuo y en tiempo real; atributos clave para mantener la seguridad cuando las aplicaciones se implementan en contenedores. De manera similar, el enfoque de protección contra ataques basado en tecnología RASP es una estrategia de defensa ideal para aplicaciones que se ejecutan en contenedores. Dado que la protección se dota en la parte del servidor y se tiene una visibilidad completa del contexto de la aplicación, funciona independientemente de las condiciones de despliegue en un contenedor.