Каковы последствия для безопасности использования allow.sysvipc в тюрьме FreeBSD
Справочная страница для jail
Говорит, что allow.sysvipc
позволяет "примитивам System V [совместно] использовать единое пространство имен в среде хоста и тюрьмы...", таким образом "... процессы внутри тюрьмы смогут взаимодействовать с... процессами вне тюрьмы и в других тюрьмах ".
Каковы практические последствия этого для безопасности? Самая экстремальная интерпретация подразумевает, что при использовании этой опции эффективная безопасность во всей инфраструктуре тюрьмы невелика. (Если процессы могут вмешиваться и взаимодействовать с другими процессами на хосте и в других тюрьмах, тогда зачем вообще беспокоиться о тюрьме?)
1 ответ
Итак, получается, что крайняя интерпретация верна. Разрешение sysvipc "... победить [s] всю цель наличия тюрьмы; привилегированные пользователи из тюрьмы смогут влиять на процессы вне среды, в которой находится тюрьма".
ОБНОВЛЕНИЕ 3 августа 2010: После некоторого случайного исследования я смог уточнить некоторые детали. Проблема связана с тем, что разрешения процесса основаны на UID (обратите внимание, что это означает число, а не строковый идентификатор). Таким образом, даже если пользовательские пространства для хоста и тюрьмы взаимно разделены, это разделение не является железным, и учитывая, что root имеет UID 0, мы получаем приведенную выше цитату. Некоторые варианты минимизации риска:
- Убедитесь, что все пользователи по всей системе (хост и тюрьмы) имеют разные UID
- Отключите вход в систему root для джейлов (не поможет с процессами, запускаемыми от имени root, поэтому sudo трюки, но некоторые лучше, чем ничего.)