falcóla herramienta de seguridad en tiempo de ejecución, de código abierto y nativa de la nube, recientemente egresado del programa de incubación de la Cloud Native Computing Foundation. Eso significa que se considera estable y listo para usar en entornos de producción, incluido Azure. Combina muchos de los componentes clave de una plataforma nativa de la nube, incluidos Helm, Envoy, etcd, KEDA y Cloud Events.
Recientemente tuve una conversación con Loris Degioanni, director de tecnología y fundador de empresa de seguridad nativa de la nube Sysdig y el creador de Falco, sobre la filosofía detrás del proyecto y cómo se utiliza en todo Kubernetes aplicaciones.
¿Por qué Falco?
Existe la necesidad de herramientas de seguridad diseñadas para funcionar en Kubernetes y en contenedores. Microservicio Los entornos que aumentan y disminuyen según la demanda están muy lejos de las aplicaciones monolíticas de antaño o de arquitecturas más recientes, como la de n niveles o la orientación a servicios. Las nuevas instancias deben detectarse y monitorearse tan pronto como aparecen, garantizando que a medida que nuestras mallas de servicios se vuelven más grandes y complejas, tengamos la visibilidad que necesitamos para mantenerlas seguras.
Tu puedes pensar en nativo de la nube seguridad como algo similar al papel de observabilidad en devops. No buscamos incidentes específicos, sino patrones en los datos de telemetría que muestran excepciones a la norma. Las herramientas de seguridad tradicionales pueden ayudar a proteger el código que se ejecuta en un contenedor, pero no son capaces de manejar patrones sin servidor ni infraestructura dinámica.
Patrocinado por una empresa de seguridad en la nube. Sysdig, Falco es una herramienta de seguridad en tiempo de ejecución diseñada para operar a un nivel muy bajo en sus contenedores y aplicaciones, con acceso directo a funciones de red a nivel de kernel. El resultado es la capacidad de detectar intrusiones y compromisos en tiempo real en toda su infraestructura de aplicaciones. Se recopilan datos de eventos y se utiliza un motor de reglas para identificar problemas de seguridad. Puede crear sus propias reglas o trabajar con reglas desarrolladas por la comunidad.
Es mejor considerar las reglas de Falco como políticas. Como dice Degioanni: “[Falco has] un lenguaje de políticas que se puede utilizar para definir una política, como si alguien iniciara un shell interactivo en uno de mis contenedores de Redis”. Cuando una política coincide, se genera un evento y se entrega a un servicio de monitoreo central y se utiliza para brindar la respuesta adecuada.
Una herramienta clave para Falco es el uso de eBPF sondas. Estos son scripts de espacio aislado que se ejecutan dentro del kernel de Linux y brindan monitoreo directo de las llamadas al sistema a gran velocidad. Esto debería ayudar a identificar intrusiones rápidamente, permitiéndole automatizar respuestas utilizando aplicaciones externas, por ejemplo, lanzando un evento en la nube y desencadenando acciones sin servidor que protegen sus datos.
Proteger Kubernetes desde el kernel de Linux
Falco está diseñado para funcionar en cualquier clúster de Kubernetes incluido el servicio Azure Kubernetes y entregar eventos a sus herramientas de seguridad existentes. Este enfoque le permite incluir los resultados de Falco en Azure Sentinel y trabajar con agentes de IA para ayudar a identificar problemas que podrían no estar cubiertos por las propias reglas de Falco.
Debido a que Falco trabaja a un nivel bajo y rastrea la ampliación del servicio, se parece más a una herramienta de observabilidad que a un monitor de seguridad tradicional. Degioanni piensa en Falco como una pregunta: «¿Qué significa asegurar algo que es tan dinámico y que cambia tanto?»
Trabajar con Kubernetes como orquestador de microservicios también añade complejidad. Degioanni describe el desafío:
Los usuarios tienen 500 contenedores en una sola máquina, quizás de 96 núcleos. Si tienes que poner algo dentro de todos estos y suben y bajan, ya sabes, es absolutamente inviable. Entonces, lo que hacemos es… la sonda Falco va al núcleo del sistema operativo. Entonces, no importa cuántos contenedores tenga en esta máquina de 96 núcleos, solo tendrá una instrumentación. Y cuando un contenedor sube y baja, no tiene que esperar a que su instrumentación esté activa en ese contenedor porque ya está activa en el kernel subyacente.
La forma más sencilla de instalar software en Azure Kubernetes Service es usar timón. La comunidad Falcó mantiene un gráfico de timón que instala a Falco como Conjunto de demonios desde el Repositorio Falco GitHub. Este enfoque le permite automatizar la implementación mediante Azure DevOps o Acciones de GitHub. Realmente no tiene sentido pensar en implementaciones manuales, ya que utilizará Falco como parte de una infraestructura idempotente, donde cada nueva implementación reemplaza a la anterior.
Instalar el gráfico Falco Helm es bastante fácil. Simplemente ejecute el gráfico desde su repositorio, cree un espacio de nombres Falco en su clúster y configure instancias en sus nodos. Si está ejecutando Falco como DaemonSet, debería haber un pod de Falco por nodo, utilizando su tiempo de ejecución de contenedor actual.
Ejecutando Falco en hosts de Kubernetes
Si, en lugar de utilizar Azure Kubernetes Service, está configurando su propio entorno de Kubernetes en Azure, puedes instalar Falco en el sistema host, aislándolo de la instancia de Kubernetes que está monitoreando. Las alertas todavía se administran dentro de Kubernetes, pero una instalación basada en host le brinda un respaldo en caso de un compromiso grave. El equipo de Falco proporciona instrucciones de instalación para diferentes versiones de Linux, tanto distribuciones basadas en Debian como Ubuntu y distribuciones basadas en Red Hat. Hay soporte para ARM y x64, por lo que puede aprovechar los nuevos servidores Azure de alta densidad basados en ARM de Microsoft.
Esta tabla y el archivo value.yaml enumera los parámetros configurables de Falco. Se utilizan para controlar cómo funciona el servicio, por ejemplo, administrando los controladores utilizados para alojar sondas y las API utilizadas para entregar datos a servicios externos.
Otra característica del gráfico Falco Helm es su conjunto de reglas predeterminadas. Estos le ayudarán a empezar, pero a medida que sus aplicaciones de Kubernetes crezcan y adquiera más experiencia ejecutando seguridad nativa de la nube, puedes agregar tus propias reglas personalizadas en su propio archivo se hace referencia en el diagrama de instalación.
Las reglas de Falco están escritas en YAML y pueden hacer referencia a conjuntos de reglas adicionales. Por ejemplo, puede asegurarse de que su aplicación solo utilice puertos definidos o que solo pueda generar procesos específicos y conocidos. Cualquier cosa que suceda fuera de las reglas predeterminadas y personalizadas activará una alerta.
Alimentando al monitor de seguridad
Si ya está utilizando una herramienta de seguridad de Azure como Sentinel, querrás agregar Falcosidekick a tu instalación. Esta es una extensión oficial que ayuda a administrar alertas, entregándolas a Azure Event Hub y a su SIEM (administrador de eventos e información de seguridad). De manera útil, el compañero incluye la capacidad de agregar campos personalizados a las alertas, lo que le permite agregar detalles del clúster de Kubernetes que envía la alerta. Esto es importante cuando supervisa varios clústeres, ya sea ejecutando diferentes aplicaciones en cada clúster o replicando aplicaciones geográficamente en regiones de Azure.
Otras herramientas le permiten conectarse Servicio administrado de Azure Monitor para Prometheusque le permite utilizar Grafana para crear y ejecutar paneles que brinden información de seguridad a su equipo de secops.
¿Por qué utilizar Falco en lugar de otras herramientas de seguridad de Kubernetes? La respuesta es simple: Falco es capaz de identificar nuevos patrones de ataque que pueden no ser visibles para otras herramientas. Ya sea que un atacante opere como una amenaza lenta y persistente o intente una rápida filtración de entrada y salida, comprender que se ha producido una intrusión le permite responder rápidamente, ya sea bloqueando el acceso o iniciando acciones forenses más complejas, mientras bloquea esos nuevos comportamientos inesperados.
Detener los días cero nativos de la nube
Al utilizar sondas eBPF para identificar actividades desconocidas a nivel del kernel, Falco lo mantiene al tanto de posibles vulnerabilidades de día cero en su código. Se pueden escribir reglas para alertarle sobre actividades que no forman parte de la línea base de su aplicación y que no están cubiertas por los conjuntos de reglas existentes. Por lo tanto, Falco le brinda un resumen que cubre acciones nunca antes vistas, que podrían indicar errores en su código o las operaciones de un actor de amenazas.
Sin embargo, no tiene sentido desplegar a Falco por sí solo. Azure tiene sus propias herramientas de seguridad que funcionan con Falco para proporcionar un enfoque en capas para proteger su entorno de Kubernetes. Falco no está diseñado para funcionar con aplicaciones .NET ni para monitorear Redis o PostgreSQL, por lo que necesitará trabajar con todas las herramientas disponibles para proteger sus servicios.
Alimentar un SIEM con todas las señales de todo su entorno de aplicaciones es clave. Debe poder trabajar con Falco y todas sus otras herramientas de monitoreo para comprender qué es un ataque y qué es una falla, y adaptar sus respuestas de manera adecuada. Ahora que Falco se ha graduado para convertirse en un proyecto CNCF completo, integrado en la plataforma Kubernetes, podemos comenzar a juntar esas piezas y crear aplicaciones nativas de la nube seguras y confiables, tanto en las instalaciones como en la nube.
Copyright © 2024 IDG Communications, Inc.