(中國移動通信集團設計院有限公司,北京 100080)
伴隨著IT技術和互聯(lián)網(wǎng)應用的蓬勃發(fā)展,針對企業(yè)和個人的相關安全威脅也日益凸顯。除了攻擊手段的多樣化、智能化和普遍化等外在原因,大量的安全漏洞也使得安全環(huán)境進一步惡化。
所謂安全漏洞(Vulnerability),就是存在于系統(tǒng)內(nèi)的弱點或缺陷,使得系統(tǒng)對一個特定的威脅攻擊或危險事件敏感。安全漏洞的出現(xiàn)和存在,既有客觀天然的原因,如代碼失誤、環(huán)境變化等;也有主觀后天的原因,如配置問題、管理缺乏等。
面對愈演愈烈的漏洞威脅和層出不窮的公告和修補建議,電信運營商、政府機構、科研企業(yè)等安全敏感度高的單位,在采用常規(guī)的“頂盔貫甲”安全思路來部署各類安全防護設備進行被動防御的同時,也在逐漸使用“強身健體”的思路、使用系統(tǒng)漏洞掃描設備、Web網(wǎng)頁漏洞掃描設備、基線檢查設備等漏洞檢測類設備來檢測所轄設備自身的安全性;相應地,此類安全產(chǎn)品的測試和選擇也越來越受到各方重視。
在林林總總的漏洞檢測類安全產(chǎn)品的選擇中,各方不僅希望掌握漏洞掃描等設備的工作原理、核心技術,更加看重實際的使用效果或者入網(wǎng)前的測試結果。雖然已經(jīng)有較為成熟的測試組織流程,測試機構也在不斷加大測試投入,但目前面向基于漏洞檢測的安全產(chǎn)品的多數(shù)測試方法并沒有形成科學的理論,已經(jīng)滯后了此類安全產(chǎn)品在整個安全體系中發(fā)揮本應具有的作用。
總的來看,雖然業(yè)內(nèi)還缺乏成熟的測試方法論對整個測試予以指導,但是對于一般安全產(chǎn)品的測試工作,應該把握以下幾個原則:
(1) 確保準確:產(chǎn)品測試的根本目的就是對參評設備進行橫向的技術比較,從中挑選出功能完備、性能優(yōu)良、滿足生產(chǎn)運維需要的產(chǎn)品。因此,無論采用何種測試方法,最終都要確保測試結果能夠真實反映出設備的優(yōu)點、不足、特性等。
(2) 防止作弊:設備提供商為提高測試成績,很多會提前對設備的功能和性能進行優(yōu)化,以取巧的手段換取高分。例如,對于應用層安全設備,由于受到體系架構和組件配置等方面的影響,一般設備性能指標和綜合準確率是反比的。換而言之,如果測試環(huán)境不能保證將某幾個指標同步測試,就有可能給被測廠家一定的操作空間,在結果上可能同時達到一個高分,而在實際使用中卻差強人意。
(3) 避免爭議:以防火墻為代表的三四層安全產(chǎn)品測試與路由器等網(wǎng)絡設備的測試環(huán)境、測試手段都已經(jīng)較為成熟,結果也鮮有不同意見。但面向應用層的安全產(chǎn)品測試方法和結果常常為各方質(zhì)疑,所以在測試內(nèi)容的選擇和測試方法的設計上,要有所取舍和精心考慮,在保證結果準確的前提下,不要輕易引入爭議項作為必測項目。
(4) 性價比優(yōu):測試的目的大多是直接為工程建設和生產(chǎn)運維服務的,而測試本身需要占用固定投入或者運營費用,因此也要考慮測試投入中人力、物力、時間等成本因素。
一項專業(yè)化測試,其主要內(nèi)容應該包括測試制度、組織架構、測試方案、過程記錄、綜合評估等5個方面。本文重點討論測試方案,即面向基于漏洞檢測的安全產(chǎn)品的測試項目和測試方法。
測試方案中,首先明確的是測試項目即測試者所關心的該類產(chǎn)品各項指標,如功能指標、性能指標、綜合指標等。從產(chǎn)品測試項目或者內(nèi)容安排來看大致可以分為兩類,全面測試與優(yōu)化測試:
(1) 全面測試,即測試覆蓋了被測產(chǎn)品所有的功能點和性能點。顯而易見,全面測試的優(yōu)勢在于可以徹底全面了解被測產(chǎn)品的情況;但是最大的問題在于測試內(nèi)容多、周期長和投入大。如果采用全面測試的方法,按照業(yè)內(nèi)通常的經(jīng)驗,一類安全產(chǎn)品總共投入的人工量即達到1 200人日,如果把租用測試儀表的費用考慮進去,僅一項測試的直接費用就達170多萬元。這顯然不符合性價比優(yōu)的測試原則。另外,測試結果過于繁雜也不利于參測產(chǎn)品之間的綜合比較。
(2) 優(yōu)化測試,即在前面(1)提到的測試全集中選擇有代表性的功能指標和性能指標進行重點測試。這種方法最大優(yōu)點在于省時省錢,但難度在于指標選取和測試方法的設計,需要避免造成以偏概全等問題。
通過對多種漏洞檢測類安全設備的深入分析與研究比較,筆者認為采用優(yōu)化測試是完全可行、可靠和可信的。下面,首先提出優(yōu)化后的測試指標項,然后在下一個小節(jié)中介紹關鍵測試環(huán)境的搭建和測試方法的設計。
為便于比較,在測試安排和評估中大多傾向于使用能夠量化的項目指標作為主要測試內(nèi)容。其中,安全類產(chǎn)品常用準確率作為關鍵指標來對產(chǎn)品進行測評。對于漏洞檢測類產(chǎn)品,其準確率指標主要有兩項:一是設備發(fā)現(xiàn)準確率,即要求送測設備能夠快速精準地發(fā)現(xiàn)設備、形成資產(chǎn)庫,并在此基礎上發(fā)現(xiàn)漏洞;二是漏洞檢測準確率,即將預植或者已知漏洞正確識別出來的比例(識別出的已知漏洞數(shù)量除以全部已知漏洞總數(shù))。
需要指出的是,漏洞檢測類安全產(chǎn)品測試環(huán)境搭建中最大的難點在于要求測試者準確了解實驗對象中預植的已知漏洞種類與規(guī)模。
眾所周知,基于漏洞檢測類的安全產(chǎn)品的真正核心實力在于對漏洞庫和相關知識庫的徹底掌握和充分積累。因此,雖然安全漏洞庫或者知識庫規(guī)模大小、危害分析的詳細程度、其升級周期快慢等并不能直接說某款產(chǎn)品的好壞,但卻從一個主要方面反映出產(chǎn)品質(zhì)量及其提供商的綜合實力,包括研究能力、開發(fā)能力、成果轉(zhuǎn)化力等。此外,在實際應用中,漏洞庫的完備性和升級及時可以幫助安全管理者能夠在入侵攻擊尚未造成更大危害之前做出最快反應。
一款功能完善的漏掃設備要兼顧嚴謹性與靈活性。在配置管理上應該同時兼具自動掃描、手動掃描功能,而且還提供針對不同掃描對象的配置模板,如并發(fā)線程數(shù)、掃描范圍、檢測內(nèi)容等,并給出推薦值,從而保證不同技術層次的人員能夠根據(jù)實際需要進行檢測工作部署。
在實際工作中,即使有大量的掃描檢測數(shù)據(jù)堆砌在一起,而不能從資產(chǎn)風險的角度確保技術安全與管理安全的同步性,那么對系統(tǒng)風險的整體性降低也無多大裨益。因此,要重點關注基于資產(chǎn)的漏洞風險評估、漏洞信息的管理、修補優(yōu)先級排序、歷史數(shù)據(jù)匯總和對比等輸出報告的可讀性與可用性上。
漏掃類產(chǎn)品的可靠性至少有兩層的含義。一是產(chǎn)品本身運行的穩(wěn)定性和可靠性;二是產(chǎn)品本身在模擬黑客的行為對被掃范圍進行攻擊測試時,是否會帶來安全風險,如造成的網(wǎng)絡癱瘓、關鍵應用或者服務中斷等。
下面,本文就此類安全產(chǎn)品的準確性、完備性與及時性、方便性、可用性和可靠性等5個方面的測試內(nèi)容,一一說明相應的測試方法。
測試方法是基于測試內(nèi)容的、通過一定技術手段獲得試驗結果的方法。不同的測試項目或者內(nèi)容有不同的測試方法。從業(yè)內(nèi)成熟經(jīng)驗和產(chǎn)品特點來看,基于漏洞檢測類的安全產(chǎn)品測試方法一般包含兩個方面,一是測試環(huán)境的搭建、二是測試手段。下面,我們對應前面提到的5個測試項目分別提出優(yōu)化的測試方法。
上節(jié)已經(jīng)提到此類安全產(chǎn)品的準確率有兩個方面,一是設備發(fā)現(xiàn)準確率;二是漏洞檢測準確率。對于設備發(fā)現(xiàn)準確率測試,可以利用復制虛擬機的方法來擴大被掃設備的規(guī)模,從而避免無法比較不同被測設備在掃描發(fā)現(xiàn)效率方面的差別。而對于漏洞檢測準確率,測試方法是比較復雜的。
前面已經(jīng)提到,在基于漏洞檢測類的安全產(chǎn)品測試中把檢測準確率指標作為關鍵指標還存在諸多值得商榷之處。首先,當前還沒有自動預植系統(tǒng)或者應用漏洞的儀表,因此很多情況下需要人為在測試環(huán)境中手工完成漏洞預植;其次,為保證測試環(huán)境與應用環(huán)境盡可能接近,整個漏洞集合必須是大規(guī)模(一般在千個量級)、多樣化、代表性強,覆蓋面廣的,這也給漏洞預植工作造成很大困難。綜上兩點,在漏洞檢測類產(chǎn)品測試中,其檢測準確率的真實值在理論上是無法得到的。
因此,在測試環(huán)境搭建中,需要找到一種方法,既保證測試樣本中的漏洞規(guī)模和代表性盡可能接近真實環(huán)境、又要保證測試人員能清楚地知道全部漏洞的類型和數(shù)量。這里我們提出補丁趨近驗證法來滿足測試的要求。
首先使用1或者2款漏洞檢測類設備對一個常見版本的被測對象進行掃描,并記錄漏洞列表合集;然后從相關官網(wǎng)下載一系列補丁對其修補,再使用同樣的掃描設備或者其他技術手段重新掃描,查看初次記錄的漏洞是否已經(jīng)不存在。經(jīng)過反復的掃描與修補過程,基本可以大致確定該被測對象中已經(jīng)存在的漏洞種類和數(shù)量。
這樣以來,準確率測試結果評估中所需“分母”——整個漏洞集合基本已知的前提下,剩余的測試即可按照常規(guī)方法展開并記錄,由此就可以得到一個基本可信的檢測準確率值。
除了通過方法(1)來從一個方面來檢查被測設備的漏洞庫的完備性和及時性以外,可以通過其他公開方式,來進一步檢驗。例如,被測產(chǎn)品一段時間內(nèi)的升級包的描述、建議、幫助等,以及這些提供商發(fā)布的漏洞提示、升級包等與被掃對象官網(wǎng)發(fā)布的時間是否同步等等。
眾所周知,安全類產(chǎn)品的軟件會涉及到總體結架構和模塊設計、編程和調(diào)試、聯(lián)調(diào)和測試等一系列過程。而最為簡便和直觀評測一款軟件優(yōu)劣的方法就是軟件對主流操作系統(tǒng)的兼容性和配置界面的靈活性。如果產(chǎn)品本身為軟件形態(tài),測試人員可以自行安裝一次,檢測其安裝是否順暢。如果是硬件形態(tài),也可以通過檢查其任務模板界面中是否包含并發(fā)的線程數(shù)、數(shù)據(jù)分組間隔時間、掃描對象總數(shù)等可配置內(nèi)容,而且要驗證上述配置項在極值情況下是否能夠正常工作。
發(fā)現(xiàn)漏洞,只是完成一半工作。一款優(yōu)秀的漏洞檢測類產(chǎn)品還會對掃描檢測結果進行分析,并提供修復建議。換而言之,在此項測試中,不僅需要考察結果是否全面精確,還必須落實這些數(shù)據(jù)是可為人們理解的信息,如被掃系統(tǒng)的量化風險、漏洞修復建議等報告。從而方便用戶在實際工作中有效地落實漏洞修補和風險規(guī)避的工作流程。
要檢查測試過程中,是否出現(xiàn)被測對象宕機,進程掛起等不穩(wěn)定現(xiàn)象。同時,要觀察被掃實驗環(huán)境中設備負荷變化情況,如網(wǎng)絡負荷、被掃主機負荷等等。比較簡易的方法是檢驗送測設備是否有高風險插件等,是否具備及時提醒操作員某項操作存在風險性等。
采用前面提到的優(yōu)化測試方案,首先是在測試項目的選擇上,有所取舍和精簡;其次,測試環(huán)境搭建科學公正;再次,測試效率也極大提高。例如,測試方法(1)、(2)、(3)中大部分都可以在一個測試步驟中同步完成,即測試展開、結果記錄、評估總結可以一次性完成;最后,可以保證測試結果能夠真實反映出設備的功能和性能水平。
同時,該優(yōu)化測試方案也可以進而推廣于某些通過掃描對比自身漏洞庫、知識庫,并據(jù)此進一步采取封堵、告警、記錄、建議等措施的安全設備的測試。