Security

不為 LXC 容器載入 seccomp 規則有多危險?

  • August 25, 2016

語境

在我讓 LXC 在 Raspbian 上執行的“任務”中,我可能被迫禁用在容器啟動時載入seccomp配置,方法是在以下位置註釋掉它/usr/share/lxc/config/debian.common.conf

# Blacklist some syscalls which are not safe in privileged
# containers
#  lxc.seccomp = /usr/share/lxc/config/common.seccomp

因為 (atm) 僅容器啟動(否則會引發錯誤)..

關閉這樣一個與容器化/沙盒密切相關的基本安全設置在某種程度上違背了 LXC 的目的。從安全/穩定性的角度來看,我非常希望在執行 LXC 容器時將大多數係統呼叫列入黑名單(由 LXC 預設配置/usr/share/lxc/config/common.seccomp):

2
blacklist
[all]
kexec_load errno 1
open_by_handle_at errno 1
init_module errno 1
finit_module errno 1
delete_module errno 1

問題

不“為 LXC 容器載入 seccomp 規則”產生:

  1. **重大*安全問題?
  2. 任何其他技術(應用程序或穩定性)問題?

*假設我是唯一一個使用“母親”系統及其 LXC 容器的人(否則它會很明顯..)

好吧,seccomp 規則阻止容器修改主機核心。沒有它們,容器中的 UID 0 可以使用 kexec(如果它甚至適用於 Raspbian,我不確定)載入新核心(顯然不啟動它)和insmod/rmmod載入/解除安裝模組等這些系統呼叫不要正確考慮使用者命名空間。

這是否是一個重大的安全問題取決於您 - 您只需要記住,現在容器中的 UID 0 可以有效地成為容器外的 UID 0,即 root 可以通過載入精心製作的模組來逃離容器例如。

引用自:https://unix.stackexchange.com/questions/305630