◆李維峰
?
淺析配置管理與網(wǎng)絡(luò)安全
◆李維峰
(中國飛行試驗(yàn)研究院 陜西 710089)
本文分析了五種不同場景的安全配置管理:安全設(shè)備、網(wǎng)絡(luò)基礎(chǔ)設(shè)施、普通用戶計(jì)算機(jī)、服務(wù)器和PDA。這些場景中的每一個(gè)都提出了不同的配置管理挑戰(zhàn),當(dāng)然這些問題中的任何一個(gè)對于大型站點(diǎn)來說都是嚴(yán)重的威脅。本文針對一個(gè)真實(shí)的案例進(jìn)行研究,分析一個(gè)主要的ISP如何使用以數(shù)據(jù)庫為中心的配置管理方案。
配置管理;安全性;數(shù)據(jù)庫
計(jì)算機(jī)系統(tǒng)需要配置,即便最簡單的家用計(jì)算機(jī)也會要求用戶在第一次開機(jī)使用時(shí)填寫基本的注冊信息。任何系統(tǒng)管理員或網(wǎng)絡(luò)管理員都清楚,完整的安全配置要復(fù)雜得多,有時(shí)甚至是需要設(shè)置很多普通人從未聽說過的選項(xiàng)。
對所有系統(tǒng)管理員來說,配置管理是系統(tǒng)和站點(diǎn)安全性的重要組成部分。安全設(shè)備本身不僅需要配置,而且普通計(jì)算機(jī)使用的許多普通方面都對安全性有影響。安全配置還有另一個(gè)獨(dú)特的特點(diǎn):它與業(yè)務(wù)和人事政策有很強(qiáng)的互動。許多安全決策是管理決策的具體實(shí)例,不正確的配置可能危及業(yè)務(wù)關(guān)系或產(chǎn)生法律后果。安全配置還涉及對付潛在的“破壞者”,管理安全配置不僅僅是設(shè)計(jì)正確的配置和分配的問題,而且管理員必須主動嘗試顛覆配置、躲避配置,或?qū)⑾到y(tǒng)驅(qū)動到配置不可預(yù)料的狀態(tài)。值得注意的是,“破壞者”可以包括網(wǎng)站自己的員工。
這就是安全配置管理的挑戰(zhàn):制定和部署滿足組織需求的政策。
(1)被管設(shè)備規(guī)模問題
通常,規(guī)模上的差異是定性的,而不是簡單的量化。管理100臺機(jī)器的配置與管理一臺或兩臺機(jī)器不同,管理1000臺仍然不同,顯然這是不合理的,每個(gè)機(jī)器的擁有者都可以管理它的配置。也就是說,我們不是把1000臺機(jī)器作為一個(gè)組來處理,而是我們已經(jīng)知道如何解決1000個(gè)問題。這種方法至少有四個(gè)問題需要考慮:
首先是個(gè)人管理的機(jī)器往往管理不善。大多數(shù)計(jì)算機(jī)用戶不是專業(yè)的系統(tǒng)管理員。就像許多家用計(jì)算機(jī)被錯(cuò)誤配置一樣,從安全角度和普通的正確性角度來看,在企業(yè)環(huán)境中做同樣的事情也會導(dǎo)致很多計(jì)算機(jī)配置錯(cuò)誤。
第二個(gè)問題是一致性。在許多環(huán)境中,企業(yè)配置是集中指定的。將配置留給個(gè)人將不可避免地導(dǎo)致錯(cuò)誤配置,以軟件的選擇為例:每個(gè)人是否都安裝了企業(yè)強(qiáng)制性的應(yīng)用程序?它們會被及時(shí)更新嗎?另外有一些安全設(shè)置由于給用戶的工作帶來了麻煩而遭到用戶的抵制,比如:很多公司禁用USB大容量存儲設(shè)備,以避免泄露敏感的企業(yè)數(shù)據(jù),但給正常的工作帶來了麻煩。
第三個(gè)問題:互動。也就是說,兩個(gè)本身是正確的配置可以以危險(xiǎn)的方式進(jìn)行交互。Martin等人給出一個(gè)例子,其中正確的Java行為和正確的防火墻行為為FTP協(xié)議[1]結(jié)合起來產(chǎn)生一個(gè)安全漏洞[2]。
最后,這一點(diǎn)往往被那些不在系統(tǒng)管理業(yè)務(wù)的人所忽視——許多機(jī)器(以及在某些環(huán)境下,大多數(shù)機(jī)器)不是普通的臺式機(jī)。服務(wù)器,虛擬機(jī)甚至許多嵌入式系統(tǒng)也需要配置管理。網(wǎng)絡(luò)連接的打印機(jī)可能比普通的臺式機(jī)更容易被破解,并且實(shí)際上可以運(yùn)行一些相同的軟件。
為了正確的操作和安全,一些形式的集中配置管理是必要的。雖然有許多方法可以做到這一點(diǎn),但是必須滿足一些要求:安全配置管理方案在許多方面都必須是安全的。其數(shù)據(jù)庫必須受到保護(hù),以防止無法訪問或修改,與托管主機(jī)的通信必須經(jīng)過身份驗(yàn)證,完整性保護(hù)以及經(jīng)常加密;管理系統(tǒng)的命令必須正確認(rèn)證。不同的機(jī)器有不同的角色。因此,它們需要不同的配置。普通臺式機(jī)可能不需要成為Web服務(wù)器,但它可能成為一臺數(shù)據(jù)庫服務(wù)器或者是郵件服務(wù)器,這都取決于用戶的需求。有時(shí)候安全配置會失效。在嘗試更新期間,機(jī)器可能停機(jī)、補(bǔ)?。ㄌ貏e是包含供應(yīng)商提供的修補(bǔ)程序)可能無法安裝,如果配置更改與安全性相關(guān),則可能產(chǎn)生嚴(yán)重后果。
(2)管理工作量的問題
從上面的描述可以明顯看出,管理大量機(jī)器的配置需要以下三方共同努力:人員、軟件和數(shù)據(jù)。同時(shí),配置管理系統(tǒng)本身需要管理層或管理系統(tǒng)層。
首先,在一個(gè)足夠大的企業(yè)中,單一的配置管理系統(tǒng)是不夠的。不僅不能處理負(fù)載,還需要輔助設(shè)備來實(shí)現(xiàn)冗余。在設(shè)備地理位置分散的情況中,數(shù)據(jù)庫維護(hù)至少必須適應(yīng)在地理上分布。每臺新電腦的配置需求都必須輸入數(shù)據(jù)庫;當(dāng)管理員不知道機(jī)器的存在時(shí),這是很難做到的,更不用說它的角色和需要了。對于這個(gè)問題,在許多環(huán)境中,有必要進(jìn)行手工和電子審計(jì),以檢測新機(jī)器并在配置管理系統(tǒng)中正確注冊。最后,配置需要改變。獲得了新的軟件、開發(fā)了新的應(yīng)用程序等,都可能會引起安全配置的改變。
不同的配置場景有不同的需求,有必要對它們進(jìn)行仔細(xì)分析。
(1)安全設(shè)備
具有安全敏感配置的最明顯的一類計(jì)算機(jī)是安全設(shè)備:防火墻,路由器等。這些設(shè)備不僅為企業(yè)的其他部門提供安全保障,而且還有其自身的嚴(yán)格安全需求。
這個(gè)環(huán)境中最難的問題是獨(dú)立于配置的機(jī)制。相反,這配置應(yīng)該是什么又取決于網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)和所需的安全策略。例如,安全策略會因新軟件、新業(yè)務(wù)需求和新威脅而發(fā)生變化。與公司合作的企業(yè)發(fā)生了改變就需要建立專用鏈接,這必須調(diào)整防火墻規(guī)則以允許訪問一些資源,但不是全部資源。(新的專用鏈接的替代方案是虛擬專用網(wǎng)絡(luò)連接,這些連接通常更便宜,但是卻有自己的安全敏感配置需求。)
復(fù)雜的防火墻配置已知是容易出錯(cuò)的。即使使用完全分布式防火墻,這種情況也可能會保持不變。這樣只解決了拓?fù)鋯栴}而不是政策問題。
驗(yàn)證防火墻策略是一項(xiàng)重要工作。盡管自動化工具[3]可以檢測某些類別的錯(cuò)誤,但這些工具無法區(qū)分合理的策略和反映實(shí)際愿望的策略。也就是說,允許端口80訪問官方公司網(wǎng)站服務(wù)器并允許端口80訪問敏感的內(nèi)部網(wǎng)絡(luò)服務(wù)器之間沒有先驗(yàn)的區(qū)別,自動化算法無法區(qū)分這兩種情況。驗(yàn)證拓?fù)渥兓永щy。
最終,在地理上分散的組織中,這兩個(gè)問題都更為復(fù)雜。中央系統(tǒng)管理員很難知道哪些外部參與者應(yīng)該訪問哪些服務(wù)器,更不用說當(dāng)新的鏈接安裝到遠(yuǎn)處的位置時(shí)。
安全設(shè)備本身也需要安全保護(hù)。保持這樣的配置本身就是一個(gè)難題。事實(shí)上,最近的一項(xiàng)調(diào)查[4]報(bào)告稱,ISP把訪問控制列表(ACL)的管理稱為“最關(guān)鍵”的問題。這對關(guān)于自動生成ACL的工作可能會有所幫助。
(2)基礎(chǔ)設(shè)施
即使普通的基礎(chǔ)設(shè)施節(jié)點(diǎn)(即沒有特殊安全角色的節(jié)點(diǎn))也具有安全敏感的配置。如果沒有別的,控制這些元素的對手可能會破壞整個(gè)組織的連接。更復(fù)雜的攻擊者可以通過竊聽節(jié)點(diǎn)重新路由流量。正確的配置——即正確的密碼、正確的訪問控制列表、恰當(dāng)?shù)娜罩居涗浀?,可以大大地防止這種攻擊。
跟蹤某些類型的攻擊時(shí),記錄交換機(jī)上的功能非常重要。具體來說,記錄MAC地址和流量可以幫助隔離拒絕服務(wù)攻擊的來源并解決欺騙攻擊。另一方面,這也是必須管理的配置。
即使沒有惡意攻擊,維護(hù)路由器配置也很困難。當(dāng)路由出現(xiàn)問題時(shí)(這種情況并非不可能),在復(fù)雜的配置中,修復(fù)問題的技術(shù)人員通常會忘記更新主配置數(shù)據(jù)庫。為此,一些站點(diǎn)定期輪詢路由器的配置,并將其與官方授權(quán)的版本進(jìn)行比較。
然而,更難的問題是安全策略的沖突。這個(gè)問題不是技術(shù)性的,因?yàn)樗钦咝缘模赫l的政策應(yīng)該占主導(dǎo)地位?也就是說,總體公司政策和地方需求之間存在分歧,應(yīng)該怎么協(xié)調(diào)?技術(shù)機(jī)制可以識別問題,但不能解決問題。我們在這里注意到,做出的決定會影響企業(yè)網(wǎng)絡(luò)的安全性和本地業(yè)務(wù)部門的生產(chǎn)力。
(3)臺式機(jī)和筆記本電腦
臺式機(jī)和筆記本電腦呈現(xiàn)出我們更為熟悉的安全配置挑戰(zhàn)。管理員必須確保已安裝正確的程序、補(bǔ)丁和病毒庫。但是,我們之前看到的很多問題也出現(xiàn)在這個(gè)領(lǐng)域,包括政策沖突。但是,問題的大小是不同的。
第一個(gè)問題是有一個(gè)新的用戶:計(jì)算機(jī)的授權(quán)用戶,他把計(jì)算機(jī)視為個(gè)人專用設(shè)備,經(jīng)常把它們用于非官方的目的。這常常包括忽視官方政策。因此確保臺式機(jī)和筆記本電腦配置的機(jī)制必須解決員工不合作、甚至故意的不當(dāng)行為。第二個(gè)問題是補(bǔ)丁下發(fā)的時(shí)間必須被控制。補(bǔ)丁通常與基本應(yīng)用程序不兼容。那么正確的安全配置必須能夠防止補(bǔ)丁的非授權(quán)安裝。
(4)服務(wù)器
服務(wù)器配置在很多方面要簡單得多。服務(wù)器的所有者通常是系統(tǒng)管理員,他們具有專業(yè)的知識并且能夠理解安全配置策略。但是補(bǔ)丁的下發(fā)時(shí)間仍然必須控制;另外,他們還面臨著不同的問題:異質(zhì)性。組織內(nèi)的桌面機(jī)器往往非常相似。大多數(shù)人需要的應(yīng)用程序多數(shù)是一樣的;但是在服務(wù)器上差別就很大。當(dāng)然,Web服務(wù)器需要一個(gè)Web服務(wù)器守護(hù)進(jìn)程。取決于所提供的網(wǎng)頁的性質(zhì),它們可能還需要數(shù)據(jù)庫,Perl或PHP解釋器,Wiki等。對這些中的任何一個(gè)的安全配置都是棘手的;服務(wù)器的配置管理系統(tǒng)(或人員)必須能夠處理這些情況。也就是說,它首先必須知道哪些組件適用于哪些服務(wù)器;其次,它必須知道如何將必要的安全配置與服務(wù)器特定的參數(shù)相結(jié)合。例如,Web服務(wù)器必須配置文件根目錄,有關(guān)執(zhí)行CGI或ASP腳本的策略、密鑰和證書、訪問控制策略等。在不同的服務(wù)器上情況是不同的,但它們是對于安全來說都非常重要。
(5)PDA
對于組織而言,最新的配置挑戰(zhàn)是PDA或“智能手機(jī)”。這些設(shè)備通常是個(gè)人擁有的,但用于商業(yè)目的,如檢查電子郵件。再如蘋果的iPhone,最初并沒有考慮公司的需求:
許多IT組織已經(jīng)禁止使用iPhone,因其無法強(qiáng)制員工用密碼保護(hù)他們的iPhone,并且如果設(shè)備被盜或丟失,他們不能從遠(yuǎn)程擦除敏感的企業(yè)數(shù)據(jù)。另外,他們認(rèn)為iPhone不支持許多企業(yè)使用的軟件,并且只能在一個(gè)蜂窩運(yùn)營商的網(wǎng)絡(luò)上運(yùn)行。目前我們還不清楚如何管理這些設(shè)備的配置,但是當(dāng)他們進(jìn)入公司網(wǎng)絡(luò)時(shí),就必須接受相應(yīng)的管理。
如前所述,第一個(gè)原則是所有的配置都應(yīng)該是以數(shù)據(jù)庫為中心的(如圖1)。所有相關(guān)信息,無論是任何物理硬件的位置,還是管理分配的參數(shù)(例如分配給給定用戶的IP地址)都應(yīng)記錄在數(shù)據(jù)庫中。所有更改必須記錄在數(shù)據(jù)庫中;如果實(shí)際的物理配置不同,那么根據(jù)定義它是錯(cuò)誤的。
圖1 以數(shù)據(jù)庫為中心的配置管理系統(tǒng)示意圖
這種方法有很多優(yōu)點(diǎn)。最突出的是正確性,另一個(gè)重要的優(yōu)勢是長期的成本節(jié)約。雖然構(gòu)建、運(yùn)行和管理這些基礎(chǔ)架構(gòu)會花費(fèi)一些成本,但它可以節(jié)省運(yùn)營開支。其還有一個(gè)重要的安全優(yōu)勢是響應(yīng)能力:如果發(fā)生安全事件,新配置可以很快地推送到所有節(jié)點(diǎn)。例如,當(dāng)許多ISP通過其路由器上的訪問控制列表阻止UDP端口1434時(shí),就能停止Slammer蠕蟲的傳播。
編譯過程與普通編程語言相似,但是,程序本身是非常不同的。在這種環(huán)境下,每個(gè)設(shè)備類型都有一個(gè)單獨(dú)的“主程序”,稱為設(shè)備列表,例如路由器或交換機(jī)。另外,由于必須支持來自不同廠商的不同型號的設(shè)備,所以存在用于不同設(shè)備的配置模板。還有一些特定配置細(xì)節(jié)片段的模板,如BGP對等體,SONET上的數(shù)據(jù)包(POS)接口等。在設(shè)備列表驅(qū)動生成的過程中,它會依次查找數(shù)據(jù)庫中的BGP對等體,接口詳細(xì)信息等,并使用這些數(shù)據(jù)驅(qū)動合適的片段模板以生成配置。包含模板的示例代碼段如下所示:
printf (POLICY "policy-statement peer-%d { ", $AS ); printf (POLICY " term ok { ");
printf (POLICY " from { ");
foreach $PREFIX (@PFX) {
printf (POLICY "route-filter $PREFIX exact; ");
}
printf (POLICY "} ");
printf (POLICY "then accept; ");
printf (POLICY "} ");
printf (POLICY "term final { ");
printf (POLICY "then reject ");
printf (POLICY "} ");
printf (POLICY " } ");
printf (PEERS " neighbor %s { ", $IP); printf (PEERS " peer-as $AS; ");
if ( $MD5 ne "NONE" ) {
printf (PEERS " authentication-key "%s"; ", $MD5);
}
printf (PEERS " import [ no-bogons dampening peer-%d ]; ",
$AS);
printf (PEERS " } ");
當(dāng)這段模板代碼運(yùn)行在圖2所示的數(shù)據(jù)庫上時(shí),它產(chǎn)生如下的輸出:
圖2 示例數(shù)據(jù)庫摘錄
neighbor 191.42.180.10{
peer-as 6666;
import [ no-bogons dampening peer-6666 ];
}
neighbor 191.42.180.12{
peer-as 1234;
authentication-key "fnardle";
import [ no-bogons dampening peer-1234 ];
}
neighbor 191.42.180.13{
peer-as 1243;
authentication-key "fnoofle";
import [ no-bogons dampening peer-1243 ];
}
neighbor 191.42.180.22{
peer-as 1423;
authentication-key "fnuffle";
import [ no-bogons dampening peer-1423 ];
}
除了特定于提供者的數(shù)據(jù)庫以外,公共數(shù)據(jù)庫(Internet Routing Registry)也被用作有關(guān)網(wǎng)絡(luò)拓?fù)浜颓熬Y分配的信息來源,用以創(chuàng)建路由器的ACL。
許多設(shè)備具有必須容納的操作特性。例如,當(dāng)被要求完全重新加載配置時(shí),一些設(shè)備重置一些或全部子系統(tǒng);例如許多Cisco路由器重置BGP會話,即使沒有任何關(guān)于BGP的改變)。因此,生成系統(tǒng)通常會生成一個(gè)“diff”文件,只需要將更改推送到設(shè)備。
由于推向設(shè)備的結(jié)果可能會跟預(yù)期的不一樣,因此通常在改變設(shè)備配置之前幾小時(shí)自動向管理員發(fā)送電子郵件,并要求最后的確認(rèn)。這個(gè)過程通常是每天進(jìn)行的,但是周期和時(shí)間因供應(yīng)商的不同而異,并且跨越地理和拓?fù)浣Y(jié)構(gòu)。一個(gè)大型的ISP會傾向于在整個(gè)網(wǎng)絡(luò)中緩慢地進(jìn)行更改。
偶爾,緊急修復(fù)必須被推送到一個(gè)或多個(gè)設(shè)備。管理系統(tǒng)必須能夠立即重啟和推送配置。工程師更改數(shù)據(jù)庫條目以表示所需的更改,按下按鈕以生成新配置,然后檢查它是否有錯(cuò)誤,最后通知系統(tǒng)將其推送到設(shè)備。
盡管我們不知道有哪些ISP實(shí)際執(zhí)行此操作,但基于編譯的方法可以輕松使用更復(fù)雜的機(jī)制來驗(yàn)證和構(gòu)建配置。
當(dāng)設(shè)備配置完全生成時(shí),配置的正式版本位于管理系統(tǒng)上,而不是設(shè)備上(圖3)。這意味著設(shè)備配置不應(yīng)該意外改變。為了驗(yàn)證這一點(diǎn),可以使用一些工具,例如rancid(http://shrubbery.net/rancid/),它們用于定期從設(shè)備上獲取運(yùn)行配置(傳統(tǒng)上每小時(shí)一次),將其存檔,如果發(fā)現(xiàn)不同于以前的或規(guī)范的配置就會自動向工程師發(fā)送電子郵件。
圖3 配置監(jiān)控系統(tǒng)結(jié)構(gòu)示意圖
rancid只是簡單的用來收集和區(qū)分來自所有設(shè)備的運(yùn)行配置,它不一定與網(wǎng)絡(luò)數(shù)據(jù)庫或配置生成系統(tǒng)相關(guān)聯(lián)。
當(dāng)然,外部人員造成的配置改變是一種侵入的形式。這意味著可以使用標(biāo)準(zhǔn)的入侵檢測和跟蹤技術(shù),可以跟蹤未經(jīng)授權(quán)更改的機(jī)器的IP地址(當(dāng)然,這是假設(shè)網(wǎng)元或連接到它的控制臺服務(wù)器做了足夠的日志記錄,本身就是一個(gè)重要的安全要求)。此外,授權(quán)配置與入侵者安裝的配置之間的差異可以給出有價(jià)值的線索目標(biāo)和動機(jī)。
成功管理安全配置需要三個(gè)要素:明確的政策;準(zhǔn)確了解所有計(jì)算機(jī)和網(wǎng)絡(luò)元素;適當(dāng)?shù)墓芾碥浖?梢钥隙ǖ氖?,所有這些要素都是其他類型的配置管理所需要的。但是,在安全設(shè)置中,故障可能會導(dǎo)致遠(yuǎn)遠(yuǎn)超出一個(gè)設(shè)備或系統(tǒng)的故障。因此,配置管理對網(wǎng)絡(luò)安全至關(guān)重要。根據(jù)工作經(jīng)驗(yàn)我們斷言,即使在中等規(guī)模的網(wǎng)絡(luò)環(huán)境中,也不應(yīng)該完全依靠手工管理配置,這樣會產(chǎn)生太多的錯(cuò)誤。
[1]J.Postel and J.Reynolds,File transfer protocol, Intern et Engineering Task Force,RFC 959,Oct.1985.[Online].Av ailable:http://www.rfceditor.org/rfc/rfc959.txt.
[2]D.Martin,S. Rajagopalan, and A. D. Rubin,Blocking Java applets at the firewall,Proc. Internet Society Symposium on Network and Distributed System Security,1997.
[3]A.Mayer,A.Wool,and E. Ziskind,Fang:A firewall analysis engine,in Proc. IEEE Symposium on Security and Privacy, 2000.
[4]Worldwide Infrastructure Security Report. Arbor Networks,2007,vol.III.[Online]. Available:http://www.harborn etworks.com/report..
網(wǎng)絡(luò)安全技術(shù)與應(yīng)用2018年3期