歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux綜合 >> Linux資訊 >> 更多Linux >> Linux安全嗎?

Linux安全嗎?

日期:2017/2/27 14:25:04   编辑:更多Linux
  計算機系統及信息安全問題是進入信息社會所必須解決的問題,大量Internet應用的出現使這一問題更加突出。近來,隨著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口令時的解決方案介紹。這是個很大的安全問題,因為它使root口令失去了意義。       其次是Linux的口令問題。Linux存放的是用戶口令明文的One Way Hash運算結果,加上用戶選擇易記口令等因素,容易采用詞典攻擊,同時用戶遠程登錄時傳送的是口令明文,易於竊聽。目前Linux的發行版本中都采用了Shadow技術,首先將口令作擴充(Padding)處理再作One Way Hash計算,結果存放在只有root用戶可訪問的文件中,其中Padding的數據是偽隨機數。這樣提高了口令的安全性。但密碼學的有關研究表明,僅僅采用對稱密碼算法或Hash算法是不夠的,不能構成安全的口令認證方案。       第三,SETUID問題。SETUID是為解決某些普通用戶執行的但執行時須暫時獲得root特權的程序的執行問題,這也是一個安全隱患。黑客可以在有root權限時將其黑客程序設置SETUID,以後就可以以普通用戶登錄運行該程序,此舉具有很大的隱蔽性,不易覺察。       第四,緩沖區溢出問題。當輸入數據超出所分配存儲空間而系統又沒有對此作直接處理時導致緩沖區溢出問題。緩沖區溢出會導致程序退出、數據丟失以及其它不可預計的結果。由於C、C++編譯器對緩沖區溢出、指針越界等不作檢查,因此會發生緩沖區溢出問題。如果緩沖區溢出發生在可執行堆棧中,則會覆蓋堆棧中原有的程序執行信息,導致系統執行錯誤的指令。因此,黑客程序可以故意安排堆棧溢出時,系統就可能轉而執行黑客程序,該黑客程序獲得正在執行的程序的權利(通常是root特權),系統被破壞或失去控制權。       第五,計算機病毒和特洛伊木馬程序問題。如今PC平台計算機病毒和特洛伊木馬程序層出不窮,破壞力增大,人們對其防不勝防,Unix/Linux上的病毒卻不是很多,這除與操作系統機制有很大關系外,也與Unix/Linux未廣泛流行有關。由於Linux存在SETUID問題和緩沖區溢出等問題,這為計算機病毒和特洛伊木馬程序提供了入口。       另外還有其它一些問題以及具體操作、設置中存在的問題,在此不一一列舉。       如何保證Linux的安全?       針對Linux存在的一些安全問題,在建設安全、自主的操作系統時應注意把握以下幾點:首先是系統引導問題,必須保證對用戶的身份認證。其次是口令機制,應該研究結合公鑰密碼算法的安全口令認證方案。第三,Linux中用簡單的方法實現進程管理和調度,從安全和完成復雜任務角度看都略嫌不足。需要研究更好的文件權限、進程管理和執行權限管理方案。解決緩沖區溢出問題一方面是嚴格編譯器的檢查,另一方面是尋求動態解決方案,確保系統的控制權,並力求減少損失。       同時筆者認為安全的操作系統應該具有一定的防病毒和特洛伊木馬程序的能力,在設計操作系統內核時要結合反病毒的有關技術,使之在根本上具有一定的免疫力。       Linux出現為我國建立安全、自主的操作系統提供了機遇和挑戰,但是,Linux到底安全不安全?安全在哪兒?不安全在哪兒?我國在發展Linux的時候如何揚長避短?本欄目歡迎廣大讀者就Linux的安全問題進行廣泛深入的探討。       E-mail:[email protected]     作者:王漢強、魏慶福




Copyright © Linux教程網 All Rights Reserved