
Log4j कमजोरी POC (Log4j (CVE-2021-44228 RCE कमजोरी)) के लिए Docker images और k8s YAMLs
इस रेपो में log4j भेद्यता को पुनः बनाने के लिए आवश्यक डॉकर और k8s YAML फ़ाइलें हैं (नीचे देखें)।
इस ब्लॉग का अनुसरण करें ताकि समझ सकें कि यह सब कैसे जुड़ा हुआ है।
यदि आपको डॉकर इमेजेज़ को कस्टमाइज़ करने की आवश्यकता हो तो
cd <Git-Repo>/web-server
make build push
cd <Git-Repo>/marshalsec
make build push
cd <Git-Repo>/attack-server
make build push
सुनिश्चित करें कि पुश करने का प्रयास करने से पहले आपने अपने user-id को दर्शाने के लिए DockerHub को अपडेट किया है।
POC के लिए, आपको डॉकर इमेजेज़ कस्टमाइज़ करने की आवश्यकता नहीं है।
आप k8s फ़ोल्डर के अंतर्गत YAMLs को किसी भी Kubernetes Cluster पर डिप्लॉय कर सकते हैं।
cd <Git-Repo>/k8s
kubectl create -f .
यह क्लस्टर पर 3 PODs डिप्लॉय करेगा, प्रत्येक एक "अभिनेता" का प्रतिनिधित्व करता है जो अपनी भूमिका निभाता है ताकि हम समझ सकें कि log4j भेद्यता कैसे काम करती है।
यहां शामिल YAMLs के अलावा, आपको Kubernetes क्लस्टर पर एक Ingress डिप्लॉय करने की आवश्यकता होगी ताकि सार्वजनिक एंडपॉइंट्स से भेद्य वेब ऐप का परीक्षण किया जा सके।
यहाँ एक नमूना है जो 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