本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
執行時間安全
執行階段安全提供容器執行時的主動保護。這個想法是檢測並防止惡意活動發生您的容器。
使用安全運算 (seccomp
),您可以防止容器化應用程序對底層主機操作系統的內核進行某些 syscalls。雖然 Linux 作業系統有幾百個系統呼叫,但其中大部分是不需要執行容器。藉由限制容器可以製作哪些 syscalls,您可以有效地減少應用程式的攻擊面。
要開始使用 seccomp,您可以使用strace
來生成堆棧跟踪,以查看您的應用程序正在進行哪個系統調用。您可以使用如syscall2seccomp
從堆疊追蹤收集的資料建立 seccomp 設定檔。如需詳細資訊,請參閱「」擱淺
與 SELinux 安全模組不同,seccomp 無法彼此隔離容器。但是,它可以保護主機內核免受未經授權的系統調用。它通過攔截系統調用,並只允許那些被允許列出的系統調用。Docker 具有一個default
注意
您也可以為需要其他許可的事物建立自己的設定檔。
ArperMAppArmor 是一個類似於 seccomp 的 Linux 安全模塊,但它限制了容器的功能,包括訪問文件系統的部分。它可以在enforcement
或complain
模式。由於建立 ApperAppArmor 定檔可能具有挑戰性,所以建議您使用像bane
重要
虛 AppArmor 只適用於 Linux 的 Ubuntu 和 Debian 發行版。
Recommendations
我們建議您在設定執行階段安全性時採取下列動作。
為執行階段防禦使用第三方解決方案
為執行階段防禦使用第三方解決方案。如果您熟悉 Linux 安全性的運作方式,請建立和管理節目和虛擬 AppArmor 定檔。兩者都是開源項目。否則,請考慮改用不同的協力廠商服務。大多數使用機器學習功能來封鎖或警示可疑活動。如需可用的協力廠商解決方案清單,請參閱AWS Marketplace適用於容器
使用節段原則新增或移除 Linux 功能
使用 seccomp 可更好地控制 Linux 功能,並避免系統呼叫檢查錯誤。Seccomp 的運作方式是系統呼叫篩選器,可撤銷執行特定系統呼叫或使用特定系統呼叫的權限。