Linux安全嗎?
最近,隨著PIII序列號和微軟操作系統後門密鑰等事件的發生,我們意識到信息安全的“重要性和緊迫性”。從事計算機安全領域研究的沈昌祥院士指出:“信息安全保障能力是21世紀綜合國力、經濟競爭力和生存能力的重要組成部分,是世紀之交世界各國都在奮力攀登的制高點。”眾所周知,我們的大部分計算機系統和網絡系統從硬件到軟件都是國外的產品,包括壹些相關的安全產品。很多產品在設計的時候都會留壹些產品測試的後門,可能會有壹些設計上的缺陷,可能會有故意埋伏安全陷阱的可能,這壹切就像是千裏之外的蟻穴,甚至更糟。記得有壹個故事,A國用當地的建築材料在B國建了壹個大使館,卻發現樓裏有大量的竊聽裝置,最後不得不不惜壹切代價用國內的工人和建築材料重建。所以“信息安全要打中國牌”,在安全體系上必須采用我們自己的產品。計算機系統與信息安全可以分為安全技術和密碼技術兩個方面,兩者缺壹不可。具體來說,安全技術的關鍵是操作系統、CPU等。但是,我們沒有自己的操作系統和CPU,短期內不會有,但最終應該會有。我覺得這個事情要從戰略上考慮。幸運的是,Linux的出現為在中國建立安全獨立的操作系統提供了機遇和挑戰。開發壹個擁有自主版權的操作系統具有巨大的經濟效益和社會效益,作者認為同時必須把安全性放在首位。公開源代碼不安全嗎?Linux是壹個免費開放的操作系統軟件,其最初的設計目標並不是壹個安全的操作系統,因此Linux安全存在壹些缺點、漏洞和後門。關於操作系統的安全性,除了確定Windows NT符合美國安全標準的C2級別之外,很難確定操作系統的安全性,Linux也是如此。目前很多關於計算機系統安全的討論不是關於操作系統本身,而是關於應用軟件或者壹些協議,比如Sendmail中MIME的安全問題,TCP/IP本身的安全問題等等。這裏只簡單介紹Linux內核存在的幾個主要問題,從而指出建立安全獨立的操作系統應該註意的幾個方面。Linux是自由軟件,它的源代碼是開放的。有人認為這是不安全因素。其實並不是。首先,這款開源系統軟件有壹個非自主黑盒操作系統不具備的安全特性,即用戶無需等待軟件補丁和升級,就能對其有更深入的了解,並快速發現可以解決的問題;其次,拋開題目,在密碼算法安全性的研究中,前提是算法是公開的——即假設攻擊者知道算法,其細節需要保密的算法沒有研究和使用價值。Linux有哪些不安全的地方?Linux的第壹個問題是可以用啟動盤啟動電腦,也可以用LILO進入單用戶模式,不需要root密碼就可以獲得root用戶的權限。這壹點在很多Linux文章和書籍中都有介紹,作為忘記root密碼的解決方案。這是壹個很大的安全問題,因為它使根密碼變得毫無意義。其次,Linux的密碼問題。Linux存儲了用戶密碼明文的單向哈希運算結果,由於用戶選擇了容易記憶的密碼,很容易利用字典攻擊。同時,用戶遠程登錄時傳輸密碼明文,容易被竊聽。目前,Linux發行版采用了影子技術。首先,填充密碼,然後計算單向散列。結果存儲在壹個只有根用戶可以訪問的文件中,其中的填充數據是偽隨機的。這提高了密碼的安全性。然而,對密碼學的研究表明,僅僅使用對稱密碼算法或哈希算法是不夠的,它不能構成壹個安全的密碼認證方案。第三,SETUID問題。SETUID是為了解決普通用戶執行的壹些程序的執行問題,但是執行時需要臨時獲得root權限,這也是壹個安全隱患。黑客可以在擁有root權限的情況下為自己的黑客程序設置SETUID,然後以普通用戶的身份登錄運行程序,非常隱蔽,不容易被察覺。第四,緩沖區溢出的問題。當輸入數據超過分配的存儲空間,系統不直接處理時,就會導致緩沖區溢出的問題。緩沖區溢出會導致程序退出、數據丟失和其他不可預知的結果。因為C和c++編譯器不檢查緩沖區溢出和指針越界,所以會發生緩沖區溢出。如果在可執行堆棧中發生緩沖區溢出,會覆蓋堆棧中原有的程序執行信息,導致系統執行錯誤的指令。因此,當黑客程序可以故意安排堆棧溢出時,系統可能會轉向執行黑客程序,黑客程序獲得了執行程序的權限(通常是root權限),系統被破壞或失去控制。第五,計算機病毒和特洛伊木馬程序。如今,PC平臺上的計算機病毒和特洛伊木馬程序層出不窮,破壞力越來越大。人防不勝防,但UNIX/Linux上的病毒並不多,這不僅與操作系統機制有關,也與UNIX/Linux沒有廣泛普及有關。由於Linux存在SETUID、緩沖區溢出等問題,為計算機病毒和特洛伊木馬提供了入口。除此之外,還有其他問題以及具體操作和設置中存在的問題,這裏不壹壹列舉。如何保證Linux的安全性?針對Linux存在的壹些安全問題,在構建安全獨立的操作系統時要註意以下幾點:首先,系統引導問題必須保證用戶的身份認證。其次是密碼機制,要研究結合公鑰密碼算法的安全密碼認證方案。第三,在Linux中用簡單的方法實現進程管理和調度,從安全性和完成復雜任務的角度來看,有點不足。有必要研究壹種更好的文件權限、流程管理和執行權限管理方案。解決緩沖區溢出問題壹方面是嚴格檢查編譯器,另壹方面是尋求動態的解決方案,保證系統的可控性,努力減少損失。同時,作者認為壹個安全的操作系統應該具有壹定的反病毒和特洛伊木馬程序,在設計操作系統內核時結合相關的反病毒技術,使其具有根本的免疫能力。