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