Detección de Amenazas en Kubernetes con Kubescape

Detección de Amenazas en Kubernetes con Kubescape

Se puede utilizar como una herramienta de línea de comandos, como un operador dentro de un clúster, como parte de un proceso de CI/CD, o en muchos más

Resolviendo análisis de riesgo, malas configuraciones, seguridad, en nuestro Cluster. Una manera de salvar un tiempo valioso, como administrador.

No es novedad que Kubernetes es parte de nuestro dia a dia, que pocas empresas están fuera de la contenerización de aplicativos. Estos ambientes son complejos y nos acarrean un montón de desafíos en temas de Seguridad.

Para tener una postura fuerte es crítico implementar controles que nos aporten visibilidad sobre posibles vulnerabilidades o malas configuraciones en nuestro ambiente.

Vamos a instalar Kubescape, junto con Prometheus y Grafana para construir una solución que pueda llevar los hallazgos a otro nivel. Si nunca montaste observabilidad en tu cluster, te dejo esta entrada sobre armamos algo básico.

Instalación de Cliente de Kubescape

Con este comando podemos instalar el cliente de Kubescape.

curl -s https://raw.githubusercontent.com/kubescape/kubescape/master/install.sh | /bin/bash

Vamos a realizar el primer scanneo, para ver nuestro punto de partida. Utilizaré el framework de NSA y filtrare algunos namespaces. Hay bastantes frameworks para seleccionar en base a tus necesidades de cumplimiento.

kubescape scan framework nsa --exclude-namespaces kube-system,kube-public

Lo bueno de Kubescape es que podemos agregarlo a nuestro pipeline para realizar escaneos hasta en manifiestos. Podemos tener un enfoque proactivo o reactivo.

Instalación en el Cluster Kubernetes

Ahora llegó el momento de la mejora continua, nada mejor que un monitoreo continuo. Ya tenemos nuestro cluster con Prometheus & Grafana, ahora integremos a Kubescape. Si no te dejo el comando para agregar el stack.

helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
helm repo update
kubectl create namespace prometheus
helm install -n prometheus kube-prometheus-stack prometheus-community/kube-prometheus-stack --set prometheus.prometheusSpec.podMonitorSelectorNilUsesHelmValues=false,prometheus.prometheusSpec.serviceMonitorSelectorNilUsesHelmValues=false

Nota: Si ya tenemos instalado Prometheus, deberíamos hacer algunas parametrizaciones como las que dejo abajo con un upgrade sobre el helm, si es que fue tu manera de desplegar.

--set prometheus.prometheusSpec.podMonitorSelectorNilUsesHelmValues=false,prometheus.prometheusSpec.serviceMonitorSelectorNilUsesHelmValues=false

Existe cantidad de tutoriales sobre como acceder a grafana, no voy a detenerme ahi. Aca te nuestro namespace de observabilidad que lo he llamado prometheus.

Ahora vamos a desplegar nuestro kubescape-operator sobre el namespace kubescape.

helm upgrade kubescape kubescape/kubescape-operator -n kubescape --install --set capabilities.prometheusExporter=enable --set configurations.prometheusAnnotations=enable

Uala!

Utilización en Grafana

Vamos a ingresar a grafana, para comenzar con nuestras búsquedas.

Ya empezamos a ver las métricas del escaneo continuo. Ahora tenemos un potente dashboard, para ir llenando nuestro backlog de trabajo. Les voy a compartir un Dashboard que hizo la comunidad, para ir jugando. Simplemente deben importar este código. Se ve algo asi.

No hace falta que comente la potencia de la herramienta y la sencillez que nos regala a la hora de poder ser asertivos a la hora de resolver inconvenientes de nuestra infraestructura Kubernetes. Espero que les sirve.