阮昊禹 吉林動(dòng)畫學(xué)院虛擬現(xiàn)實(shí)學(xué)院
在當(dāng)前社會(huì)生產(chǎn)、管理中,計(jì)算機(jī)作為現(xiàn)代社會(huì)的標(biāo)志已經(jīng)廣泛存在于各行各業(yè)中,并發(fā)揮著重要作用。通過對(duì)現(xiàn)階段計(jì)算機(jī)的應(yīng)用情況來看,計(jì)算機(jī)軟件安全已經(jīng)成為影響計(jì)算機(jī)進(jìn)一步發(fā)展的重要因素,為了避免軟件安全問題發(fā)生,就必須要從軟件安全檢測(cè)技術(shù)入手,通過檢測(cè)技術(shù)及時(shí)發(fā)現(xiàn)計(jì)算機(jī)軟件中存在的安全風(fēng)險(xiǎn)漏洞,避免安全問題發(fā)生,本文將以此為背景,對(duì)計(jì)算機(jī)軟件安全檢測(cè)的相關(guān)問題做進(jìn)一步分析。
在整個(gè)計(jì)算機(jī)軟件系統(tǒng)的開發(fā)過程中,安全檢測(cè)對(duì)于整個(gè)系統(tǒng)的性能產(chǎn)生深遠(yuǎn)影響,一般軟件開發(fā)商為了保證計(jì)算機(jī)軟件的性能可以達(dá)到預(yù)期水平,往往會(huì)在軟件研發(fā)階段就對(duì)軟件進(jìn)行安全檢測(cè)?,F(xiàn)階段,安全檢測(cè)已經(jīng)成為計(jì)算機(jī)軟件研發(fā)的重要流程。在對(duì)計(jì)算機(jī)軟件進(jìn)行安全檢測(cè)后,技術(shù)人員能對(duì)整個(gè)變成軟件的性能有一個(gè)較為全面的認(rèn)識(shí),不僅能及時(shí)發(fā)現(xiàn)軟件中存在的安全缺陷,還能加深研發(fā)人員對(duì)軟件的理解,提高軟件性能。通過對(duì)計(jì)算機(jī)軟件進(jìn)行安全檢測(cè),能有效降低軟件出現(xiàn)安全風(fēng)險(xiǎn)的問題,幫助軟件開發(fā)企業(yè)更好的占領(lǐng)市場(chǎng)。
在整個(gè)計(jì)算機(jī)軟件安全檢測(cè)過程中需要注意的是,計(jì)算機(jī)軟件安全檢測(cè)方法的主要意義就是發(fā)現(xiàn)軟件中存在的問題,而不是消除其中的錯(cuò)誤,因此在安全檢測(cè)結(jié)束后,還需要及時(shí)的采用處理措施才能保證軟件性能。
計(jì)算機(jī)軟件安全檢測(cè)的核心,就是要以軟件安全為目的對(duì)軟件進(jìn)行一系列的檢查與分析,通過及時(shí)尋找軟件中存在的安全問題,進(jìn)一步強(qiáng)化軟件性能。在整個(gè)計(jì)算機(jī)軟件安全檢測(cè)中,必須要重點(diǎn)關(guān)注以下幾點(diǎn)內(nèi)容:
(1)需要制定完成的安全檢測(cè)方案。在整個(gè)安全檢測(cè)過程中,要保證檢測(cè)方法具有科學(xué)性,能有效顯示軟件存在的質(zhì)量問題。在操作中,技術(shù)人員必須要進(jìn)一步了解軟件的性能,并結(jié)合軟件的應(yīng)用范圍,結(jié)合具體的環(huán)境對(duì)軟件進(jìn)行詳細(xì)的勘查與分析,并嚴(yán)格執(zhí)行相關(guān)安全檢測(cè)規(guī)定,才能保證軟件安全檢測(cè)效果能得到預(yù)期。同時(shí),軟件安全檢測(cè)人員還應(yīng)該具有全面的軟件安全檢測(cè)經(jīng)驗(yàn),并且能夠通過團(tuán)隊(duì)合作的方法對(duì)軟件性能做全面的分析,進(jìn)一步提高安全檢測(cè)效果。
(2)對(duì)計(jì)算機(jī)軟件安全檢測(cè)流程進(jìn)行優(yōu)化,提高安全檢測(cè)水平。與其他工作不同的是,計(jì)算機(jī)安全軟件對(duì)相關(guān)人員的技能水平提出了較高的要求,并且整個(gè)軟件性能檢測(cè)的過程十分繁瑣,軟件結(jié)構(gòu)越復(fù)雜,則安全檢測(cè)的難度越大。因此在整個(gè)軟件安全檢測(cè)過程中,工作人員必須要保證安全檢測(cè)工作具有針對(duì)性,能圍繞具體的軟件功能進(jìn)行安全檢測(cè),保證能在最短的時(shí)間內(nèi)發(fā)現(xiàn)質(zhì)量問題,提高檢測(cè)水平。
3.1 軟件安全漏洞簡(jiǎn)述
軟件安全漏洞是引發(fā)軟件安全風(fēng)險(xiǎn)的重要因素,學(xué)術(shù)界普遍認(rèn)為,軟件安全弱點(diǎn)就是可能帶來安全問題的計(jì)算機(jī)軟件代碼,但是由于軟件安全弱點(diǎn)與軟件安全漏洞存在不同,因此在研究軟件安全漏洞問題中需要注意的是,只有被證實(shí)可以引起攻擊的弱點(diǎn)才是漏洞,而弱點(diǎn)不一定是漏洞,但是漏洞卻一定有弱點(diǎn)。
3.2 軟件安全漏洞分類
對(duì)于相關(guān)人員而言,為了能有效發(fā)現(xiàn)、處理計(jì)算機(jī)軟件中存在的安全漏洞,就需要先了解漏洞的基本情況,掌握其產(chǎn)生的條件,才能更好的處理漏洞。目前軟件安全漏洞主要分為以下幾種:
(1)緩沖區(qū)溢出。近幾年,緩沖區(qū)溢出已經(jīng)引起了很多嚴(yán)重的軟件安全問題,從2003年至今的漏洞排名中,緩沖區(qū)溢出一直“榜上有名”,著名的震蕩波、大蠕蟲沖擊等都是通過緩沖區(qū)溢出等實(shí)現(xiàn)攻擊目的。計(jì)算機(jī)緩沖區(qū)都具有固定的容量,在存儲(chǔ)數(shù)據(jù)過程中必須要保證數(shù)據(jù)總量不能大于緩沖區(qū)的容量,一旦超出這個(gè)容量,很多數(shù)據(jù)都會(huì)“溢出”。很多時(shí)候這些“溢出”的數(shù)據(jù)不會(huì)產(chǎn)生任何問題,并且在測(cè)試期內(nèi)也不會(huì)檢測(cè)出安全風(fēng)險(xiǎn),但是這種“溢出”在實(shí)際上已經(jīng)成為軟件的安全漏洞。
(2)隨機(jī)數(shù)。隨機(jī)數(shù)在整個(gè)軟件安全中發(fā)揮著重要作用,不僅能生成序列號(hào),有些特殊的情況下還能用來制作密鑰,因此隨機(jī)數(shù)會(huì)對(duì)軟件安全性產(chǎn)生深遠(yuǎn)影響。同時(shí),隨機(jī)數(shù)的問題還出現(xiàn)在某些操作系統(tǒng)的TCP/IP協(xié)議軟件中,由于選擇了不完善的隨機(jī)數(shù)產(chǎn)生數(shù)據(jù),導(dǎo)致信息傳輸雙方的數(shù)據(jù)報(bào)文容易被破解,這樣攻擊者就能快速的獲取資料,并侵入到通信中。
3.3 計(jì)算機(jī)軟件安全檢測(cè)技術(shù)分析
3.3.1 動(dòng)態(tài)檢測(cè)技術(shù)
在計(jì)算機(jī)軟件安全動(dòng)態(tài)檢測(cè)技術(shù)中,常見的技術(shù)主要分為以下幾種:
(1)非執(zhí)行棧技術(shù)?,F(xiàn)階段基于棧進(jìn)行攻擊的事件時(shí)有發(fā)生,導(dǎo)致出現(xiàn)這一問題的主要原因就是系統(tǒng)棧在操作中是可以被執(zhí)行的,因此面對(duì)被改寫的數(shù)據(jù)組,這些改變都會(huì)在棧中得到體現(xiàn),攻擊者只需要向棧中輸入惡意代碼,再通過一定措施激活這些代碼,就能實(shí)現(xiàn)對(duì)數(shù)據(jù)組的控制?,F(xiàn)階段棧的攻擊技術(shù)比較全面,對(duì)計(jì)算機(jī)軟件所造成的影響也十分明顯。在應(yīng)用非執(zhí)行棧技術(shù)過程中需要注意的是,該技術(shù)的檢測(cè)過程中具有一定的曲線,僅能檢測(cè)并阻止毀棧行為,供給者一旦將惡意代碼預(yù)熱到原有的數(shù)據(jù)段中來躲避非執(zhí)行棧檢測(cè)后,只需要將棧中返回的地址覆蓋,使得這個(gè)返回地址指向數(shù)據(jù)段中的惡意代碼就可以了。
(2)內(nèi)存映射技術(shù)。一些攻擊者在運(yùn)用系統(tǒng)軟件漏洞中,經(jīng)常會(huì)通過使用NULL結(jié)尾字符來覆蓋原有內(nèi)存,并通過這種方法來達(dá)到攻擊目的。在處理該攻擊手段時(shí),可以通過內(nèi)存映射技術(shù),讓攻擊者無法通過NULL結(jié)尾的字符串跳轉(zhuǎn)至低內(nèi)存的區(qū)域,并且這些代碼本身就含有一定數(shù)量的NULL字符。一般在面對(duì)計(jì)算機(jī)軟件緩沖區(qū)溢出的漏洞,攻擊者會(huì)通過尋找目標(biāo)進(jìn)程中存在的某些地址,再按照這些地址的結(jié)構(gòu)來構(gòu)建屬于自己的數(shù)據(jù)。同時(shí),由于這些地在操作系統(tǒng)上都具有規(guī)律性,因此如果使用內(nèi)存映射技術(shù),通過將代碼映射到隨機(jī)地址上,就會(huì)進(jìn)一步增加攻擊難度,讓攻擊者無法快速找到地址,保證了系統(tǒng)安全。
3.3.2 靜態(tài)檢測(cè)技術(shù)
靜態(tài)檢測(cè)技術(shù)的核心,就是要通過相關(guān)程序來分析軟件二進(jìn)制代碼或者源代碼的技術(shù)方法。與動(dòng)態(tài)檢測(cè)技術(shù)相比,靜態(tài)檢測(cè)技術(shù)能找出軟件中存在的大量缺點(diǎn),但是會(huì)存在五寶問題。但在總體上來看,靜態(tài)檢測(cè)技術(shù)更加便捷,不需要對(duì)操作系統(tǒng)做過多修改,因此能得到更多人員的認(rèn)可。
元編譯技術(shù)作為一個(gè)純粹的基于編譯器的技術(shù),它不會(huì)帶來任何語言方面的新擴(kuò)展,因此也就不可能帶來兼容性方面的問題。同時(shí)需要注意的是,元編譯證書范圍檢測(cè)器在很多情況下基本不會(huì)出現(xiàn)誤報(bào)情況,因此這種技術(shù)的檢出性更高,能滿足大多數(shù)計(jì)算機(jī)軟件安全檢測(cè)的要求。
在本次研究中,本文重點(diǎn)闡述了計(jì)算機(jī)軟件安全檢測(cè)方法的相關(guān)內(nèi)容,在介紹軟件安全檢測(cè)相關(guān)內(nèi)容的同時(shí),對(duì)其技術(shù)進(jìn)行了分析。從本次研究結(jié)果來看,現(xiàn)階段計(jì)算機(jī)軟件安全檢測(cè)技術(shù)主要可以分為動(dòng)態(tài)檢測(cè)技術(shù)與靜態(tài)檢測(cè)技術(shù),兩種技術(shù)在計(jì)算機(jī)軟件安全檢測(cè)中各自發(fā)揮著不同的作用。因此對(duì)相關(guān)人員而言,在技術(shù)應(yīng)用中,必須要充分考慮兩種技術(shù)的優(yōu)越性,并根據(jù)計(jì)算機(jī)軟件安全現(xiàn)狀,科學(xué)選擇軟件安全檢測(cè)方法,為進(jìn)一步提高軟件安全性奠定基礎(chǔ)。