維護一個企業級的安全的計算環境需要設計策略和過程從而使得對系統和資料的未授權訪問降至最低。為了保護基於Linux的電腦資產免於這些威脅,像許多其它以安全為核心的過程一樣,你必須知道你想保護什麼以及別人可能會如何嘗試擷取訪問。成功的安全管理是心態。也就是說,像壞孩子那樣思考。
在本文中,我們將會討論基於Linux的伺服器系統的風險評估。
確保你的Linux伺服器系統安全的第一步是正確地評估所面臨的風險。只有這之後企業才能部署一套有效防護措施來預防、偵測,並且如果需要的話對於可能發生的違規正確地做出反應。
首先,辨識需要保護的Linux資產。資產可能包括硬體、軟體、資料或像email或Web網站主機這樣運轉的服務。每個資產都具有價值,要麼是貨幣價值要麼是未來可能帶來收入。
接著,辨識每個資產面臨的潛在威脅。威脅可能來自組織的內部或外部。一些內部威脅只不過是偶然的,但是有些可能是惡意的。
對於資產的威脅依賴於攻擊的動機和攻擊者如何獲得對資產的訪問。動機可能是純粹的挑戰,傷害資產的擁有者,或是為了謀利。攻擊者可能想訪問你的資料或只是拒絕合法使用者的訪問。每個威脅都有被利用的必然的可能性,這通常與資產的價值相關。雖然在組織內廣泛地瞭解和變化會有困難,但是使用一個風險管理架構來給每個辨識的威脅分配一個可能性,會協助你對緩和這些風險需要採取的行動進行優先順序安排。
儘管不可能列出所有潛在的威脅途徑,但一份最常見風險的概述能讓你開始自己的風險評估。
最棘手的威脅途徑是使用者。儘管有各種的保護機制,人們仍然會被愚弄或被要挾做出不恰當的行為。使用者的意識、培訓和存取權限是緩和任何Linux風險的重要部分。
密碼在任何計算環境中經常代表著最常見的軟肋。為了辨識不安全的登入密碼,運行如John the Ripper這樣的密碼有效性檢查器。應用和資料庫的密碼也應該檢查“可被破解性”或是進行修改以便滿足這樣的需求。同時,辨識Linux伺服器上不需要的訪問授權。例如,如果密碼檔案(/etc/passwd)被遠程地分發(通過rcp/rcopy程式或NIS服務),使用者可能會對從未使用的伺服器具有登入存取權限,從而創造了毫無好處的潛在的威脅途徑。
另外一個主要的威脅途徑是網路。任何能訪問你的本網(物理的或是無線方式)的使用者有可能試圖串連到網路上任何其它的資產。所有的Linux系統運行開放的網路連接埠,並等待來自網路查詢的程式。每個這種服務都代表者一個威脅途徑,要麼通過欺詐的認證,或是由於軟體瑕疵可能錯誤地允許訪問。使用netstat命令來找到系統所有的開放連接埠。
使用Nmap工具掃描網路上其它機器的開放連接埠。每個開放連接埠代表著一個威脅途徑,應該被關閉或是監控非法的訪問。不要忽視任何傳統的撥號訪問點。防火牆是可信網路和不可信網路(如網際網路)之間的邊界。你的防火牆應該配置只在已知和需要的連接埠上傳輸資料。防火牆傳輸資料的每個連接埠同樣都是一個威脅途徑。
除了正常的監控以外,你還應該同時檢查日誌來關聯需要的訪問。Lastlog命令顯示使用者的登入資訊。可以在路徑/var/log/messages下發現各種各樣的日誌資訊。許多應用和資料庫也提供記錄機制來追溯使用者的訪問。檢查這些日誌,你可以觀察當前誰在使用和(可能)需要訪問特定的資源。
無論什麼複雜的軟體都是有缺陷的,但是只有當缺陷以不受歡迎的行為表現它們時才會被瞭解。通常的bug只會破壞資料或是引起宕機,但是有一些會造成無法預料的後果,比如允許未授權的訪問。這明顯地表示為主要的危害。攻擊者不斷地搜尋著這些類型的bug,而廠商們則在發現這些bug時,儘力快速地修補它們和提供軟體補丁。你所能做的是確保定期地檢查和更新你的作業系統和應用軟體。
檢查Linux伺服器上軟體更新的過程依賴於應用或是Linux版本。例如Ubuntu版本的Linux提供一個更新管理器(通過菜單“系統>管理>軟體源”可以發現),可以配置每天進行檢查更新。你越經常性地檢查更新,你的漏洞視窗越小。同樣對於來自未校正來源或作者的免費程式或軟體要小心謹慎。
需要監控和保持更新的最重要的軟體是面臨外部環境的軟體,如Web伺服器和網路應用(如VPN或SSH)。Web伺服器軟體定期地檢測糟糕的配置和bug。Web應用可能會遇到惡作劇的輸入資料來進行不正當的應用。大多數的Web應用語言,像Perl、Python、Ruby或PHP有工具或可用的附件來淨化輸入資料以及禁止使用者輸入的代碼,如SQL或Java指令碼。你的Web伺服器或是其它面臨外部環境的應用接收來自使用者的資料都意味著可能的威脅。同樣,檢查這些程式產生的任何記錄檔有助於你辨識合法和非法的訪問。