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