
Images Docker et YAMLs k8s pour Log4j Vulnerability POC (Log4j (CVE-2021-44228 RCE Vulnerability))
Ce dépôt contient les fichiers YAML Docker et k8s nécessaires pour recréer la vulnérabilité Log4j (voir ci-dessous).
Suivez ce blog pour comprendre comment tout cela s'articule.
Si vous avez besoin de personnaliser les images Docker
cd <Git-Repo>/web-server
make build push
cd <Git-Repo>/marshalsec
make build push
cd <Git-Repo>/attack-server
make build push
Assurez-vous de mettre à jour DockerHub pour refléter votre identifiant utilisateur avant d'essayer de pousser.
Pour la POC, vous n'avez pas besoin de personnaliser les images Docker.
Vous pouvez déployer les fichiers YAML du dossier k8s sur n'importe quel cluster Kubernetes.
cd <Git-Repo>/k8s
kubectl create -f .
Cela déploiera 3 PODs sur le cluster, chacun représentant un « acteur » jouant son rôle pour nous permettre de comprendre comment la vulnérabilité Log4j fonctionne.
En plus des fichiers YAML inclus ici, vous devrez déployer un Ingress sur le cluster Kubernetes pour permettre de tester l'application web vulnérable depuis des points d'accès publics.
Voici un exemple qui fonctionne pour 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