廖旭
目前計算機(jī)技術(shù)的普及,軟件系統(tǒng)也不斷進(jìn)行升級與更新。人們對計算機(jī)的安全也日益關(guān)注。而計算機(jī)本身存在的漏洞對安全檢測技術(shù)提出了更嚴(yán)峻的難題。本文通過計算機(jī)的軟件工程出現(xiàn)的安全漏洞,來分析軟件工程相應(yīng)的檢測技術(shù)。通過檢測技術(shù)在軟件工程的運用來保障計算機(jī)的使用安全。
【關(guān)鍵詞】安全漏洞 檢測技術(shù) 軟件工程
隨著信息化技術(shù)的發(fā)展,人們的生活也離不開計算機(jī)的使用。計算機(jī)的安全系統(tǒng)就顯得十分重要。近年來,利用軟件系統(tǒng)的漏洞導(dǎo)致針對計算機(jī)的攻擊事件逐年上升,這就導(dǎo)致計算機(jī)內(nèi)部存在的安全漏洞成為自身安全的重大威脅。雖然電腦本身有很多殺毒軟件的程序,但是這些程序本身也存在一些問題,沒能起到保護(hù)電腦的作用。因此,針對計算機(jī)安全漏洞技術(shù)的檢測在目前來看十分必要。
1 軟件工程面臨的問題
計算機(jī)內(nèi)部軟件本身在設(shè)計的時候就存在一些缺陷和問題,在軟件研發(fā)期間,由于研發(fā)人員對技術(shù)掌握不是十分熟練,再加上軟件本身存在的問題都會導(dǎo)致計算機(jī)內(nèi)部存在安全漏洞。最近幾年發(fā)生的黑客攻擊網(wǎng)絡(luò)的事件增加,計算機(jī)本身存在安全系統(tǒng)的缺陷給網(wǎng)絡(luò)黑客攻擊電腦提供可乘之機(jī)。
計算機(jī)內(nèi)部軟件本身屬于需要耗費大量物力、人力、財力才能完成的高科技產(chǎn)品。相關(guān)產(chǎn)業(yè)在研發(fā)上付出了很大的代價。但是計算機(jī)內(nèi)部軟件的缺點處理存在安全漏洞之外,可復(fù)制技術(shù)十分容易。目前全球使用盜版的計算機(jī)內(nèi)部軟件情況十分嚴(yán)重,我國正好屬于盜版使用的重災(zāi)區(qū)。這些問題導(dǎo)致除了給研發(fā)企業(yè)帶來巨大的經(jīng)濟(jì)損失外,也給不法分子帶來可乘之機(jī),通過對計算機(jī)系統(tǒng)的攻擊,復(fù)制相關(guān)的數(shù)據(jù),給個人、社會和國家?guī)砭薮蟮慕?jīng)濟(jì)損失。最近幾年發(fā)生的針對部分單位的網(wǎng)絡(luò)攻擊,很大原因就是利用相關(guān)漏洞來擾亂正常秩序。
計算機(jī)的漏洞有以下方面:
(1)編程數(shù)據(jù)出現(xiàn)了邏輯性的錯誤,原因基本是設(shè)計人員的疏忽大意;
(2)計算機(jī)在運行上也會產(chǎn)生相應(yīng)的邏輯性錯誤,并且發(fā)生率較高;
(3)漏洞與軟件環(huán)境相互依存;
(4)舊漏洞修復(fù)之后還會產(chǎn)生新的漏洞。
2 安全漏洞的檢測技術(shù)
2.1 靜態(tài)檢測技術(shù)
靜態(tài)分析是指針對計算機(jī)安全漏洞的靜態(tài)檢測。目前的靜態(tài)檢測技術(shù)主要有兩種形式,除了靜態(tài)分析外,還有程序檢驗。
2.1.1 靜態(tài)分析
靜態(tài)分析主要內(nèi)容是,對軟件系統(tǒng)內(nèi)部的源代碼進(jìn)行掃描,根據(jù)掃描的結(jié)果來查找關(guān)鍵句和語法。通過解讀程序的含義及行為展開分析,按照系統(tǒng)的漏洞特性和安全標(biāo)準(zhǔn)來完成檢測工作。針對分析上,首先要分析關(guān)鍵詞和語法,通過檢查語法方面的內(nèi)容,把系統(tǒng)劃分為若干片段,把這些片段與數(shù)據(jù)庫的內(nèi)容展開分析對比,來檢測系統(tǒng)內(nèi)部是否存在漏洞,并因此開展工作。但是這種檢測工作缺電是檢測數(shù)量有限,有些已知的漏洞出現(xiàn)重復(fù)檢測,也有部分內(nèi)容沒有檢測出來;其次需根據(jù)相關(guān)標(biāo)準(zhǔn)對軟件內(nèi)部開展嚴(yán)格檢測,一般系統(tǒng)能在安全、穩(wěn)定的運行情況下就設(shè)定為安全標(biāo)準(zhǔn)。針對檢測方法,先用語法模式的描述來運行該標(biāo)準(zhǔn),然后再運用規(guī)則處理器來運行,當(dāng)語法模式轉(zhuǎn)變?yōu)閮?nèi)部程序模式之后,來測定全面檢測系統(tǒng)的運行情況。
2.1.2 程序檢驗
程序檢驗通過軟件系統(tǒng)的程序來確定形式化的程序與模型,隨后程序要進(jìn)行形式化的檢測,再通過其他檢測方式來檢測軟件系統(tǒng)內(nèi)部的漏洞情況。首先把模型進(jìn)行設(shè)計,通過系統(tǒng)程序來設(shè)計模型,設(shè)計好的模型應(yīng)及時進(jìn)行系統(tǒng)檢測,一般采用的檢測方式有符號化檢驗和模型自動化檢驗兩種。符號化檢驗的主要內(nèi)容是,將模型轉(zhuǎn)變成語法樹對數(shù)據(jù)內(nèi)容展開公式描述,通過內(nèi)容來判斷公式與內(nèi)容能否相同;模型自動化的檢驗主要是把程序轉(zhuǎn)換為等價自動機(jī),兩個自動機(jī)可對新的自動機(jī)進(jìn)行替換,通過可容納的語言形式來判定程序系統(tǒng)是否發(fā)生轉(zhuǎn)變。模型檢驗最大的問題是,由于操作系統(tǒng)復(fù)雜,軟件不可能構(gòu)建所有的建模。但是隨著檢測技術(shù)的發(fā)展,可以通過內(nèi)存建模和定理證明的方法來檢測漏洞的存在,從而使檢驗的嚴(yán)密性程度得到加強(qiáng)。靜態(tài)檢測最大的弱點就是只能檢查現(xiàn)有漏洞,對其他位置漏洞無法預(yù)測及防范,靜態(tài)檢測對現(xiàn)有漏洞的覆蓋也無法全面、有效,此外成本巨大也是其調(diào)高檢測質(zhì)量面臨最大的掣肘。
2.2 動態(tài)檢測技術(shù)
動態(tài)分析是指針對計算機(jī)安全漏洞的動態(tài)檢測。目前的動態(tài)檢測主要技術(shù)有:內(nèi)存映射、非執(zhí)行棧、安全共享庫等。
2.2.1 內(nèi)存映射
一般黑客攻擊使用的方式都是“NULL”結(jié)尾的字符串進(jìn)行對計算機(jī)的攻擊。通過代碼的內(nèi)存映射技術(shù),把原有的內(nèi)存覆蓋難度逐漸加大,使黑客無法直接進(jìn)入內(nèi)存區(qū)進(jìn)行操作。也就是說由于程序內(nèi)部的代碼頁存在內(nèi)存映射的情況,使黑客無法猜測地址進(jìn)行頁面攻擊。
2.2.2 非執(zhí)行棧
如果把棧的代碼形式改變成無法執(zhí)行的代碼即非執(zhí)行棧,可以有效預(yù)防程序攻擊。原因在于系統(tǒng)的棧本身包含內(nèi)部和數(shù)組的變量,執(zhí)行方面存在問題,所以攻擊者通過亂入惡意代碼并執(zhí)行代碼,就可以攻擊內(nèi)部軟件。
2.2.3 安全共享庫
共享庫的不安全對軟件安全的漏洞是顯而易見的。安全共享庫的主要內(nèi)容是將有效預(yù)防軟件系統(tǒng)受到人為攻擊,主要方式是采取程序運行時對不安全函數(shù)進(jìn)行檢測與攔截。
3 安全漏洞的檢測應(yīng)用
3.1 預(yù)防競爭性漏洞
針對競爭性漏洞,可采取把相關(guān)編碼原子化的方式操作。原子化最為最小的編碼,程序運行不會受到任何干擾。通過原子化操作將程序鎖定,對文件系統(tǒng)名稱間接調(diào)用,來描述所用文件的名稱。
3.2 預(yù)防隨機(jī)性漏洞
針對隨機(jī)性漏洞,運用一套運行正常、良好的設(shè)備。將設(shè)備作為隨機(jī)數(shù)的發(fā)生器,通過設(shè)備自身存在的密碼算法,來保障設(shè)備自身的安全。在遭到黑客攻擊的情況下,黑客就算掌握了軟件的所有算法細(xì)節(jié),也無法查詢到對應(yīng)的數(shù)據(jù)流。
3.3 預(yù)防緩沖區(qū)漏洞
針對緩沖區(qū)漏洞,預(yù)防時可以檢查軟件系統(tǒng)內(nèi)部存在的危險函數(shù),同時采用升級更新或者安裝等手段用更加安全的版本來取代存在問題的版本。
4 結(jié)語
綜上所述,計算機(jī)軟件的安全性在日常生活中十分重要,由于軟件的安全漏洞的問題導(dǎo)致計算機(jī)被攻擊的情況時有發(fā)生。通過對安全漏洞檢測技術(shù)的分析,來認(rèn)識軟件安全漏洞處理的重要性。避免帶來重大的經(jīng)濟(jì)損失。同樣,相關(guān)技術(shù)人員在研發(fā)上,不斷加強(qiáng)計算機(jī)軟件的安全漏洞檢測技術(shù),來保障計算機(jī)能安全穩(wěn)定的運行。
參考文獻(xiàn)
[1]周亮.安全漏洞檢測技術(shù)在軟件工程中的應(yīng)用[J].網(wǎng)絡(luò)安全技術(shù)與應(yīng)用,2017(02):56-57.
[2]高妍.計算機(jī)軟件安全漏洞檢測技術(shù)與應(yīng)用[J].計算機(jī)光盤軟件與應(yīng)用,2014(04):172-173.
[3]李舟軍,張俊賢,廖湘科,等.軟件安全漏洞檢測技術(shù)[J].計算機(jī)學(xué)報,2015(04):717-732.
作者單位
中國海洋石油總公司 北京市 100010