Kubelet Authentication & Authorization

Reading time: 4 minutes

tip

Jifunze na fanya mazoezi ya AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Jifunze na fanya mazoezi ya GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Jifunze na fanya mazoezi ya Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Support HackTricks

Kubelet Authentication

Kutoka kwenye docss:

Kwa default, maombi kwa mwisho wa HTTPS wa kubelet ambayo hayakukataliwa na mbinu nyingine za uthibitishaji zilizowekwa yanachukuliwa kama maombi ya kutotambulika, na yanapewa jina la mtumiaji system:anonymous na kikundi cha system:unauthenticated.

Mbinu 3 za uthibitishaji ni:

  • Kutotambulika (default): Tumia kuweka param --anonymous-auth=true au usanidi:
json
"authentication": {
"anonymous": {
"enabled": true
},
  • Webhook: Hii itawawezesha API bearer tokens za kubectl kama idhini (token yoyote halali itakuwa halali). Ruhusu kwa:
  • hakikisha kundi la API authentication.k8s.io/v1beta1 limewezeshwa katika seva ya API
  • anzisha kubelet na bendera za --authentication-token-webhook na --kubeconfig au tumia mipangilio ifuatayo:
json
"authentication": {
"webhook": {
"cacheTTL": "2m0s",
"enabled": true
},

note

Kubelet inaita TokenReview API kwenye seva ya API iliyowekwa ili kubaini taarifa za mtumiaji kutoka kwa alama za kubeba

  • X509 client certificates: Ruhusu kuthibitisha kupitia X509 client certs
  • angalia apiserver authentication documentation kwa maelezo zaidi
  • anza kubelet na bendera --client-ca-file, ukitoa pakiti ya CA ili kuthibitisha vyeti vya wateja. Au kwa usanidi:
json
"authentication": {
"x509": {
"clientCAFile": "/etc/kubernetes/pki/ca.crt"
}
}

Kubelet Authorization

Maombi yoyote ambayo yamefanikiwa kuthibitishwa (ikiwemo maombi ya kutotambulika) yanaruhusiwa. Njia ya kuthibitisha ya AlwaysAllow inaruhusu maombi yote.

Hata hivyo, thamani nyingine inayowezekana ni webhook (ambayo ndio utakuwa ukiona zaidi huko nje). Njia hii itafanya ukaguzi wa ruhusa za mtumiaji aliyeidhinishwa ili kuruhusu au kukataa kitendo.

warning

Kumbuka kwamba hata kama uthibitisho wa kutotambulika umewezeshwa, upatikanaji wa kutotambulika huenda usiwe na ruhusa za kufanya kitendo chochote.

Kuthibitisha kupitia webhook kunaweza kuwekewa mipangilio kwa kutumia param --authorization-mode=Webhook au kupitia faili ya usanidi na:

json
"authorization": {
"mode": "Webhook",
"webhook": {
"cacheAuthorizedTTL": "5m0s",
"cacheUnauthorizedTTL": "30s"
}
},

Kubelet inaita SubjectAccessReview API kwenye seva ya API iliyowekwa ili kuamua ikiwa kila ombi lime idhinishwa.

Kubelet inaruhusu maombi ya API kwa kutumia njia ile ile ya attributes za ombi kama apiserver:

  • Kitendo
Kitenzi cha HTTPkitenzi cha ombi
POSTkuunda
GET, HEADpata (kwa rasilimali binafsi), orodha (kwa makundi, ikiwa ni pamoja na maudhui kamili ya kitu), angalia (kwa kuangalia rasilimali binafsi au kundi la rasilimali)
PUTsasisha
PATCHpatch
DELETEfuta (kwa rasilimali binafsi), futakoleksiyoni (kwa makundi)
  • Rasilimali inayozungumza na Kubelet api ni daima nodes na subresource inapatikana kutoka kwa njia ya ombi linalokuja:
Kubelet APIrasilimalisubresource
/stats/*nodesstats
/metrics/*nodesmetrics
/logs/*nodeslog
/spec/*nodesspec
rasilimali zingine zotenodesproxy

Kwa mfano, ombi lifuatalo lilijaribu kufikia taarifa za pods za kubelet bila ruhusa:

bash
curl -k --header "Authorization: Bearer ${TOKEN}" 'https://172.31.28.172:10250/pods'
Forbidden (user=system:node:ip-172-31-28-172.ec2.internal, verb=get, resource=nodes, subresource=proxy)
  • Tulipata Forbidden, hivyo ombi lilipita ukaguzi wa Uthibitishaji. La sivyo, tungekuwa na ujumbe wa Unauthorised tu.
  • Tunaweza kuona jina la mtumiaji (katika kesi hii kutoka kwa token)
  • Angalia jinsi rasilimali ilikuwa nodes na subresource proxy (ambayo ina maana na taarifa za awali)

References

tip

Jifunze na fanya mazoezi ya AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Jifunze na fanya mazoezi ya GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Jifunze na fanya mazoezi ya Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Support HackTricks