李洪濤 張秀娟
摘要:計(jì)算機(jī)軟件安全漏洞檢測(cè)技術(shù),主要目是在軟件開(kāi)發(fā)過(guò)程中幫助用戶發(fā)現(xiàn)潛在安全問(wèn)題,在軟件使用過(guò)程中幫助用戶規(guī)避其中存在安全風(fēng)險(xiǎn),保護(hù)計(jì)算機(jī)設(shè)備和用戶信息安全。在全世界互聯(lián)網(wǎng)高速發(fā)展背景條件下,移動(dòng)互聯(lián)網(wǎng)逐漸成為主流,物聯(lián)網(wǎng)也已形成發(fā)展趨勢(shì),計(jì)算機(jī)軟件安全隱患,會(huì)影響計(jì)算機(jī)系統(tǒng)穩(wěn)定性和安全性。因此,探究計(jì)算機(jī)軟件安全漏洞檢測(cè)技術(shù),對(duì)保障我國(guó)互聯(lián)網(wǎng)中計(jì)算機(jī)軟件安全運(yùn)行,可以提供有效幫助。
關(guān)鍵詞:計(jì)算機(jī)軟件;安全漏洞;技術(shù)分析;研究
中圖分類號(hào):TP311.5
一 計(jì)算機(jī)軟件中安全漏洞。
計(jì)算機(jī)軟件安全漏洞產(chǎn)生的來(lái)源,主要是軟件本身在編寫過(guò)程中產(chǎn)生隱性缺陷。這些缺陷有的是設(shè)計(jì)原因造成,有的是開(kāi)發(fā)人員技術(shù)性失誤造成,也有的是隨著技術(shù)發(fā)展和條件變化而暴露出來(lái)。這些安全漏洞如果被不法分子利用,通過(guò)這些缺陷在未經(jīng)授權(quán)情況下對(duì)系統(tǒng)進(jìn)行訪問(wèn)和控制,可能對(duì)系統(tǒng)正常穩(wěn)定運(yùn)行產(chǎn)生不確定影響,嚴(yán)重情況會(huì)造成信息泄露、系統(tǒng)軟硬件故障,甚至不可預(yù)知經(jīng)濟(jì)損失。對(duì)于普通用戶來(lái)說(shuō),基本觀念是在計(jì)算機(jī)系統(tǒng)中部署病毒防火墻和網(wǎng)絡(luò)防火墻,例如360、火絨、瑞星等廠商安全產(chǎn)品。從安全漏洞產(chǎn)生原理和安全防護(hù)軟件運(yùn)行機(jī)制來(lái)分析,這種方式是遠(yuǎn)遠(yuǎn)不夠。例如,當(dāng)漏洞不是出現(xiàn)在常見(jiàn)操作系統(tǒng)和基礎(chǔ)軟件上,而是發(fā)生在私有化部署或定制開(kāi)發(fā)軟件系統(tǒng)中,漏洞原因是中間件的缺陷或業(yè)務(wù)代碼邏輯存在問(wèn)題,這種漏洞并不包含觸發(fā)病毒防護(hù)軟件或網(wǎng)絡(luò)防護(hù)軟件特征值,所以無(wú)法被這類安全軟件及時(shí)發(fā)現(xiàn)。同時(shí),安全漏洞產(chǎn)生是一個(gè)動(dòng)態(tài)過(guò)程,隨著軟件運(yùn)行時(shí)間推移,當(dāng)前沒(méi)有漏洞軟件系統(tǒng),在遠(yuǎn)期依然可能會(huì)因?yàn)椴僮飨到y(tǒng)、基礎(chǔ)軟件、網(wǎng)絡(luò)結(jié)構(gòu)等外部環(huán)境變化而出現(xiàn)新漏洞。所以,在軟件從生產(chǎn)到運(yùn)維完整生命周期過(guò)程中,軟件安全漏洞檢測(cè)工作都是一項(xiàng)綜合的、專屬的、持續(xù)性工作,這樣才能防患于未然,盡快采取修補(bǔ)措施,避免發(fā)生安全事件。
二 軟件安全漏洞檢測(cè)技術(shù)
1代碼分析檢測(cè)
代碼分析檢測(cè)對(duì)象是計(jì)算機(jī)軟件源程序代碼。對(duì)于國(guó)內(nèi)大多數(shù)應(yīng)用軟件,如果對(duì)軟件安全性要求較高,可以采用代碼分析檢測(cè)方式來(lái)查找漏洞。代碼分析首先使用專用分析軟件,通過(guò)源代碼靜態(tài)分析技術(shù)對(duì)軟件程序代碼進(jìn)行自動(dòng)化分析,檢查程序中不符合安全規(guī)則文件引用、命名規(guī)則、函數(shù)、堆棧調(diào)用等風(fēng)險(xiǎn)點(diǎn),結(jié)合已經(jīng)公布安全信息庫(kù),從代碼層面發(fā)現(xiàn)軟件中可能存在安全缺陷位置。
對(duì)于無(wú)法獲得程序代碼軟件,更高級(jí)分析檢測(cè)方法是對(duì)軟件進(jìn)行逆向工程。例如使用Java和.NET技術(shù)開(kāi)發(fā)軟件,如果未采取有效保護(hù)措施,可以通過(guò)反編譯方法獲得程序代碼。即使無(wú)法進(jìn)行反編譯,也可以使用類似IDA這樣專用軟件進(jìn)行反匯編,針對(duì)匯編語(yǔ)言進(jìn)行分析。
2動(dòng)態(tài)掃描檢測(cè)
由于計(jì)算機(jī)軟件在運(yùn)行時(shí)是動(dòng)態(tài)變化,代碼分析方法是根據(jù)已知規(guī)則進(jìn)行比對(duì)分析,未考慮軟件外部運(yùn)行環(huán)境因素,以及使用過(guò)程中人為干預(yù)情況,因此這種方法不能發(fā)現(xiàn)軟件程序運(yùn)行過(guò)程中安全漏洞。所以,需要在軟件運(yùn)行過(guò)程中對(duì)軟件行為以及軟件運(yùn)行整體環(huán)境進(jìn)行動(dòng)態(tài)掃描分析,從而發(fā)現(xiàn)軟件在運(yùn)行狀態(tài)下才能暴露出來(lái)漏洞。動(dòng)態(tài)掃描檢測(cè)基本原理是模擬黑客攻擊過(guò)程,對(duì)軟件系統(tǒng)進(jìn)行目標(biāo)探測(cè)、狀態(tài)掃描、漏洞分析和滲透攻擊等操作,發(fā)現(xiàn)軟件運(yùn)行中潛在風(fēng)險(xiǎn)。
隨著網(wǎng)絡(luò)應(yīng)用快速發(fā)展,軟件系統(tǒng)動(dòng)態(tài)掃描檢測(cè)技術(shù)方法已經(jīng)非常成熟,已經(jīng)有多種方法可以完成各階段掃描任務(wù)。通過(guò)目標(biāo)探測(cè),可以發(fā)現(xiàn)軟件系統(tǒng)中對(duì)外提供服務(wù)主機(jī)地址和端口;通過(guò)狀態(tài)掃描,可以發(fā)現(xiàn)軟件系統(tǒng)運(yùn)行環(huán)境、運(yùn)行狀態(tài)等信息;通過(guò)漏洞分析,可以發(fā)現(xiàn)軟件系統(tǒng)和運(yùn)行環(huán)境中可能存在安全漏洞;通過(guò)滲透攻擊,可以用已知攻擊手段對(duì)軟件進(jìn)行破壞性嘗試。動(dòng)態(tài)掃描檢測(cè)發(fā)現(xiàn)安全漏洞,就是軟件系統(tǒng)運(yùn)行過(guò)程中安全薄弱點(diǎn),也極有可能是黑客攻擊入侵點(diǎn),通過(guò)對(duì)這些薄弱點(diǎn)進(jìn)行修復(fù),可以極大提高軟件安全性。
三 安全漏洞檢測(cè)技術(shù)應(yīng)用
1漏洞掃描
漏洞掃描是安全檢測(cè)中最基本檢測(cè)技術(shù)。一般漏洞掃描是由安全管理人員使用漏洞掃描設(shè)備對(duì)固定范圍內(nèi)主機(jī)和網(wǎng)絡(luò)設(shè)備進(jìn)行探測(cè)分析,根據(jù)探測(cè)獲取反饋信息與設(shè)備廠商漏洞信息庫(kù)進(jìn)行對(duì)比,對(duì)發(fā)現(xiàn)潛在威脅匯總報(bào)告。安全管理人員根據(jù)報(bào)告采取修補(bǔ)措施。在沒(méi)有漏洞掃描設(shè)備情況下,很多漏洞掃描工具也可以達(dá)到同樣效果,甚至在專項(xiàng)掃描方面,更為準(zhǔn)確。
2滲透測(cè)試
隨著互聯(lián)網(wǎng)和智能終端普及,現(xiàn)在軟件系統(tǒng)多數(shù)采用網(wǎng)絡(luò)架構(gòu),以Web方式設(shè)計(jì)實(shí)現(xiàn)。滲透測(cè)試是解決網(wǎng)絡(luò)應(yīng)用系統(tǒng)安全檢測(cè)最有效方法。滲透測(cè)試是出于保護(hù)系統(tǒng)目的,以模擬入侵方式來(lái)發(fā)現(xiàn)測(cè)試對(duì)象安全隱患。滲透測(cè)試目標(biāo)通常包括主機(jī)操作系統(tǒng)、數(shù)據(jù)庫(kù)系統(tǒng)、應(yīng)用系統(tǒng)、網(wǎng)絡(luò)設(shè)備。滲透測(cè)試過(guò)程一般包括信息采集分析、威脅規(guī)則建模、漏洞探測(cè)分析、滲透攻擊驗(yàn)證、修補(bǔ)方案制定等幾個(gè)步驟。滲透測(cè)試是一個(gè)非常專業(yè)化過(guò)程,需要專業(yè)安全分析人員實(shí)施,不是簡(jiǎn)單使用工具軟件就可以進(jìn)行。在針對(duì)Web開(kāi)發(fā)中常見(jiàn)SQL注入、跨站式攻擊、驗(yàn)證碼破解、弱口令等問(wèn)題,人工干預(yù)效果更明顯。
3網(wǎng)絡(luò)劫持
因?yàn)榛诰W(wǎng)絡(luò)軟件系統(tǒng)在運(yùn)行狀態(tài)下涉及網(wǎng)絡(luò)環(huán)節(jié)比較多,從終端瀏覽器到服務(wù)器入口通訊過(guò)程中,對(duì)網(wǎng)絡(luò)環(huán)境干預(yù),也可能會(huì)產(chǎn)生軟件漏洞。例如在軟件系統(tǒng)中經(jīng)常使用http協(xié)議,ftp協(xié)議,pop3協(xié)議,對(duì)數(shù)據(jù)都是明文傳輸,客戶端和服務(wù)器之間任何環(huán)節(jié)對(duì)數(shù)據(jù)劫持,都會(huì)造成信息泄露風(fēng)險(xiǎn)。即使使用加密方式,也存在中間人攻擊可能。對(duì)于軟件將部分邏輯前置于瀏覽器內(nèi)情況,通過(guò)JS篡改等方法,依然可以獲取交互信息,甚至影響操作結(jié)果。
四 結(jié)語(yǔ)
隨著網(wǎng)絡(luò)信息安全在國(guó)家、社會(huì)中影響越來(lái)越大,計(jì)算機(jī)軟件安全漏洞檢測(cè)技術(shù)也備受關(guān)注。雖然軟件安全漏洞檢測(cè)方法可能滯后于漏洞發(fā)布,但是在安全威脅大規(guī)模爆發(fā)之前,依然存在修復(fù)漏洞關(guān)鍵時(shí)期。從發(fā)展角度看,安全漏洞是客觀存在,漏洞檢測(cè)工作應(yīng)從本質(zhì)出發(fā),貫穿軟件從生產(chǎn)到運(yùn)維全過(guò)程,在不同軟件生命周期中,合理采用多種漏洞檢測(cè)技術(shù),并形成長(zhǎng)效運(yùn)行機(jī)制,制定風(fēng)險(xiǎn)預(yù)案,才能真正避免安全事件發(fā)生,實(shí)現(xiàn)計(jì)算機(jī)軟件行業(yè)健康發(fā)展。
參考文獻(xiàn):
[1]張魏.計(jì)算機(jī)軟件安全漏洞檢測(cè)分析[J].數(shù)碼世界,2018(03):113.
[2]鄭宜錕.計(jì)算機(jī)軟件中安全漏洞檢測(cè)技術(shù)及其應(yīng)用[J].計(jì)算機(jī)產(chǎn)品與流通,2018(01):32.
3216501908246