В связи с новостью об удалении/отказе/замене от Pod Security Policies и анализом последних уязвимостей, атак, в голове образовалась следующая параллель с развитием методов атак и защит из мира бинарной эксплуатации (скорее всего большинство далеки от данной темы, но я надеюсь мысль уловите).
Сначала для перехвата потока управления программы атакующие влияли тем или иным способом на Код. Чтобы это предотвратить Код обложили большим количеством механизмов безопасности типа
Вот так же и с
Сначала для перехвата потока управления программы атакующие влияли тем или иным способом на Код. Чтобы это предотвратить Код обложили большим количеством механизмов безопасности типа
DEP/SEHOP/ASLR/CFG/PAC/...
. В итоге, были придуманы так называемые Data-Oriented Attacks, Data-only Attacks
- они в свою очередь помогали перехватить поток управления не через влияния на Код, а Данные. Защиты от таких атак можно встретить только в академических работах, ввиду большого overhead
'а и ряда других ограничений. При этом Данные как вы понимаете у каждой программы различаются очень сильно - нельзя стандартизировать.Вот так же и с
PodSecurityPolicy
. Он был заточен только под контроль workload
(Pod
'ов). А в итоге, атакующий может сделать много всего “интересного” и без влияния на сущности, представляющие workload
'ы - через kubernetes ресурсы чисто описывающие некоторые настройки. Тут примеры и с `PersistentVolumes и с
LoadBalancer и т.д. Но ввиду что эти ресурсы (Данные и все есть `YAML
) стандартизированы и есть как минимум такой механизм как Admission Controller это все можно проверять перед применением. На лицо преимущество декларативной системы и подхода Something as Code
в целом.