
Imágenes de Docker y YAMLs de k8s para el POC de la vulnerabilidad Log4j (Log4j (vulnerabilidad RCE CVE-2021-44228))
Este repositorio contiene los YAML de docker y k8s necesarios para recrear la vulnerabilidad log4j (ver más abajo).
Sigue este blog para entender cómo todo esto está relacionado.
En caso de que necesites personalizar las imágenes docker
cd <Git-Repo>/web-server
make build push
cd <Git-Repo>/marshalsec
make build push
cd <Git-Repo>/attack-server
make build push
Asegúrate de actualizar el DockerHub para que refleje tu user-id antes de intentar hacer push.
Para el POC, no necesitas personalizar las imágenes docker.
Puedes desplegar los YAML de la carpeta k8s en cualquier clúster de Kubernetes.
cd <Git-Repo>/k8s
kubectl create -f .
Esto desplegará 3 PODs en el clúster, cada uno representando un "actor" que desempeña su papel para que entendamos cómo funciona la vulnerabilidad log4j.
Además de los YAML incluidos aquí, necesitarás desplegar un Ingress en el clúster de Kubernetes para permitir probar la aplicación web vulnerable desde endpoints públicos.
Aquí tienes un ejemplo que funciona para Nginx-Ingress.
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: log4j-ingress
labels:
app: log4j
env: dev
namespace: log4j
annotations:
nginx.ingress.kubernetes.io/affinity: "cookie"
nginx.ingress.kubernetes.io/session-cookie-name: "route"
nginx.ingress.kubernetes.io/session-cookie-expires: "172800"
nginx.ingress.kubernetes.io/session-cookie-max-age: "172800"
nginx.ingress.kubernetes.io/ssl-redirect: "false"
nginx.ingress.kubernetes.io/force-ssl-redirect: "false"
#nginx.ingress.kubernetes.io/rewrite-target: /
spec:
tls:
- hosts:
- <YOUR-DOMAIN-NAME-HERE>
#secretName: tls-java-secret
rules:
- host: <YOUR-DOMAIN-NAME-HERE>
http:
paths:
- path: /
backend:
serviceName: log4j-webserver
servicePort: 8080