
Immagini Docker e YAML k8s per il POC della vulnerabilità Log4j (Log4j (CVE-2021-44228 Vulnerabilità RCE))
Questo repository contiene i file YAML per docker e k8s necessari per ricreare la vulnerabilità Log4j (vedi sotto).
Segui questo blog per capire come tutto questo è collegato.
Nel caso in cui sia necessario personalizzare le immagini docker
cd <Git-Repo>/web-server
make build push
cd <Git-Repo>/marshalsec
make build push
cd <Git-Repo>/attack-server
make build push
Assicurati di aggiornare DockerHub con il tuo user-id prima di provare a fare push.
Per la POC, non è necessario personalizzare le immagini docker.
Puoi distribuire i file YAML nella cartella k8s su qualsiasi cluster Kubernetes.
cd <Git-Repo>/k8s
kubectl create -f .
Questo distribuirà 3 POD sul cluster, ciascuno rappresentante un "attore" che svolge il suo ruolo per aiutarci a capire come funziona la vulnerabilità Log4j.
Oltre ai file YAML inclusi qui, sarà necessario distribuire un Ingress sul cluster Kubernetes per consentire il test dell'app web vulnerabile da endpoint pubblici.
Ecco un esempio che funziona per Ngnix-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