對于系統(tǒng)管理員而言,打補丁的目的主要是為了保證系統(tǒng)的安全,不被有心人利用一些漏洞入侵到自己管理的系統(tǒng)當中。這其中涉及到很多問題,比如漏洞的安全危害級別,如何查找和檢測漏洞,打補丁之前預估好可能產(chǎn)生的影響,進行充分的測試,做好相關備份等。有一些入行不久的系統(tǒng)管理員害怕打補丁,害怕會因此導致系統(tǒng)出現(xiàn)不正常,其實該打的補丁不打往往可能導致更糟糕的后果。那么,系統(tǒng)管理員應如何修補軟件、系統(tǒng)漏洞,平穩(wěn)的打補丁呢?51CTO系統(tǒng)頻道特別邀請了李晨光老師來給大家掃盲。
作者簡介:李晨光,中科院研究生畢業(yè),IBM軟件精英講師,微軟社區(qū)精英,ChinaUnix論壇Linux欄目版主.從事網(wǎng)絡系統(tǒng)管理、存儲及信息安全10年,中國勘察設計協(xié)會信息化專家、中國計算機學會高級會員,通過微軟Microsoft、思科Cisco、CIW網(wǎng)絡認證、獲數(shù)據(jù)庫高級管理工程師認證,多年系統(tǒng)管理培訓、軟件開發(fā)管理經(jīng)驗。公開發(fā)表專業(yè)學術論文四十篇,精彩博文百余篇。
一、程序為什么會有漏洞?
程序只能嚴格按照規(guī)則做編程有要它做的事情。但是,最終編寫的程序并不總是與程序員預計讓程序完成的事情一致。下面的這個笑話可以說明這一問題:
一個人在森林中行走,在地上發(fā)現(xiàn)了一盞魔燈。他本能地撿起了魔燈并且用袖子擦拭它。突然,從瓶子里出來了一個魔鬼。魔鬼感謝這個人使他獲得了自由,并答應要滿足他的三個愿望。這個人欣喜若狂,他確實知道自己想要什么。 “第一”,這個人說,“我想要十億美元。” 魔鬼很快地晃了一下手指,滿滿的一袋子錢出現(xiàn)了。 這個人驚奇地睜大眼睛繼續(xù)說道:“接下來,我想要一部法拉利。” 魔鬼一晃手指,很快地在煙霧中出現(xiàn)了一部法拉利。 這個人繼續(xù)說:“最后,我想變得對女人有極大的誘惑力。” 魔鬼一揮手指,這個人變成了一盒巧克力。 |
程序執(zhí)行正像這個人的最后一個愿望的實現(xiàn)一樣。程序按照指令執(zhí)行,由于軟件漏洞結果出了問題并不總是程序員想要的,有時結果甚至是災難性的。
我們都知道現(xiàn)在軟件變得更加復雜,軟件越復雜,就越難預測它在各種可能場景下的反應方式,也就越難保證其安全性,當今的操作系統(tǒng)和應用程序的代碼行數(shù)也越來越多,例如Windows xp大約有4千萬行代碼,Vista 大約5千多萬,Windows 2000有2900萬行代碼。業(yè)界通常使用這樣的一個估算方式,即每1000行代碼中大約有5~50BUG。因此理論上,從平均意義上能估計出Windows xp中大約有多少個BUG。我們都知道黑客對操作系統(tǒng)的攻擊都是利用系統(tǒng)軟件中的漏洞進行的。在過去,很多人把漏洞看作是有惡意的人能夠利用的軟件或硬件的缺陷。然而在近幾年中,漏洞的定義發(fā)展成為有惡意的人能夠利用的軟硬件的缺陷及配置錯誤。
從表面上看,漏洞管理像是個簡單的工作,比如在操作系統(tǒng)上裝上一些常用的補丁修補工具,然后自動進行修補。然而在大部分組織的網(wǎng)絡中,漏洞管理既困難又復雜。一個典型的組織中包含定制們有不同的需求,不能只做簡單地保護,更不能置之不理。軟件廠商仍會發(fā)布不安全的代碼,硬件廠商也不會將安全內(nèi)建在產(chǎn)品中,因此這些問題就留給了系統(tǒng)管理員來處理。
廠商通過不同的途徑發(fā)現(xiàn)一個漏洞。在理想的情況下,廠商在發(fā)布產(chǎn)品之前,會找出并解決所有的安全問題。但是代碼的復雜性,加上嚴格的開發(fā)周期,易于產(chǎn)生安全方面的錯誤。通常,一個獨立的/商業(yè)的安全研究組織會將漏洞告知廠商;不過在有些情況下,廠商會與公眾同時發(fā)現(xiàn)漏洞,這時不用事先通知,漏洞就被公開了,就很容易被利用。
二、如何理解漏洞造成的風險?
不管一個漏洞是如何公開的,該漏洞都對一個組織造成了風險。漏洞帶來的風險大小取決于幾個因素:
- 廠商對風險的評級
- 組織中受影響系統(tǒng)的數(shù)量
- 受影響系統(tǒng)的危險程度和暴露程度
比如某些大的銀行機構會采取措施,把所有的金融核算系統(tǒng)都放在網(wǎng)絡中,并且置于獨立的防火墻之后。盡管分離重要的系統(tǒng)是一種很好的策略,但是有一個因素沒有考慮到:有大量的員工需要訪問這些數(shù)據(jù)。因此,實際擁有的只是一個用作日志系統(tǒng)的昂貴防火墻,該防火墻允許一部分客戶端通過。當然,防火墻可以阻止一些威脅,但是如果威脅來自一個允許通信的通道,那么防火墻就沒有幫助了。
正確的解決方案是把整個部門放在隔離的網(wǎng)絡中,不允許任何來自網(wǎng)絡外部的訪問。減少暴露程度雖然與漏洞無關,但是會大大降低漏洞為企業(yè)造成的風險。
三、漏洞評估方法和步驟
在一個企業(yè)中查找出漏洞需要付出很大的努力,不能簡單地在所選的地方安裝一個漏洞掃描軟件并簡單地按下“開始”按鈕,那樣是不起作用的。因為現(xiàn)在的企業(yè)擁有成千上萬的服務器和主機,這些服務器和主機又通過上百個速率不同的網(wǎng)絡線路連接起來,因此照這個方法,我們在期望的時間內(nèi)根本無法獲得所需的覆蓋范圍。
那么需要做什么呢?我們需要對漏洞進行評估。所謂漏洞評估,可以理解成跟軍隊中的偵察差不多的行為。偵察任務的主要目的是向前進入外國的領土,并且查找出敵軍的弱點和易攻擊的地方。漏洞評估是幫助企業(yè)領導、安全專家及黑客在網(wǎng)絡、應用和系統(tǒng)中確定安全責任的安全實踐活動。
實施漏洞評估的方法和步驟分為:信息收集/發(fā)現(xiàn),列舉,以及檢測。
1.信息收集/發(fā)現(xiàn)
這一步驟包括:
- 為查找目標擁有的所有域名而進行的whois查詢
- 為確定與目標相關的IP地址范圍而通過網(wǎng)站(如www.arin.net)對可能的目標和IP地址進行的查詢
使用Nmap軟件,我們能夠很快確定網(wǎng)絡上哪些主機是在線的。在Nmap中使用-s P(ping掃描)選項對目標網(wǎng)絡執(zhí)行ping掃描。這可以幫助確定哪些主機是活動的和有效的。一旦確定信息后,信息收集/發(fā)現(xiàn)的工作就完成了。現(xiàn)在可以繼續(xù)進行第二步,列舉并確定目標運行什么操作系統(tǒng)和應用程序。(51CTO推薦閱讀:十條nmap實用命令行技巧)
2.列舉
列舉是用來
- 判斷目標系統(tǒng)運行的操作系統(tǒng)
- 獲取操作系統(tǒng)指紋和位于目標上的應用程序
的過程。
在確定操作系統(tǒng)后,就是要確定運行于主機上的應用程序。端口0~1023(共1024個)被稱為熟知端口。
仍然使用Nmap。我們用它的-sV選項來確定什么應用程序位于什么端口。端口在漏洞評估中扮演了一個很關鍵的角色,因為它確保將漏洞對應到各自應用程序。如果確信有問題的主機在端口443上運行的是安全Web服務器而不是一個電子郵件服務器,那么很可能就不會發(fā)現(xiàn)該主機的漏洞,從而認為系統(tǒng)將來不可能被滲透。當信息收集工作和列舉工作完成后,現(xiàn)在可以在目標系統(tǒng)上檢測漏洞了。
3.檢測
檢測用來確定一個系統(tǒng)或應用程序是否易受攻擊。需要注意的是,這一步并不是用于確定漏洞是否存在。檢測過程只是報告漏洞出現(xiàn)的可能性,而漏洞是否存在則由滲透測試來完成。
#p#如何給系統(tǒng)打補丁?#e#
四、查找檢測漏洞的方法
上面介紹了檢測漏洞的執(zhí)行思路,下面介紹應該如何在真實系統(tǒng)環(huán)境下進行漏洞檢測。這個工作通常使用漏洞評估掃描器完成。漏洞評估掃描器一般是運行漏洞評估軟件的網(wǎng)絡工具,或者運行在一個企業(yè)自己資產(chǎn)中的漏洞評估軟件。
現(xiàn)在漏洞修復技術比過去發(fā)生了很大變化。修復技術已經(jīng)從手工修復進入了自動化過程。本文中我們只考慮Windows系統(tǒng)和UNIX/Linux系統(tǒng)。
1.利用配置工具評估漏洞
許多組織已經(jīng)在管理/配置工具上做了投資,常常利用這些工具做一些相當常規(guī)的工作,但是通過擴展這些工具來從我們的環(huán)境中提取漏洞數(shù)據(jù)。比如賽門鐵克的產(chǎn)品(以前的Bind View,2005年被賽門鐵克收購),能夠幫助一個組織處理大部分日常的windows活動目錄(AD)操作,也可以發(fā)現(xiàn)組織中的漏洞。為了更好地理解,下面看一個BindView的部署。
2.漏洞評估工具
一個好的工具最少要有的特征:低的誤報率(false positives)、零漏報率(false negatives)、一個完整的檢測數(shù)據(jù)庫、對網(wǎng)絡流量的影響小、直觀的和可定制的報告引擎。
目前,很多漏洞掃描產(chǎn)品都被開發(fā)出來,不同的軟件掃描漏洞的功能存在一定的差異,有些掃描軟件還帶有一定的入侵性質(zhì),例如X-Scan、Shadow Security Scanner和流光等。
下面介紹幾個商業(yè)漏洞管理工具:
◆eEye digital Security
eEye Digital Security在漏洞研究中處于領導地位。它也開發(fā)了一套用來幫助進行漏洞管理的工具。
BindView的Compliance Manager是一個基于軟件的解決方案,允許組織對比公司標準或者行業(yè)最好的經(jīng)驗來評佔資產(chǎn),在大多數(shù)情況下不需要用到代理。
◆Attachmate(NetIQ,2006年被Attachmate收購)
NetIQ的Compliance套件是一個NetIQ的安全管理器和漏洞管理工具的組合,并且把漏洞掃描、補丁管理、配置修復和報告整合在一起。NetIQ漏洞管理器能夠通過AutoSync技術讓用戶定義和維護配置策略模板、漏洞公告板和自動檢測。它也有能力根據(jù)這些策略評估系統(tǒng)。
StiIISecure是VAM的制造商,是一個安全產(chǎn)品的集成套件,能夠執(zhí)行漏洞管理、終端符合性監(jiān)控,以及入侵防御和檢測。它也包含一個內(nèi)置的工作流方案(可擴展漏洞修復工作流),這個方案能夠自動地分配修復、進度安排、生命周期追蹤和修復確認,所有維護詳細的設備歷史記錄。
下面介紹幾個開源工具:
◆主機發(fā)現(xiàn)工具nmap
Nmap是一個免費開源的網(wǎng)絡搜索或安全審計工具。盡管它對單臺主機工作非常好,但被設計為快速掃描大型網(wǎng)絡。
◆漏洞掃描與配置掃描nessus
Tenable Network Security的Nessus是一個漏洞掃描和配置掃描工具。Nessus項目由Renaud Deraison開始于1998年,為了給網(wǎng)絡社會提供一個免費的、強大的、最新的且好用的遠程安全掃描器。Nessus是最好的免費網(wǎng)絡漏洞掃描器并且無論如何在Unix上運行是最好的。它持續(xù)更新(超過11000種免費插件可用)。
Microsoft Base Security Analyzer(MBSA)是一個好用的工具,為專業(yè)人員設計以便幫助中小型企業(yè)依靠Microsft的安全建議來測定安全狀態(tài),并且也提供特定的修復指導。建立在Windows升級代理和Microsoft升級設施基礎上,MBAS確保了和其他Microsoft管理產(chǎn)品的一致性,這些產(chǎn)品包括Microsoft Update(MU),Windows Server Update Services(WSUS), systems management server(SMS)和Microsoft Operarations Manager(MOM)。
到目前為止,我們介紹了漏洞是什么,漏洞為企業(yè)帶來的風險,以及檢測漏洞的思路和方法。具體如何給企業(yè)中的系統(tǒng)打補丁,且聽下回分解。