
Imagens Docker e YAMLs k8s para POC da vulnerabilidade Log4j (Log4j (Vulnerabilidade de RCE CVE-2021-44228))
Este repositório contém os YAMLs do docker e k8s necessários para recriar a vulnerabilidade log4j (veja abaixo).
Siga este blog para entender como tudo isso está conectado.
Caso você precise personalizar as imagens docker
cd <Git-Repo>/web-server
make build push
cd <Git-Repo>/marshalsec
make build push
cd <Git-Repo>/attack-server
make build push
Certifique-se de atualizar o DockerHub para refletir o seu user-id antes de tentar fazer push.
Para o POC, você não precisa personalizar as imagens docker.
Você pode implantar os YAMLs da pasta k8s em qualquer Cluster Kubernetes.
cd <Git-Repo>/k8s
kubectl create -f .
Isso implantará 3 PODs no cluster, cada um representando um "ator" desempenhando seu papel para entendermos como a vulnerabilidade log4j funciona.
Além dos YAMLs incluídos aqui, você precisará implantar um Ingress no cluster Kubernetes para permitir testar o aplicativo web vulnerável a partir de endpoints públicos.
Aqui está um exemplo que funciona para 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