Как gVisor может защитить хост от грязной коровы PoC?
Я пытаюсь понять, как gVisor может предотвратить PoC уязвимости грязной коровы.
поэтому я прочитал код в часовом в gVisor, и кажется, что у madvise() в часовом есть блокировка, поэтому часовой может избежать состояния гонки.
в pkg / sentry / mm / syscalls.go
// Decommit implements the semantics of Linux's madvise(MADV_DONTNEED).
func (mm *MemoryManager) Decommit(addr usermem.Addr, length uint64) error {
...
mm.mappingMu.RLock()
defer mm.mappingMu.RUnlock()
mm.activeMu.Lock()
defer mm.activeMu.Unlock()
...
Но я ожидаю, что будет структурная причина, по которой gVisor избежал уязвимости "грязная корова".
Итак, я просмотрел несколько видео и документов из gVisor, но они просто продемонстрировали, что gVisor может предотвратить ситуации, когда запись в файл только для чтения.
И, к сожалению, я не смог найти других причин того, как они могут защитить файл только для чтения от кода эксплойта в этих видео.
Означает ли это, что такая же проблема будет возникать, как и в обычном докере, если часовой также имеет состояние гонки в той же точке?
Если это так, Sentry попытается записать в файл как корень, и, думаю, возникнет такая же проблема.
Или есть более фундаментальная причина, которую я упустил?
1 ответ
Из списка рассылки gVisor:
gVisor блокирует диспетчер памяти, чтобы избежать состояния гонки DirtyCow. Тем не менее, в gVisor Sentry нет ничего принципиального, что могло бы защитить его от потенциально опасных состояний гонки, кроме хороших практик программирования и тестирования.
Более фундаментальная защита gVisor заключается в том, что Sentry имеет два уровня изоляции от хоста. Он работает как процесс пользовательского пространства в заблокированном контейнере Linux. Таким образом, даже если злоумышленник обнаружит ошибку, которая позволяет ему выполнить код в Sentry, злоумышленнику потребуется независимая ошибка в небольшой поверхности атаки Linux, которая доступна в контейнере Linux. Эта защита применяется ко многим типам проблем безопасности, а не только к DirtyCow.
-https://groups.google.com/d/msg/gvisor-users/ze-6LpPoDcQ/Y1jScf32CQAJ