
Docker-образы и k8s YAML-файлы для POC уязвимости Log4j (Log4j (уязвимость RCE CVE-2021-44228))
В этом репозитории содержатся docker и k8s YAML-файлы, необходимые для воспроизведения уязвимости log4j (см. ниже).
Следуйте этому блогу, чтобы понять, как всё это связано между собой.
На случай, если вам нужно настроить docker-образы
cd <Git-Repo>/web-server
make build push
cd <Git-Repo>/marshalsec
make build push
cd <Git-Repo>/attack-server
make build push
Прежде чем выполнять push, обязательно обновите DockerHub, указав ваш user-id.
Для POC вам не нужно настраивать docker-образы.
Вы можете развернуть YAML-файлы из папки k8s в любом кластере Kubernetes.
cd <Git-Repo>/k8s
kubectl create -f .
Это развернёт в кластере 3 POD'а, каждый из которых представляет собой «актора», выполняющего свою роль, чтобы мы могли понять, как работает уязвимость log4j.
Помимо YAML-файлов, включённых сюда, вам нужно развернуть Ingress в кластере Kubernetes, чтобы можно было тестировать уязвимое веб-приложение через публичные конечные точки.
Вот пример, который работает для 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