從安全視角來看LXD容器管理程式

2021-09-17 06:38:54 字數 973 閱讀 1110

上個月在linux安全峰會上的演講,介紹了lxd在容器安全方便存在的問題。lxd是canonical基於linux容器(lxc)開發的容器管理程式。stéphane graber和tycho andersen的議題討論了一些問題的細節。

\\ lxd不是一種新的虛擬化技術,而是乙個利用lxc特性的工具。lxc使用由核心提供的名字空間(namespace)和控制組(control groups, cgroups)特性來實現。因此,它使用名字空間api提供的安全功能。

\\ lxd中廣泛使用了cgroups來實施資源配額,對容器的cpu、記憶體交換、磁碟和網路流量進行限制。這也使得任何因為共享核心資源引起的問題,會影響到所有執行中的容器。其中乙個示例是用於追蹤檔案系統變動的inotify控制代碼。該資源的全域性限制是每個使用者512個,這意味著主機上所有執行的容器最多能使用512個控制代碼。這對於像systemd這樣的應用程式來說是遠遠不夠的。當systemd因為inotify控制代碼不足退而使用輪訓檔案系統時,對系統影響會更大。其他類似的資源還包括網路表(例如用於儲存路由項)和ulimit。

\\ 對於上述問題中的一部分,建議的解決方案是虛擬化存在限制的環境,例如將限制繫結到名字空間,使其成為容器的區域性屬性。然而,對於類似ulimit這樣的屬性,目前還不完全清楚哪個名字空間比較適合。

\\ lxd以root特權的守護程序執行,這意味它比lxc擁有更多的特權。lxd確實從其容器中移除了一些功能,例如載入/解除安裝核心模組,但是保留了大部分功能,因為它無法提前預知容器中執行的應用程式需要哪些功能。

\\ 演講的第二部分覆蓋了容器的檢查點和恢復功能。檢查點和恢復程序儲存執行中的容器記憶體狀態,並允許在將來的某個時間點恢復回來。檢查點/恢復功能的技術涉及到通過類似ptrace系統呼叫來深入獲取程序的狀態。然而,類似seccomp這樣的安全措施可能會阻止類似的系統呼叫,因此檢查點功能需要特別的處理。

\\檢視英文原文:security insights into the lxd container hypervisor

用加密的視角來看https的安全傳輸

上次博文我們說到了加密傳輸的原理,這次我們結合一次具體的https傳輸的例子在說下,這樣大家就能了解的更加清楚。https的加密過程大致如下 a 客戶機驗證web伺服器證書有效性 b 客戶機從web伺服器證書中提取公鑰 c 客戶機與web伺服器約定在接下來的資料傳遞過程中採用對稱加密方式,客戶機將對...

通過哲學的視角來看軟體開發

做了兩年的.net 的開發,回過頭來看c 錢能的 c 書讀了好幾遍,每次都有不同的收穫。上學的時候讀了兩邊,沒有學到什麼書,等工作了,再看了幾次,越來越感到c 的偉大 語言本身沒有,這個語言的思維,是偉大的,這個語言在架構到執行的平台上就是更了不起的事情。類的機制,物件導向的機制,訊息驅動的機制,在...

從檔案視角看mysql

這裡的幾個rpm意義分別是 mysql client 包含最少的訪問mysql伺服器所需要的客戶端命令。裡面包含的是像mysql,mysqladmin這樣的工具。mysql devel 包含開發mysql客戶端所需要的庫。裡面沒有包含工具,都是包含.a這樣的庫鏈結檔案 mysql server 包含...