linux本身並不是乙個安全的作業系統。這是因為linux是在unix的結構設計基礎之上進行開發的,而unix的開發者對於安全問題並沒有十分關心——畢竟那是在2023年。
「首先要面對的是事實是,unix的開發者並沒有考慮安全問題。單單這一點就會引發大量的漏洞,」dennis ritchie在2023年他《關於unix的安全》的**中寫道。
上周二在波士頓的linuxcon上,紅帽公司linux核心開發者的james morris談論了linux在過去十年裡是如何演變來克服自身安全模型的不足。
morris指出,問題是在unix誕生的60年代末,每個人都以為我們現在能擁有會飛的汽車,但事實是我們有了facebook。我們今天用計算機在做的事情可能是40多年前人們的夢想,儘管我們仍舊依賴於數十年前設計的作業系統。
這就是linux開發人員所面臨的挑戰。morris說,為了確保linux的安全,軟體工程師必須在linux核心周圍插入安全元件。linux最早的安全機制是unix dac,後來陸續出現了posix、訪問控制列表、私有和pid命名空間、加密、linux安全模組、selinux、smack、tomoyo、 apparmor,類似的名單仍在繼續。
但是擁有這麼多選擇,使用者們反而會覺得茫然。這有點像進入了乙個「酷聖石」冰激凌店,然後你會被一長串配方和冰激凌口味弄得無所適從。不如老老實實地按照自己預定的食譜來選,或者更簡單,直接從附近的雜貨店挑一品脫櫻桃加西亞。
眼花繚亂的linux安全選項
linux無數的安全選項不僅阻礙了安全技術的發展,同時也為建立安全的linux伺服器和工作站製造了困難。例如,乙個使用者或者系統管理員不得不去決定是否要開啟smack、tomoyo、selinux還是apparmor。做這樣的決定並不像想象的那麼簡單,因為這些技術中的很多都解決類似的問題,只是它們的處理方式略有不同。比如說,novell為它的suse linux企業伺服器開發了apparmor,它是selinux的競爭對手。novell在其apparmor**上發布了兩種技術的比較。結果是,apparmor擁有更簡單的配置檔案格式(注:很多使用者一直覺得selinux的安全級別設定十分麻煩,甚至也有報道說selinux會導致安全問題,因此有很多教程都是教人如何關閉selinux的)。
我們還沒有討論關於網路安全、儲存安全和惡意軟體預防。這涉及到為資料報過濾設定防火牆。至於阻止惡意軟體,目前有幾個處於不同發展階段的專案,比如fsnotify、talpa 和dazukofs。
morris還說,最大的問題是「讓人們認識到安全措施是必要的。」
「這不像系安全帶。」morris說,「我們不能讓法律來制約人們設定安全的linux伺服器和工作站。我們必須說服人們,這樣做對他們有利。」
linux安全機制的透明化
因此,我們需要讓安全選項盡可能的透明化,而不是讓絕大多數linux使用者苦苦掙扎於無數的安全選項中,morris說。
透明化是apparmor的既定目標之一。suse的tony jones說,「apparmor的目的是對於應用軟體實現高度透明:如果你在乙個工作系統中新增apparmor,你需要開發apparmor配置檔案,但是不用改變你的應用程式。如果將apparmor從乙個正在執行的系統中移除,系統仍將完全像之前一樣繼續執行,只是沒有apparmor安全保護而已。」
雖然selinux的配置檔案比apparmor的更麻煩,但是透明化也是它的目標之一。紅帽稱,「selinux插入linux安全模組(lsm)能夠為多個普通網路面應用程式處理網路核心層訪問請求。對於這些應用程式,基於selinux的安全體系不需要進行額外的管理。此外,對使用者和應用程式而言,它是完全透明的。」
提高透明度的好處是它可以減少人為的安全威脅。人們就像水一樣,喜歡尋找沒有阻礙的道路。如果系統管理員需要通過編寫繁瑣的配置檔案和頁面來設定乙個安全的系統,那麼他們中的很多人可能很輕易地就氣餒了。
「安全問題歸根結底是人的問題,」安全專家bruce schneier說。
Linux筆記 10(許可權與指令間的關係)
linux筆記 10 標籤 空格分隔 linux 1.讓使用者能進入某目錄成為 可工作目錄 的基本許可權為 2.使用者在某個目錄內讀取乙個檔案的基本許可權為 3.讓使用者可以修改乙個檔案的基本許可權為 目錄所需許可權 使用者在該檔案所在的目錄至要有 x 許可權 檔案所需許可權 使用者對檔案至少需要 ...
Linux學習筆記1 Linux的歷史與現狀
現實是歷史的延續,歷史是現實的根源和發展脈絡。學習linux,不一定要了解其歷史。但真正理解了其歷史,就能更加清晰地感受到未來的發展趨勢。每個領域都有大神。linux是由兩位大神發起的。一位大神就是芬蘭赫爾辛基大學linus torvalds,另一位大神是richard stallman。linus...
Linux 執行緒間的同步與互斥
執行緒同步 條件變數 為什麼使用條件變數?對臨界資源的時序可控性,條件滿足會通知其他等待操作臨界資源的執行緒,類似訊號。場景 t day展會排隊參觀 生產者消費者模型 條件變數是什麼?是一種同步機制,乙個執行緒用於修改這個變數使其滿足其它執行緒繼續往下執行的條件,其它執行緒則接收條件已經發生改變的訊...