喬 路
(湖北珞格科技發(fā)展有限公司,湖北 武漢 430000)
信息時(shí)代下,網(wǎng)絡(luò)的作用越來越大,與此同時(shí),網(wǎng)絡(luò)安全問題也備受關(guān)注。為提高網(wǎng)絡(luò)的安全性,要采取有效的方法,評(píng)估網(wǎng)絡(luò)安全等級(jí),在各種測評(píng)方法中,滲透測試的效果較好,它可以檢測出系統(tǒng)中的安全漏洞,避免攻擊者破壞網(wǎng)絡(luò),使漏洞在完全暴露前得到修復(fù)。借此下面就滲透測試在網(wǎng)絡(luò)安全等級(jí)保護(hù)測評(píng)中的應(yīng)用展開研究。
滲透測試是針對網(wǎng)絡(luò)安全提出的一種機(jī)制,主要是為證明網(wǎng)絡(luò)的安全防御能力。目前,滲透測試尚無統(tǒng)一的標(biāo)準(zhǔn)定義,按照它的用途,可將之定義:針對目標(biāo)網(wǎng)絡(luò)真實(shí)攻擊的仿真。從技術(shù)層面看,滲透測試是對計(jì)算機(jī)系統(tǒng)全面的安全檢測,其目的是發(fā)現(xiàn)系統(tǒng)中潛在的漏洞,能夠?qū)ο到y(tǒng)基礎(chǔ)組件的行為加以評(píng)估,如網(wǎng)絡(luò)設(shè)備、應(yīng)用程序等??梢姡瑵B透測試在確保網(wǎng)絡(luò)系統(tǒng)安全方面具有不可替代的作用。
滲透測試方法較多,常用的有以下幾種:開源安全測試、系統(tǒng)安全評(píng)估、信息安全測試與評(píng)估、開放式Web 應(yīng)用安全項(xiàng)目等。上述滲透測試方法各具特點(diǎn),如開源安全測試是一個(gè)滲透測試框架,可用于衡量網(wǎng)絡(luò)安全性,能夠?yàn)榘踩|(zhì)量提供較為準(zhǔn)確的度量;系統(tǒng)安全評(píng)估可檢查網(wǎng)絡(luò)或是應(yīng)用程序的安全性,以特定的技術(shù)目標(biāo)作為關(guān)注對象,如操作系統(tǒng)、路由器、交換機(jī)和虛擬網(wǎng)絡(luò)等;信息安全測試與評(píng)估是高級(jí)別的網(wǎng)絡(luò)滲透測試方法;開放式Web 應(yīng)用安全項(xiàng)目是一種基于HTTP 的測試框架,包含的信息較為詳細(xì),可對項(xiàng)目風(fēng)險(xiǎn)全面描述。
1.2.1 計(jì)劃階段
滲透測試計(jì)劃階段要根據(jù)行業(yè)標(biāo)準(zhǔn)、安全策略和實(shí)踐需求等因素,定義測試目標(biāo)、測試范圍以及時(shí)間限制,完成所有計(jì)劃與準(zhǔn)備工作,獲取客戶正式授權(quán)許可。具體包括:確定特定IP 地址、測試技術(shù)清單、測試時(shí)限、測試受限主機(jī)、測試目標(biāo)系統(tǒng)及測試信息采集等方面。
1.2.2 發(fā)現(xiàn)階段
滲透測試根據(jù)計(jì)劃進(jìn)入發(fā)現(xiàn)階段,具體分為以下4 個(gè)環(huán)節(jié):(1)目標(biāo)發(fā)現(xiàn)。收集系統(tǒng)版本、安全漏洞、通信區(qū)域等公開信息。(2)目標(biāo)偵察。通過模仿、垃圾搜索、網(wǎng)絡(luò)踩點(diǎn)等技術(shù)手段獲取相關(guān)信息。(3)目標(biāo)掃描。識(shí)別目標(biāo)網(wǎng)絡(luò)的活動(dòng)系統(tǒng)、過濾端口、操作系統(tǒng)指紋和網(wǎng)絡(luò)路徑等。(4)目標(biāo)枚舉。確定共享文件、已知安全漏洞等信息。
1.2.3 評(píng)估階段
滲透測試評(píng)估要對目標(biāo)網(wǎng)絡(luò)進(jìn)行檢查評(píng)價(jià),采用PacketStrom 漏洞數(shù)據(jù)庫中提供的公開漏洞信息確定潛在威脅,分析漏洞的真實(shí)性,識(shí)別漏洞可能產(chǎn)生的風(fēng)險(xiǎn),判斷目標(biāo)網(wǎng)絡(luò)的安全狀態(tài),進(jìn)而針對性制定安全措施。
1.2.4 攻擊階段
在確定攻擊目標(biāo)后執(zhí)行具體攻擊,利用滲透測試框架節(jié)省測試程序執(zhí)行時(shí)間,在獲得成功后提升權(quán)限。如,獲取本地系統(tǒng)訪問權(quán)限、root 權(quán)限、網(wǎng)絡(luò)訪問權(quán)限等,攻擊結(jié)束時(shí)出具測試報(bào)告[1]。
1.2.5 報(bào)告階段
滲透測試報(bào)告主要內(nèi)容為漏洞與潛在風(fēng)險(xiǎn)評(píng)估,描述目標(biāo)組織的整體安全狀況,并提出相關(guān)防御建議,保證測試結(jié)果的準(zhǔn)確性。
網(wǎng)絡(luò)安全評(píng)估系統(tǒng)是基于網(wǎng)絡(luò)安全形勢與網(wǎng)絡(luò)體系結(jié)構(gòu)進(jìn)行確定,為使網(wǎng)絡(luò)系統(tǒng)的安全得到保障,除要明確具體的安全要求外,還要了解網(wǎng)絡(luò)系統(tǒng)的脆弱性及其造成的危害,以及針對脆弱性應(yīng)采取的措施,上述目標(biāo)的實(shí)現(xiàn),需要評(píng)估網(wǎng)絡(luò)系統(tǒng)的安全性。網(wǎng)絡(luò)安全評(píng)估的最終目的是借助測試技術(shù),找出網(wǎng)絡(luò)系統(tǒng)中存在的安全漏洞,評(píng)估網(wǎng)絡(luò)風(fēng)險(xiǎn)程度,依據(jù)評(píng)估結(jié)果,制定安全策略與措施,為網(wǎng)絡(luò)安全提供保障。
評(píng)估網(wǎng)絡(luò)的整體安全狀況是網(wǎng)管的重要工作內(nèi)容之一,為更加高效地完成此項(xiàng)工作,需要有一套功能強(qiáng)大、性能穩(wěn)定的測評(píng)工具,通過該工具對網(wǎng)絡(luò)安全等級(jí)保護(hù)進(jìn)行評(píng)測,及時(shí)了解并掌握網(wǎng)絡(luò)的安全情況?;诖耍旅嬉劳袧B透測試,設(shè)計(jì)開發(fā)一款網(wǎng)絡(luò)安全評(píng)估系統(tǒng)。本次設(shè)計(jì)的系統(tǒng)采用當(dāng)前較為流行的B/S 架構(gòu)體系,自Web 興起后,這種架構(gòu)在系統(tǒng)設(shè)計(jì)中的應(yīng)用越來越廣泛,基本上已經(jīng)取代C/S 架構(gòu),成為主流架構(gòu)。系統(tǒng)具備如下功能:用戶可以利用Web 瀏覽器,對服務(wù)器進(jìn)行訪問,并向服務(wù)器提交相關(guān)的掃描任務(wù),如端口掃描、IP 設(shè)置等[2];當(dāng)服務(wù)器端接收到用戶提交的掃描數(shù)據(jù)后,便會(huì)對指定的網(wǎng)絡(luò)做安全檢測,發(fā)現(xiàn)目標(biāo)網(wǎng)絡(luò)存在的漏洞;依據(jù)漏洞信息,評(píng)估漏洞的風(fēng)險(xiǎn)等級(jí)和網(wǎng)絡(luò)設(shè)備面臨的風(fēng)險(xiǎn)程度,并對網(wǎng)絡(luò)安全作出整體性評(píng)價(jià),提出合理可行的解決方案;以用戶指定的格式,反饋評(píng)估結(jié)果。
功能模塊是系統(tǒng)的核心部分,是系統(tǒng)設(shè)計(jì)開發(fā)的重要內(nèi)容,本系統(tǒng)主要有以下模塊:用戶配置、系統(tǒng)控制、網(wǎng)絡(luò)安全評(píng)估、漏洞庫以及插件庫等。
2.3.1 用戶配置
網(wǎng)絡(luò)安全漏洞掃描任務(wù)信息需要通過用戶配置模塊進(jìn)行建立,掃描任務(wù)信息是該模塊實(shí)現(xiàn)的主要功能,具體包括以下信息:掃描任務(wù)主機(jī)、掃描任務(wù)配置以及掃描任務(wù)插件等。通過輸入相應(yīng)的指令,可對漏洞掃描任務(wù)的啟、停加以控制,該模塊能夠?qū)呙璨呗赃M(jìn)行定義,并完成掃描參數(shù)的設(shè)定。依托該模塊,用戶可自行定制網(wǎng)絡(luò)安全漏洞掃描任務(wù)。
2.3.2 系統(tǒng)控制
系統(tǒng)控制模塊可以協(xié)調(diào)其他模塊,接受掃描請求,依據(jù)預(yù)先設(shè)定好的掃描策略,向各功能模塊下達(dá)指令,并對插件庫內(nèi)的腳本測試插件進(jìn)行調(diào)用,按配置的安全規(guī)則,掃描目標(biāo)網(wǎng)絡(luò),將結(jié)果發(fā)送給處理模塊。系統(tǒng)控制模塊的功能較多,如完成初始化、響應(yīng)客戶端發(fā)出的各種請求。系統(tǒng)在初始化的過程中,會(huì)調(diào)用腳本檢測插件,這個(gè)過程較為復(fù)雜,可由插件選擇與組織兩個(gè)模塊完成。插件選擇模塊會(huì)將選好的插件傳給組織模塊,而組織模塊會(huì)通過分析得出需要使用的插件,并為插件的執(zhí)行編排順序,這樣能夠使腳本解釋器的執(zhí)行效率得到大幅度提升。組織模塊按可執(zhí)行的插件建立關(guān)系樹,據(jù)此確定插件的執(zhí)行順序[3]。
2.3.3 網(wǎng)絡(luò)安全評(píng)估
網(wǎng)絡(luò)安全評(píng)估是本系統(tǒng)中較為重要的功能模塊之一,該模塊由漏洞風(fēng)險(xiǎn)評(píng)估、權(quán)重計(jì)算等部分組成,能夠?qū)δ繕?biāo)網(wǎng)絡(luò)面臨的風(fēng)險(xiǎn)大小進(jìn)行判定。在評(píng)估網(wǎng)絡(luò)設(shè)備風(fēng)險(xiǎn)大小時(shí),依據(jù)最薄弱環(huán)節(jié)公理,即網(wǎng)絡(luò)中最薄弱的部分決定了安全性的強(qiáng)度等級(jí),換言之網(wǎng)絡(luò)設(shè)備的風(fēng)險(xiǎn)大小等于掃描發(fā)現(xiàn)的漏洞風(fēng)險(xiǎn)大小,而漏洞的風(fēng)險(xiǎn)大小,可以通過插件的矢量定義求取。
2.3.4 漏洞庫
系統(tǒng)的每個(gè)安全漏洞均有屬于自己的特征,不同的漏洞有不同的應(yīng)對措施,漏洞庫的作用就是對當(dāng)前已知的漏洞特征及應(yīng)對措施加以存儲(chǔ)。在開發(fā)測評(píng)系統(tǒng)時(shí),需要建立一個(gè)與通用漏洞披露(CVE)相兼容的漏洞庫[4]。由于CVE 會(huì)定期更新,所以漏洞庫能夠追蹤到最新的漏洞,為測評(píng)提供條件。一個(gè)完整的漏洞庫由以下信息組成:基本信息、評(píng)價(jià)要素信息和其他信息。其中基本信息包含漏洞編號(hào)、漏洞名稱、漏洞描述和漏洞級(jí)別等內(nèi)容;評(píng)價(jià)要素信息包含攻擊途徑、攻擊的復(fù)雜程度、機(jī)密性、完整性及可用性等內(nèi)容;其他信息包含保留字段、解決方案等內(nèi)容,以上信息可存儲(chǔ)于二維表中。漏洞信息可通過相關(guān)的網(wǎng)站進(jìn)行采集,可以自動(dòng)采集,也可手動(dòng)收集。
2.3.5 插件庫
漏洞檢測腳本編寫完畢后,需要存放在插件庫中,一個(gè)插件與一個(gè)網(wǎng)絡(luò)安全漏洞相對應(yīng),通過系統(tǒng)控制模塊能夠調(diào)用插件。編制插件時(shí),要遵循簡潔明了的原則,插件代碼的組成部分越少越好,在保證應(yīng)用的前提下,單個(gè)插件的代碼應(yīng)由以下兩個(gè)部分組成:一部分為屬性描述,另一部分為掃描代碼。前者包含與網(wǎng)絡(luò)安全漏洞相關(guān)的各種基本屬性,后者可為漏洞檢測提供穩(wěn)定的功能函數(shù),以發(fā)送數(shù)據(jù)包的方式,模擬惡意攻擊,檢測目標(biāo)主機(jī)是否存在安全漏洞。插件的執(zhí)行需要通過解釋器完成,NASL 自帶插件解釋器功能,為腳本擴(kuò)展提供了便利條件。
2.4.1 端口掃描的實(shí)現(xiàn)
網(wǎng)絡(luò)滲透測試前,需要了解測評(píng)目標(biāo)開啟的端口情況及提供的網(wǎng)絡(luò)服務(wù)類型,這部分信息的獲取可以利用端口掃描完成。本文所設(shè)計(jì)的系統(tǒng)采用半開式掃描,即TCP SYN[5]。之所以選擇這種掃描方式,主要是因?yàn)樗軌蚩焖偾彝暾耐瓿? 次握手過程,當(dāng)SYN請求包發(fā)出后,返回的數(shù)據(jù)包為SYN/ACK 時(shí),表明端口此時(shí)正處于監(jiān)聽狀態(tài),若是返回的數(shù)據(jù)包為RST,則說明端口的狀態(tài)為關(guān)閉。由于掃描過程不會(huì)在系統(tǒng)上留下任何記錄,故很難被發(fā)現(xiàn)。在TCP SYN 掃描方式下,TCP 首部中不包含以下信息:源地址、目標(biāo)地址等,檢測時(shí),需要賦予TCP 一個(gè)偽首部,以此增強(qiáng)檢測的有效性,偽首部主要是用于計(jì)算,不需要發(fā)送。端口掃描的實(shí)現(xiàn)過程如下:套接字初始化,按檢測任務(wù)創(chuàng)建套接字,并對套接字選項(xiàng)合理設(shè)置,可以使用相關(guān)的函數(shù)對所創(chuàng)建的套接字IP 頭進(jìn)行設(shè)置,計(jì)算出TCP 的校驗(yàn),在具體計(jì)算時(shí),要包含TCP 偽首部;發(fā)送數(shù)據(jù)包,調(diào)用相應(yīng)的函數(shù)接收數(shù)據(jù)包,最后對接收到的數(shù)據(jù)包全面分析。
2.4.2 操作系統(tǒng)探測的實(shí)現(xiàn)
當(dāng)端口掃描完成后,便可探測操作系統(tǒng),為加快探測速度,在系統(tǒng)設(shè)計(jì)中,引入以下兩種探測技術(shù),其中一種是探測返回?cái)?shù)據(jù)包的TTL,即生存時(shí)間值,另一種是探測通信協(xié)議棧指紋。
(1)從操作系統(tǒng)的角度看,TTL 具有固定性的特點(diǎn),對目標(biāo)主機(jī)返回的TTL 進(jìn)行分析,能夠判斷出主機(jī)操作系統(tǒng)的類型。在探測操作系統(tǒng)時(shí),可以先用TTL 做初步判定,再以協(xié)議棧指紋對初步判定結(jié)果加以確認(rèn),提高探測效率。發(fā)送SYN 探測包可以獲得TTL,SYN探測包的發(fā)送歸屬于協(xié)議棧探測技術(shù)的范疇,由此使得探測包能夠與指紋相匹配[6]。當(dāng)二者的判斷結(jié)果吻合時(shí),便不需要協(xié)議棧指紋探測,可直接得出最終的探測結(jié)果。
(2)用通信協(xié)議棧指紋判斷網(wǎng)絡(luò)主機(jī)的操作系統(tǒng)類型時(shí),需要先按端口掃描結(jié)果,判斷主機(jī)中TCP 端口的情況,除正常開放的TCP 端口外,還要有一個(gè)關(guān)閉的TCP 和UDP 端口[7]。隨后系統(tǒng)會(huì)自行構(gòu)造出一種格式特定的數(shù)據(jù)包,并發(fā)送給目標(biāo)主機(jī),檢測目標(biāo)主機(jī)對數(shù)據(jù)包的響應(yīng)情況,用返回的結(jié)果與指紋數(shù)據(jù)匹配,找出目標(biāo)主機(jī)操作系統(tǒng)的具體類型。操作系統(tǒng)的探測方法實(shí)質(zhì)上就是通過發(fā)送不同的套接字包作為探測數(shù)據(jù)包,再通過端口將有利用價(jià)值的數(shù)據(jù)包過濾出來,并加以分解,最后將這些數(shù)據(jù)與指紋數(shù)據(jù)庫內(nèi)的數(shù)據(jù)做匹配,獲取操作系統(tǒng)信息,實(shí)現(xiàn)探測目標(biāo)主機(jī)操作系統(tǒng)的目的。
2.4.3 漏洞掃描的實(shí)現(xiàn)
在漏洞掃描時(shí),需要借助相應(yīng)的插件,由此使得掃描插件的選取成為重點(diǎn)內(nèi)容。通過掃描引擎,對封裝有漏洞掃描方法的插件進(jìn)行調(diào)用,便可快速完成網(wǎng)絡(luò)安全漏洞掃描。當(dāng)需要添加新的功能時(shí),對更多的漏洞進(jìn)行掃描,則可安裝更多的插件。本系統(tǒng)設(shè)計(jì)時(shí),選用NASL 語言作為掃描插件,這是一款專為漏洞編寫開發(fā)的具有解釋性功能的掃描腳本,可以提供非常豐富的函數(shù),用于網(wǎng)絡(luò)操作,由此使編寫出的掃描腳本代碼比較精煉,僅有數(shù)十行,為新掃描腳本的編制和舊腳本的維護(hù)帶來極大便利。按照NASL 的結(jié)構(gòu)以及該語言所提供的函數(shù)情況,在已知網(wǎng)絡(luò)脆弱性的前提下,可編寫安全漏洞掃描插件,對目標(biāo)主機(jī)中的漏洞進(jìn)行檢測[8]。
2.5.1 測試用例
為進(jìn)一步驗(yàn)證本次設(shè)計(jì)的測評(píng)系統(tǒng)的可用性,對已知拓?fù)浣Y(jié)構(gòu)的計(jì)算機(jī)網(wǎng)絡(luò)開展安全等級(jí)保護(hù)測評(píng)。待測網(wǎng)絡(luò)中包含路由器(1 個(gè))、防火墻(1 個(gè))、Web 服務(wù)器(1 個(gè))、客戶端設(shè)備(3 臺(tái))。安全漏洞掃描參數(shù)的設(shè)定情況如下:對整個(gè)網(wǎng)絡(luò)中的所有安全漏洞進(jìn)行測試,最大并發(fā)線程為100 個(gè),主機(jī)數(shù)量10 個(gè)[9]。
2.5.2 測試結(jié)果
網(wǎng)絡(luò)安全漏洞掃描用時(shí)為77 分12 秒,存活的主機(jī)數(shù)量為6 個(gè),安全漏洞數(shù)量為3 個(gè),警告數(shù)量為5個(gè),提示數(shù)量為7 個(gè)。經(jīng)滲透測試后,獲取到的網(wǎng)絡(luò)安全漏洞信息如下。主機(jī)一:發(fā)現(xiàn)安全警告;主機(jī)二:發(fā)現(xiàn)安全漏洞、安全警告和安全提示;主機(jī)三:發(fā)現(xiàn)安全漏洞和安全提示;主機(jī)四:發(fā)現(xiàn)安全漏洞和安全提示;主機(jī)五:發(fā)現(xiàn)安全漏洞和安全提示;主機(jī)六:發(fā)現(xiàn)安全警告。由上述檢測結(jié)果可以看出,本次設(shè)計(jì)的測評(píng)系統(tǒng),在網(wǎng)絡(luò)安全等級(jí)保護(hù)測評(píng)中具有良好的應(yīng)用效果,能夠發(fā)現(xiàn)網(wǎng)絡(luò)存在的安全問題。系統(tǒng)采用多進(jìn)程和多線程設(shè)計(jì),掃描速度大幅度提升,插件技術(shù)的運(yùn)用,使系統(tǒng)具備可擴(kuò)展性,評(píng)估方法合理可行,結(jié)果準(zhǔn)確,可在計(jì)算機(jī)網(wǎng)絡(luò)安全評(píng)估中推廣應(yīng)用。
綜上所述,網(wǎng)絡(luò)安全等級(jí)保護(hù)測評(píng)是一項(xiàng)非常重要的工作,為提高測評(píng)結(jié)果的準(zhǔn)確性,可以運(yùn)用滲透測試構(gòu)建測評(píng)系統(tǒng)。本文所設(shè)計(jì)的基于滲透測試的網(wǎng)絡(luò)安全等級(jí)保護(hù)測評(píng)系統(tǒng),在網(wǎng)絡(luò)安全評(píng)估方面具有良好的應(yīng)用效果,具備一定的推廣使用價(jià)值。未來一段時(shí)期,可對系統(tǒng)逐步改進(jìn),使其性能更加完善,更好地為網(wǎng)絡(luò)安全服務(wù)。