Kubernetes систем: аудиты, пентесты, архитектурные проекты. То приходится порой думать о некоторых моментах, к которым просто так не придешь, никогда об этом не задумываясь. Одним из таких последних моментов был момент, когда требовалось понять стоит ли определенные высокопривелигерованные микросервисы (там хороший SA) располагать в одном Namespace или расселить на разные. При решении этой задачи как раз и пригодился наш атакующий опыт.Смысл заключается в том, что если у злоумышленника на
Node есть возможность создать Pod в таком Namespace (где и эти высокопривелигерованные сервисы), даже с учетом того что стоит множества правильных политик PolicyEnginе (против Bad Pods и тд), то у него все равно остаётся возможность смонтировать внутрь такого Pod интересующий его SA из того же самого Namespace! Далее когда он смонтируется туда, то можно смело забирать его с Node ...Как митигейшены можно сделать следующее:
1) Чтобы уменьшить риск компрометации, критичные сервисы разделать по
Namespaces2)
Namespaces c критичными/инфраструктурными сервисами привязывать только к определенным инфраструктурным Nodes3) Писать политики
PolicyEngine, которые проверяют использование критичных SA, только в определенных сервисахP.S. Еще была крутая идея для атаки - все это провернуть через
StaticPod, но там нельзя ссылать на другие ресурсы (на тот же SA)…P.S.S. Ближайшие дни мы на
HighLoad++ 2023 Msk и будем рады пообщаться лично =)