Linux

為什麼基於 Linux 的作業系統被認為比 Windows 更安全?

  • October 10, 2012

我聽說基於 Linux 的系統更安全。顯然他們沒有病毒,也不需要防病毒軟體。甚至我的大學也聲稱這一點——他們拒絕在他們的伺服器上安裝 Windows,這真是一種恥辱,因為我們想使用 .NET 框架來創建一些網站。

我認為 Linux 更安全的唯一原因是因為它是開源的,所以理論上錯誤會被更快地發現和修復。

我對作業系統的工作原理有所了解,但還沒有真正深入研究 Linux 和 Windows 如何實現它們的作業系統。有人可以解釋使基於 Linux 的系統更安全的區別嗎?

我不認為作業系統是“安全的”。作業系統的特定配置對攻擊具有特定程度的抵抗力。

我可能會因為在這裡成為“微軟的辯護者”而受到抨擊,但是這個文章非常不適合對不正確的“Windows”的概括。

Windows 1.0 - 3.11、95、98 和 ME 基於 DOS。這種作業系統譜系沒有任何形式意義上的安全性(受保護的地址空間、核心/使用者模式分離等)。幸運的是,當我們今天談論“Windows”時,我們並不是在談論這些作業系統。

自 1992 年首次發布以來,Windows NT 系列作業系統(Windows NT 3.5、3.51、4.0、2000、XP、2003、Vista、2008 和 7)已經“設計”了一個非常合理的安全系統。作業系統是設計時考慮到了 TCSEC“橙皮書”,雖然並不完美,但我認為它的設計和實施都相當好。

  • Windows NT 從一開始就是“多使用者”(儘管多個使用者從同一伺服器同時接收圖形使用者界面的功能直到 Windows NT 3.51 時代的 Citrix WinFrame 才出現)。存在核心/使用者模式分離,地址空間保護依賴於 MMU 和 CPU 的底層硬體功能。(我會說它非常“Unix-y”,但實際上它非常“VMS-y”。)
  • NTFS 中的文件系統權限模型非常“豐富”,雖然它與“繼承”有一些缺陷(或缺乏繼承——請參閱如何解決 NTFS 移動/複製設計缺陷?),但直到在過去 10 年左右的時間裡,Unix 風格的作業系統已經實現了類似的功能。(Novell NetWare 在這一點上擊敗了微軟,雖然我認為 MULTICS 擊敗了他們兩個……>微笑<)
  • 服務控制管理器,包括控制對啟動/停止/暫停服務程序訪問的權限系統設計得非常好,並且在設計上比各種“init.d”腳本“架構”(更像是“君子協議”)更加健壯") 在許多 Linux 發行版中。
  • 執行對像管理器(參見http://en.wikipedia.org/wiki/Object_Manager_(Windows)),它大致類似於 /proc 文件系統和 /dev 文件系統的組合,具有與文件系統相似的 ACL 模型,並且比我知道的任何 Linux 發行版上 /proc 或 /dev 的任何權限模型。
  • 雖然我們可以討論系統資料庫的優缺點,但系統資料庫中鍵的權限模型比在 /etc 目錄中設置文件權限的模型要精細得多。(我特別喜歡 Rob Short 的評論:在他的“程式碼背後”採訪中的系統資料庫:http://channel9.msdn.com/shows/Behind+The+Code/Rob-Short-Operating-System-Evolution Rob 最初是 Windows 系統資料庫背後的主要人物之一,我認為可以肯定地說他不是事情的結果一定很高興。)

Linux 本身只是一個核心,而 Windows 更類似於 Linux 發行版。您正在比較蘋果和橙子,以便像這樣比較它們。我同意 Windows 比某些基於 Linux 的系統更難“剝離”。另一方面,一些 Linux 發行版也開啟了很多“廢話”。隨著各種“嵌入式”Windows 風格的出現,有可能(儘管不是面向公眾)建構行為與 Microsoft 預設值不同的 Windows“發行版”(不包括各種服務、更改預設權限等) .

各種版本的 Windows 都存在選擇不當的預設設置、允許未經授權的使用者獲得特權的錯誤、拒絕服務攻擊等。同樣的問題。自 Windows 2000 以來,Microsoft 做了一項了不起的工作,使劃分應用程序、以最低權限執行程序和刪除作業系統不需要的功能更容易。

簡而言之,我想我要說的是,就安全性而言,給定作業系統的特定配置滿足您的需求,比您使用的作業系統類型更重要。Windows 和 Linux 發行版在安全特性方面具有非常相似的功能。您可以在任一作業系統中應用可靠的安全技術(最低權限、可選組件的有限安裝、加密安全身份驗證機制等)。不管你是否真的**這樣做——**這才是最重要的。

引用自:https://serverfault.com/questions/35656