◆劉 振 王國仕 馮世杰 呂志鵬
基于漏洞屬性分析的軟件安全評估方法
◆劉 振 王國仕 馮世杰 呂志鵬
(海南電網(wǎng)有限責(zé)任公司信息通信分公司 海南 570203)
隨著科學(xué)技術(shù)發(fā)展,互聯(lián)網(wǎng)在生活中應(yīng)用日益廣泛,軟件工業(yè)發(fā)展的速度非???,并且規(guī)模持續(xù)增長,軟件內(nèi)部邏輯變得更加復(fù)雜。軟件在網(wǎng)絡(luò)環(huán)境運(yùn)行下還會(huì)面對許多不確定因素,由此使軟件面臨嚴(yán)重的安全問題。對于用戶而言,軟件質(zhì)量與安全十分重要,因此如何確保軟件安全從而使信息安全能夠得到有效保障,是軟件行業(yè)發(fā)展需要面對并解決的問題。本文就基于漏洞屬性分析的軟件安全評估方法作簡要闡述。
漏洞屬性分析;軟件安全;評估方法
網(wǎng)絡(luò)與信息系統(tǒng)自身具有良好的開放性與復(fù)雜性,因此軟件程序容易受到各方面攻擊,包括內(nèi)部或者是外部。漏洞始終是存在的,因此就需要工作人員通過技術(shù)更新增強(qiáng)安全防護(hù)從而使用戶在使用軟件的過程中,各方面安全能夠獲得保障。
風(fēng)險(xiǎn)矩陣評估方法,此種方法應(yīng)用于安全分析工作是最為常見的,鑒于與安全評估工作存在關(guān)聯(lián)的因素比較多,并且各項(xiàng)因素之間存在的非常復(fù)雜的聯(lián)系,彼此之間會(huì)產(chǎn)生影響,因此有必要通過矩陣對其進(jìn)行安全性評估。網(wǎng)絡(luò)環(huán)境不同時(shí),軟件運(yùn)行的安全性也會(huì)存在差異,同時(shí)軟件受影響程度也會(huì)存在差異。風(fēng)險(xiǎn)矩陣是比較傳統(tǒng)的方法,需要大量的數(shù)據(jù)支持開展工作,并且需要工作人員有足夠豐富的工作經(jīng)驗(yàn),以此才能對失效嚴(yán)重程度及其標(biāo)準(zhǔn)率進(jìn)行具體的量化,數(shù)據(jù)結(jié)果也才能夠更加的準(zhǔn)確。將此種方法應(yīng)用于安全評估工作,能夠使安全評估工作的客觀性等級獲得提升,并且評估結(jié)果的準(zhǔn)確性也能夠得到保障。
軟件安全模糊評估方法,此種方法應(yīng)用于安全評估工作在具體操作方面是通過輸入非預(yù)期值,并且對系統(tǒng)異常進(jìn)行監(jiān)控從而發(fā)現(xiàn)軟件存在的安全漏洞。由于軟件在安全漏洞方面存在不確定性與復(fù)雜性,因此環(huán)境差異會(huì)使軟件受威脅程度存在差異,并且環(huán)境存在的差異性對軟件造成的危害也會(huì)存在差異,對軟件進(jìn)行安全性進(jìn)行評估也存在較大的不確定性,采用此種方法進(jìn)行評估,結(jié)果及其過程都模糊的[1]。
基于可靠性的軟件安全評估方法,軟件可靠與安全性是軟件兩種重要的屬性,而軟件安全與可靠性研究工作也是安全領(lǐng)域的難點(diǎn)與重點(diǎn)。在初級階段,軟件安全與可靠性可以考慮利用可靠性模型進(jìn)行評估。此外二者研究工作的重點(diǎn)還在于相互比較,有研究人員認(rèn)為系統(tǒng)不安全,因此其可靠性就一定無法得到保障,因此可以通過對軟件運(yùn)行的安全性進(jìn)行計(jì)算與分析,從而獲得與軟件可靠性相關(guān)的指標(biāo),以此為開展后期工作提供幫助。
軟件安全是指在受到外部或者是內(nèi)部攻擊情況下,程序依舊能夠正常運(yùn)行,軟件安全性則是指受到外部或者內(nèi)部攻擊時(shí),系統(tǒng)受到損害的概率。系統(tǒng)受到的危害可以將其分為財(cái)務(wù)損失、物理損失等??煽颗c安全性作為最重要的兩個(gè)屬性,安全性能夠?yàn)槿藗冐?cái)產(chǎn)安全提供足夠的保障。研究人員發(fā)現(xiàn),防火墻已經(jīng)逐漸失去了其原有的效果,軟件安全性更加強(qiáng)調(diào)在某些方面可能會(huì)受到攻擊,研究工作的重點(diǎn)在于潛在的危險(xiǎn)。軟件安全性主要體現(xiàn)在以下方面:可用性、完整性、責(zé)任性、保密性等。
任何軟件都會(huì)存在漏洞,因此依據(jù)定義的不同可以對漏洞進(jìn)行不同的分類。比如基于空間狀態(tài)、訪問角度、模糊定義進(jìn)行劃分等,不同的定義都會(huì)存在局限性。漏洞安全屬性也可以將其分為多個(gè)方面,比如,攻擊屬性、因果關(guān)系、時(shí)間相關(guān)以及其它屬性等,而對于每一類屬性又可以具體進(jìn)行細(xì)分。安全漏洞分類可以結(jié)合協(xié)議原因與產(chǎn)生后果等方面分為以下幾種:依據(jù)協(xié)議進(jìn)行劃分,依據(jù)對系統(tǒng)造成的危害進(jìn)行劃分,依據(jù)攻擊的方式進(jìn)行劃分,依據(jù)漏洞的起因。依據(jù)漏洞形成原因又可將其劃分為分析、設(shè)計(jì)、維護(hù)、實(shí)現(xiàn)、配置等階段。
風(fēng)險(xiǎn)指的是能夠?qū)е仑?cái)產(chǎn)受到危害或者是利用事物已有的弱點(diǎn)從而使其受到損害的可能性,也可以將其理解為某些特定的事件在一定環(huán)境條件發(fā)生可能性及后果的結(jié)合。安全分析工作中,軟件安全性特定事件是可能會(huì)導(dǎo)致軟件完整性、保密性及可用性受到破壞的漏洞。
對安全風(fēng)險(xiǎn)進(jìn)行評估的方法有多種,常用的包括了以下幾種,定量分析與定性分析、基于模型而開展的半定量分析,三種方法優(yōu)缺點(diǎn)不同。其中定性的分析方法是利用了具體數(shù)值將風(fēng)險(xiǎn)進(jìn)行量化從而計(jì)算得到結(jié)果,具有較強(qiáng)的客觀與直觀性,但是應(yīng)用此種方法時(shí),量化的方法比較難以掌握。定量分析的方法進(jìn)行細(xì)分包括了模糊綜合評定、社經(jīng)網(wǎng)絡(luò)等。采用定性的方法進(jìn)行分析,需要結(jié)到評估人員的個(gè)人經(jīng)驗(yàn)以及相關(guān)數(shù)據(jù),工作結(jié)果會(huì)呈現(xiàn)出較強(qiáng)主觀性,主要包括專家評價(jià)法、安全檢查表、事件樹與事故樹分析、因果分析、潛在問題分析、作業(yè)安全分析等方法[2]。最后一種安全評估方法需要結(jié)合到被評估的具體信息而建立相應(yīng)的系統(tǒng)從而開展工作,通過模型建立,利用多種或者是一種能夠有效反映風(fēng)險(xiǎn)的系數(shù)對系統(tǒng)整體風(fēng)險(xiǎn)進(jìn)行評估,此處方法應(yīng)用于評估工作能夠有效有結(jié)合前兩種評估方法的優(yōu)點(diǎn),從而確保評估工作的結(jié)果更加準(zhǔn)確。
風(fēng)險(xiǎn)評估早期應(yīng)用于安全性方面,之后則引入并且應(yīng)用于軟件安全性分析,軟件安全風(fēng)險(xiǎn)主要是安全漏洞可能會(huì)帶來的一系列不確定的后果。而漏洞受威脅性、脆弱性與風(fēng)險(xiǎn)評估中威脅存在的可能性、脆弱性嚴(yán)重程度有密切對應(yīng)關(guān)系。因此對漏洞進(jìn)行安全分析與風(fēng)險(xiǎn)評估兩者之間也存在密切關(guān)系。
軟件功能在日益豐富,并且運(yùn)行的環(huán)境也趨向于復(fù)雜,因此影響到軟件安全運(yùn)行的因素也越來越多。有研究結(jié)果表明,軟件安全漏洞增長的速度與代碼行數(shù)的平方成正比。對軟件復(fù)雜性有影響的還包括了代碼集成緊密程度,補(bǔ)丁以及修改后重疊率等。由此也可以得出結(jié)論,軟件存在的安全漏洞數(shù)量越多,軟件安全性表現(xiàn)就會(huì)越差。
此模型是微軟開發(fā)的,其主要作用在于對存在的危害進(jìn)行識(shí)別分類,從而使工作人員能夠?qū)ζ溆绊戇M(jìn)行準(zhǔn)確的評估,基于此而找出解決問題的方法,從而使問題出現(xiàn)的概率最小化或者是受到的影響最低。此模型中,六方面安全威脅分別是假冒、篡改、否認(rèn)、信息泄露、拒絕服務(wù)與安全權(quán)限等。而上述威脅與軟件安全屬性之間存在某種對應(yīng)關(guān)系,因此利用該模型對軟件安全性進(jìn)行研究能夠獲得比較好的效果。
基于此模型進(jìn)行的風(fēng)險(xiǎn)評估,能夠?qū)⒊橄蟮娘L(fēng)險(xiǎn)具體化,目標(biāo)達(dá)成主要是通過模型應(yīng)用。對軟件運(yùn)行面臨的不安全因素進(jìn)行分析從某種程度上來講,就是分析軟件或者軟件運(yùn)行環(huán)境存在的漏洞,并且將此類事件進(jìn)行匯總與分析,從而與模型相對應(yīng)。通過此種方法建立模型的好處在于,風(fēng)險(xiǎn)評估的結(jié)果明確并且直觀,可以基于模型的六項(xiàng)指標(biāo)從而對風(fēng)險(xiǎn)大小進(jìn)行分析與判定,以此確定對漏洞進(jìn)行修復(fù)的順序。風(fēng)險(xiǎn)評估工作作用還在于能夠判定軟件是否能夠有效承受風(fēng)險(xiǎn),而此目標(biāo)主要是在軟件評估測試環(huán)節(jié)完成。如果評估的結(jié)果低于軟件風(fēng)險(xiǎn)水平,則可以認(rèn)為軟件是安全的。從微觀層面分析,導(dǎo)致軟件面臨安全風(fēng)險(xiǎn)的原因在于網(wǎng)絡(luò)環(huán)境與軟件自身在安全方面存在漏洞,因此分析工作從漏洞著手是最為有效的方法,能夠從根源查找導(dǎo)致風(fēng)險(xiǎn)存在的因素。
軟件功能豐富為人們生活以及生產(chǎn)工作的開展提供便利,但是另一方面軟件漏洞是無法避免的,漏洞的存在會(huì)使軟件在運(yùn)行過程中的安全性受到威脅。軟件功能在豐富的同時(shí),所處地環(huán)境越復(fù)雜,軟件面臨的風(fēng)險(xiǎn)就會(huì)越大,因此軟件漏洞數(shù)量與其復(fù)雜性是成正比的。鑒于漏洞對軟件造成的嚴(yán)重影響,需要通過有效的方法對其進(jìn)行分析與評估,從而采用針對性措施以降低風(fēng)險(xiǎn)或者是受影響的程度,確保整體系統(tǒng)能夠安全穩(wěn)定運(yùn)行。
[1]韋濤,彭武,王冬海.基于漏洞屬性分析的軟件安全評估方法[J].電光與控制,2015.
[2]戚榮波,杜晶,楊葉.基于通用知識(shí)的軟件設(shè)計(jì)安全性評估[J].計(jì)算機(jī)系統(tǒng)應(yīng)用,2013.
網(wǎng)絡(luò)安全技術(shù)與應(yīng)用2018年3期