 |  | 內容: |  | 安全的定義 |  | 完整性 |  | 機密性 |  | 可用性 |  | Linux 系統安全 |  | 結束語 |  | 參考資料 |  | 作者簡介 |  | 對本文的評價 |  |
|
 | 相關內容: |  | 解決 Linux 中的安全問題 |  | 實用 Linux 安全性 |  | Linux 安全編程專欄 |  |  |
|
| 對安全的含義的思考
Mario Eberlein, IT 架構師, IBM Rene Auberger, 軟件 IT 架構師, IBM Wolfram Andreas Richter, IT 架構師, IBM
2004 年 8 月 02 日 惟有謹小慎微者方可幸存,與其他領域一樣,在確保 Linux®系統的安全時,這句話也同樣適用。幸運的是,有很多安全部件,或者已經編譯到內核中,或者已經加入到很多 Linux發行版本中,或者可以以開放源代碼應用程序的形式單獨獲得。作為本系列的第 1部分,本文將使您開始理解安全的概念及潛在的危險,并為您真正需要知道的內容做好準備:如何保護和加固基于 Linux 的安裝。 在這三篇系列文章中,您將看到如何以一種安全的方法來計劃、設計、安裝、配置和維護運行 Linux 的系統。除了安全概念的理論概述、安裝問題、潛在的危險及其作用以外,您還將得到關于如何保護和加固基于 Linux 的系統的實用建議。我們將討論最小化安裝、加固 Linux 安裝、授權/認證、本地和網絡安全、攻擊和如何防御攻擊,以及數據安全、病毒和惡意程序。 在第一篇文章中,我們將首先回顧保護數據及保護數據的系統的考慮。我們的目標是對安全的實際含義的更深入理解。 安全的定義 安全是當今 IT 相關頭條新聞的一個重要話題。經常出現的系統漏洞和安全補丁以及病毒和蠕蟲是每個使用計算機的人都耳熟能詳的名詞。因為幾乎每臺計算機系統都連接到另外的計算機或者連接到 Internet,因此確保這些計算機的安全,對于減少入侵、數據竊取或丟失、誤用甚至對第三方的責任而言是至關重要的。 確保安全即使對于沒有連接到網絡的獨立的計算機也是很重要的。必須自可信賴的來源安裝應用程序,比如經過驗證的并檢查過病毒的光盤。對應用程序數據也必須同樣小心。例如,對于可以執行強大的宏語言或者引入非法數據的軟件程序包(office 套件等等),其軟件缺陷可能會被利用來執行任意的代碼。因此,應用程序數據在拷貝到計算機之前必須經過完整性檢查?梢酝ㄟ^將數據放置在一個安全的地方來控制對系統的訪問(當然,不考慮來自已授權人員的攻擊)。 當系統連接到網絡并向其他計算機提供服務(有意地或無意地)時,事情會變得更為棘手。在那種情況下,數據可能不只是來自系統管理員,因為客戶機程序要使用所提供的服務,而系統漏洞可能會讓入侵者控制計算機。 這就是為什么安全是從開始計劃直到拆除系統的整個系統生命周期中最基本的問題。但是,安全的確切含義是什么? 通常,數據安全和系統安全可以分開來考慮。 數據安全通常被認為是確保以下方面的所有努力: - 機密性(Confidentiality)。
- 完整性(Integrity)。
- 可用性(Availability)。
綜合起來,這些被稱作是存儲在計算機上的數據的“CIA”。對 /etc/passwd 等配置數據的保護可以歸類為數據安全。 系統安全 指的是計算機平臺本身。美國 NationalInformation Systems Security Glossary(參閱 參考資料 以獲得鏈接)對系統安全的定義如下: 系統安全。對信息系統的保護,防止未授權的訪問及對信息(不論是存儲中的、正在處理的還是正在傳輸的)的修改,并防止對授權用戶服務的拒絕或對未授權用戶服務的允許,包括那些檢測、記錄和反擊此類威脅的措施。 重要的是要認識到系統安全強調的是一個反復的過程,這個過程包括應用安全補丁、經常審計、控制,同時最起碼要有一個安全的系統配置。就此而言,不可能保證絕對的安全,也不可能提供百分之百安全的服務。目標更應該是在安全性、系統可用性和維護這個安全層級所需要的努力這三者之間找到一個折衷點。這個折衷取決于安全對于存儲在計算機中的數據來說的重要性以及這些數據預期的使用情形(閱讀 Bruce Schneier 的 Secrets and Lies,John Wiley & Sons,2000;參閱 參考資料以獲得鏈接)。 完整性 具備 完整性 的數據是指合法的而且沒有經過偶然的或惡意的修改。當進行數據存儲或交換時應該考慮其完整性。目標接收到的數據必須是源數據的原樣拷貝。這就是說,一方面,物理傳輸和存儲媒介必須是可靠的,以使得數據可以正確地傳輸而不發生位錯誤。另一方面,數據必須不能被未經授權的實體不加檢測地訪問而修改。完整性的范圍是從用戶—— 最終的權威 —— 將數據委托給系統后開始的。因此用戶錯誤不在完整性范圍之內。 對網絡連接而言,要尤其注意確保完整性,不管網絡是否安全(例如,通過加密傳輸)。在傳輸過程中,可以訪問傳輸媒介的第三方可能會重新路由或者修改數據。涉及網絡的物理環境和互聯的計算機的完整性的方面并不特定于 Linux,而是對所有計算機安裝來說都是如此;因而這也超出了本文的范圍。無論如何,除了其他方法之外,在物理層上采取的保護數據的措施包括,限制對計算機的訪問、保持對傳輸媒介(比如電纜和連接器)的保護,以及避免停電和靜電釋放(閱讀“Building the Ideal Web Hosting Facility: A Physical Security Perspective”,參閱 參考資料以獲得鏈接)。 本系列文章將集中關注加密和簽名等在操作系統和應用程序環境中采取的措施,以積極地確保完整性。本文還將關注審計機制,以識別完整性的缺失并確定應對此負責的當事人。 機密性 當受保護的數據只能被授權的人或系統讀取或者修改時,要保持其 機密性。這是一個與完整性截然不同的概念:當數據在網絡上傳輸時,它可能是被毫無修改地正確傳輸,因此確保了其完整性,但是如果被第三方中途截取的話就再也不是機密的了。當未被授權的人可以訪問數據傳輸并從中獲取有價值的信息時,只有完整性是不夠的。數據的機密性引出了三個更深入的問題: - 誰希望訪問數據?(認證)
- 哪些數據可以被訪問?(授權)
- 如何保護數據不受未授權的訪問?
Linux 有若干方法可以確保試圖訪問數據的實體是其所宣稱的那一個。通過 Pluggable Authentication Modules(PAM),您可以實現一些認證策略,從存儲在本地機器上一個集中目錄(NIS、Kerberos、LDAP 等等)中簡單的用戶名/口令組合,到硬件標識或生物特征掃描不等。文件訪問的授權可以使用傳統的(粗糙的)UNIX 文件權限來解決:用戶、組或全體級別的讀、寫和執行權限。較新的細粒度的(fine-grained)方法 —— 訪問控制列表(Access Control Lists)—— 讓您可以為具體的用戶授予或拒絕具體的權限。 標準 Linux 安全概念是在軟件中實現的,依賴于內核不接受沒有被授權的用戶對資源的使用。不過,內核缺陷(特權提升/自動調整、未經檢查的參數,等等)可能會使用戶可以訪問先前不能訪問的內存區域、磁盤空間、網絡或者其他資源。通過安裝擊鍵記錄器(keyloggers)、取走硬盤驅動器并在其他機器中讀取、嗅探網絡傳輸等等,對硬件物理上的訪問可以讓用戶繞過軟件檢查。這樣,必須采取更進一步的努力來保護機密的數據,比如文件系統、單個文件、網絡傳輸的加密,和/或應用程序級別的加密。此外,物理上的措施也需要考慮,比如安全區域、數據的安全刪除,以及機密信息的會計程序,不過本文并不涉及這些。 可用性 即使完整性和機密性都得到了保證,如果數據不能被訪問,那么它是沒有用處的,即不可用的。 可用性 措施確保數據永遠不會丟失,而且當被請求時,可以以預定義的性能級別被訪問?捎眯钥赡軙艿讲煌绞降耐{: - 破壞性攻擊 —— 稱為拒絕服務(Denial-of-Service,DoS)攻擊 —— 這類攻擊的目標是可用性。它們通過消耗所有可用的網絡、CPU、存儲或操作系統資源(比如文件句柄),使得一臺計算機或一個服務不可用或不能用。
- 目標是數據本身的攻擊,試圖刪除或覆蓋數據。
- 數據的意外破壞。在大部分情況下,不可能避免對數據的意外破壞,因為擁有適當權限的用戶被認為是最終的權威。您只能通過在適當的位置使用一個備份/轉儲基礎設施來預先做好準備。
- 最后,但不是最不重要的,缺陷、配置錯誤、物理環境、硬件失敗、停電、不必要的系統重新引導等等,也都可能影響可用性。這個列表中的軟件相關話題更應該歸入 系統安全,稍后將更深入討論。如上所述,硬件相關的話題在本文中不做討論,但是,如果您對這些話題感興趣,請參閱 參考資料部分以獲得更多讀物的鏈接。
解決上面列表中的前兩個問題的特定 Linux 措施包括,網絡數據包的防御(firewalling)/過濾(filtering ),對文件系統完整性的保護,以及計劃可根據需要進行添加的額外的資源(例如,使用 Tivoli®Intelligent Orchestrator;參閱 參考資料以獲得鏈接)。 Linux 系統安全 Linux 是一個現代的、開放源代碼的操作系統,可以自由地發行和拷貝。每個用戶都有權限修改它的源代碼,易于為您自己的環境定制 Linux、向操作系統添加新部件、發現缺陷和提供補丁,以及檢查源代碼中的安全漏洞。 盡管數據安全和系統安全是分開來考慮的,但是系統安全會對數據安全產生主要的影響。這就是為什么Linux 具有很多解決機密性、完整性、可用性以及系統安全本身的問題的集成部件的原因。其中有 IP 防御、認證機制、系統日志和審計、加密協議和 API、內核級 VPN 支持,等等。另外,系統安全可以由(開放源代碼)軟件應用程序來支持,這些應用程序提供安全服務、加固和/或控制 Linux 系統、防止并檢測入侵、檢查系統和數據的完整性,并提供防止不同攻擊的屏障。 安全的一個值得關注的主要因素是,Linux 與不開放源代碼的操作系統之間的區別在于開放源代碼開發過程本身。由于軟件的每個用戶和開發都可以訪問其源代碼,因而有很多人都在控制和審視源代碼中可能的安全漏洞。軟件缺陷很快會被發現。一方面,這會導致這些缺陷更早被利用;另一方面,很快就會有可用的安全補丁。 結束語 考慮其可靠性、穩定性、可擴展性、可管理性、性能,以及最后但不是最不重要的一點,它的安全部件,Linux 已經證明適合專業的企業應用程序。由于它的開放源代碼哲學讓用戶可以為滿足具體的需要而定制和擴展系統,Linux 變得越來越流行。因此,Linux 系統管理員需要理解加固 Linux 并保護它不受可能攻擊的安全機制。本系列的下一篇文章將討論獲得安全的 Linux 系統的第一個步驟:計劃和執行安裝。待續! 參考資料 - 您可以參閱本文在 developerWorks 全球站點上的 英文原文.
- 參閱 Committee on National Security Systems 的 National Information Assurance Glossary以獲得關于系統安全定義的概要。
- Bruce Schneier 的 Secrets and Lies: Digital Security in a Networked World (John Wiley & Sons,2004)研究了計算機系統威脅、黑客理念體系、預防、安全系統實現等內容。
- 要獲得關于那些提供安全的 Linux 環境的工作的全面概述和資源指南,請閱讀 解決 Linux 中的安全問題( developerWorks,2001 年 6 月)。
- 實用 Linux 安全性( developerWorks,2002 年 10 月)強調指出合理的用戶管理是良好安全的開始。
- developerWorks 的 Linux 安全編程 專欄是一個即將推出的系列,旨在幫助您為 Linux 編寫安全的程序。
- 完整性:更多讀物
- Seth Friedman 的 Building the Ideal Web Hosting Facility: A Physical Security Perspective(SANS Institute,2003 年 2 月)介紹了構建 Web 主機工具時的物理安全。
- Wikipedia 闡述了 中間攻擊中的人,在這種類型的攻擊中,第三方可以讀取并修改兩個未知的受害者之間發送的消息。
- 閱讀 Wikipedia 的關于 數字簽名 的闡述。
- 驗證數據完整性的一個常見方法是校驗和。 Enhancing File System Integrity Through Checksums 給出了一個全面的概述。
- 機密性:更多讀物
- Pluggable Authentication Modules允許在 Linux 操作系統中配置并權衡使用多個認證機制。
- NIS-Howto描述了如何將 Linux 配置為一個 NIS(YP)或 NIS+ 客戶機,以及如何安裝 NIS 服務器。
- Kerberos Infrastructure HOWTO描述了用于在 Linux 中處理認證的 Kerberos 基礎設施的設計與配置。
- LDAP 白皮書描述了如何設置 Linux 工作站,以使用一個 LDAP 服務器來存儲用戶信息和進行認證。
- Access Control Lists 補丁/用戶代碼組合可以支持用于 Linux 內核的完全訪問控制列表(ACL)。
- GNU Privacy Guard 是一個開放源代碼的加密軟件棧。
- 可用性:更多讀物
- Tivoli Intelligent Orchestrator通過自動觸發服務器到產品的準備、配置以及部署來幫助提高服務器利用率。
- 當計劃一個高可用配置時,要緊記 IBM 紅皮書 Technote Patterns for the Edge of Network 中的指導方針。
- 紅皮書 Continuous Availability -- Systems Design Guide會引導您完成分析、設計和實現持續可用系統的整個過程。
- American Power Conversion 的 Effect of UPS on System Availability闡述了系統的可用性和運行時間會如何受到交流電斷電的影響。
- IT availability Check List( availability.com,2004)提供了關于可用性需要考慮的問題的一個速查清單。
- Computerworld闡述了 如何防御 DDoS 攻擊。
- Linux 安全項目
- Security Enhanced Linux:這個 Linux 版本將強大、靈活的強制訪問控制體系結構融入內核之中。
- Openwall GNU/Linux:以 Linux 和 GNU 軟件為核心的增強安全的服務器操作系統。
- Bastille Linux:Bastille Hardening System 努力去“加強”或“加固”UNIX 操作系統。
- IPCop Firewall 是主要的 Linux 防火墻發行版本之一。
- Knoppix 安全工具發行版關注的是一張可引導 CD 上的信息安全和網絡管理工具。
- 要了解更多 Linux 安全項目,請訪問 LinuxLinks.com 的 Distributions: Secure。
- 在 developerWorks Linux 專區 可以找到更多為 Linux 開發者準備的參考資料。
- 購買 Developer Bookstore Linux 區 打折出售的 Linux 書籍。
- 通過 developerWorksSubscription 使用最新的 IBM 工具和中間件來開發和測試您的 Linux 應用程序:您可以自 WebSphere、DB2、Lotus、Rational 和Tivoli 得到 IBM 軟件,以及一個可以在 12 個月內使用這些軟件的許可,所有的花費都比您想像的要低。
- 自 developerWorks 的 為您的 Linux 應用開發加油提速 專區下載可以運行于 Linux 之上的經過挑選的 developerWorks Subscription產品免費測試版本,包括 WebSphere Studio Site Developer、WebSphere SDK for Web services、WebSphereApplication Server、DB2 Universal Database Personal Developers Edition、TivoliAccess Manager 和 Lotus Domino Server。要更快速地開始上手,請參閱針對各個產品的 how-to 文章和技術支持。
作者簡介
Mario Eberlein 是一名致力于隨需應變商務應用程序的 IT 架構師。他于 1998 年 10 月加入 IBM,當前在IBM Global Services 從事客戶項目的工作。Mario 擁有科學學士學位,當前正在攻讀 Business Administration 碩士學位的,并且具有 7 年的 Linux 經驗。他是 EMEA Central Region 的 IBM Linux Security Workgroup 的領導。您可以通過 m_eberlein@de.ibm.com與 Mario 聯系。 |
Rene Auberger 是 IBM Software Group 的一名軟件 IT 架構師。他主要與來自德國公共部門的客戶(對 Linux 有濃厚興趣的客戶)的一起工作。1996 年 Rene 開始從事 Linux 方面的工作,從那時起就以各種形式為了不同的目的而使用 Linux。他是德國、奧地利和瑞典的 Software Group 的 Linux 技術領導。您可以通過 rene.auberger@de.ibm.com與他聯系。
|
Wolfram Andreas Richter 是 IBM Software Group 的一名商務集成顧問和 IT 專家。自 1995 年加入 IBM 起,Wolfram 已經涉足了很多學科領域,范圍從應用程序開發到管理教育。他有 8 年的 Linux 經驗,擁有德國斯圖加特 University ofCooperative Education 的科學學士學位,以及英國 Henley Management College 的 Business Administration 碩士學位。在業余時間,Wolfram 喜歡進行運動、騎摩托車和外出。您可以通過 wrichter@de.ibm.com與他聯系。
|
|