Используя команды docker
, вы можете легко получить root -уровневый доступ к любой части файловой системы хоста. Самым базовым примером c является
docker run --rm -v /:/host busybox cat /host/etc/shadow
, который даст вам файл зашифрованных паролей, которые вы сможете взломать в автономном режиме на досуге; но если бы я действительно хотел захватить машину, я бы просто написал свою собственную строку в /host/etc/passwd
и /host/etc/shadow
, создав альтернативного пользователя uid-0 без пароля и go в город.
* У 1019 * нет никакого способа ограничить то, какие docker
команды вы можете запускать или какие файлы или тома вы можете монтировать. Так что, если вы вообще можете запустить любую команду docker
, у вас будет неограниченный root доступ к хосту. Уместно указать его sudo
.
Другим важным следствием этого является то, что использование опции dockerd -H
для обеспечения доступности сокета Docker в сети требует от вашей системы удаленного рутирования. Google "Docker cryptojacking" для некоторых подробностей и ярких примеров из реальной жизни.