摘 要:隨著計(jì)算機(jī)信息技術(shù)的不斷發(fā)展,各類軟件已被人們廣泛應(yīng)用到社會(huì)生活、生產(chǎn)的各個(gè)領(lǐng)域。但是,隨著信息系統(tǒng)漏洞的不斷增多,病毒種類的千變?nèi)f化,軟件安全卻一直是人們感到棘手的難題。在信息技術(shù)發(fā)展的同時(shí),近20多年新興的機(jī)器學(xué)習(xí)也在蓬勃的發(fā)展,并且已經(jīng)在很多領(lǐng)域得到成功的應(yīng)用。本文先分析機(jī)器學(xué)習(xí)的主要策略,再分析當(dāng)今軟件安全的現(xiàn)狀,最后再探索在軟件安全中結(jié)合語義的機(jī)器學(xué)習(xí)方法。
關(guān)鍵詞:軟件安全;結(jié)合語義;機(jī)器學(xué)習(xí);方法
中圖分類號(hào):TP393.08
機(jī)器學(xué)習(xí),簡(jiǎn)單來說就是研究如何利用計(jì)算機(jī)模擬人類學(xué)習(xí)活動(dòng)的科學(xué)。學(xué)習(xí)是人類智能的主要表現(xiàn)之一,機(jī)器學(xué)習(xí)是機(jī)器具有智能的重要標(biāo)志之一,它是機(jī)器獲得知識(shí)的根本手段。機(jī)器學(xué)習(xí)同人類學(xué)習(xí)一樣,也是從未知到已知。若一臺(tái)機(jī)器在某種程序的控制下能夠解決的問題越來越多,那么這臺(tái)機(jī)器可能擁有了學(xué)習(xí)的能力。隨著科技的不斷提高,機(jī)器學(xué)習(xí)得到了很大的發(fā)展,并且在數(shù)據(jù)挖掘、模式識(shí)別、入侵檢測(cè)等領(lǐng)域有了十分廣泛的應(yīng)用。作為信息安全領(lǐng)域重要組成部分的軟件安全,隨著信息系統(tǒng)的漏洞問題愈發(fā)嚴(yán)重,再加上病毒的不斷更新?lián)Q代和復(fù)雜化,黑客攻擊方式的多樣化,其情況已不容樂觀。軟件安全關(guān)乎主機(jī)甚至整個(gè)網(wǎng)絡(luò)是否能夠正常運(yùn)行,其重要性不容小覷。為解決這一問題,提高軟件的安全性能,現(xiàn)提出了一種結(jié)合語義的機(jī)器學(xué)習(xí)方法。
1 機(jī)器學(xué)習(xí)的主要策略
機(jī)器學(xué)習(xí)經(jīng)過了一個(gè)很漫長(zhǎng)的發(fā)展時(shí)期,其主要經(jīng)過了“沒有知識(shí)”學(xué)習(xí)的熱烈時(shí)期,符號(hào)學(xué)習(xí)的冷靜時(shí)期,概念學(xué)習(xí)的復(fù)興時(shí)期以及從20世紀(jì)80年代至今的機(jī)器學(xué)習(xí)新階段的蓬勃發(fā)展時(shí)期。機(jī)器學(xué)習(xí)的新階段不再只是存在理論上或是實(shí)驗(yàn)室中,而是被真正應(yīng)用到實(shí)際生活中來?,F(xiàn)在,機(jī)器學(xué)習(xí)的學(xué)習(xí)策略有很多種,但根據(jù)機(jī)器學(xué)習(xí)中使用推理的多少一般被分為五類,即機(jī)械學(xué)習(xí)、示教學(xué)習(xí)、演繹學(xué)習(xí)、歸納學(xué)習(xí)以及類比學(xué)習(xí)。
1.1 機(jī)械學(xué)習(xí)。機(jī)器學(xué)習(xí)就是指機(jī)器學(xué)習(xí)時(shí)不需要做任何的推理或者是對(duì)知識(shí)進(jìn)行轉(zhuǎn)換,而是直接吸取周圍環(huán)境所提供的信息,將信息簡(jiǎn)單的存儲(chǔ)起來即可。這是一種最基本的學(xué)習(xí)策略。例如,賽謬爾的跳棋程序和西蒙的LT系統(tǒng)都是屬于機(jī)械學(xué)習(xí)的范疇 。機(jī)器學(xué)習(xí)時(shí)只需要按照軟件事先編寫好的程序來學(xué)習(xí),對(duì)輸入的信息不作任何的推理。但是這種學(xué)習(xí)策略只適合在環(huán)境穩(wěn)定和輸入輸出模式固定的系統(tǒng)中,對(duì)環(huán)境的要求比較苛刻。
1.2 示教學(xué)習(xí)。示教學(xué)習(xí)又被稱之為傳授學(xué)習(xí)或指導(dǎo)式學(xué)習(xí),這種學(xué)習(xí)策略除了環(huán)境要做大量的工作外,還必須要求機(jī)器學(xué)習(xí)有一定程度的推理能力。示教學(xué)習(xí)的學(xué)習(xí)過程大致是,首先向指導(dǎo)者提出建議方面的請(qǐng)求,然后再接受建議的同時(shí)還要將其轉(zhuǎn)化為內(nèi)部的表現(xiàn)形式,再將其轉(zhuǎn)化為具體的知識(shí)并將所得的新知識(shí)歸并到知識(shí)庫中,最后還要采取方法對(duì)新知識(shí)進(jìn)行評(píng)價(jià)、檢驗(yàn)。現(xiàn)在,不少專家系統(tǒng)在建立知識(shí)庫時(shí)使用這種學(xué)習(xí)策略去獲取新知識(shí)。示教學(xué)習(xí)在實(shí)際應(yīng)用中,一個(gè)比較典型的例子是FOO程序。
1.3 演繹學(xué)習(xí)。演繹學(xué)習(xí)就是一種推理學(xué)習(xí)的策略,它是以一種有一般到個(gè)別的推理方法為基礎(chǔ)。這種學(xué)習(xí)策略的核心就是三段論,例如,樹到秋天葉子都會(huì)落光;松樹是一種樹;松樹到秋天葉子會(huì)落光。對(duì)給出的知識(shí)進(jìn)行演繹推理,就可能會(huì)得出一個(gè)新的結(jié)論,再將正確的、有價(jià)值的結(jié)論存儲(chǔ)起來即可。而將演繹推理的過程逆過來就是歸納推理。
1.4 歸納學(xué)習(xí)。歸納學(xué)習(xí)是指由環(huán)境提供某一概念的實(shí)例或者是反例,讓機(jī)器通過歸納而推理出該概念。這種學(xué)習(xí)策略的推理量大大超過了示教學(xué)習(xí)和演繹學(xué)習(xí)的推理量。這種學(xué)習(xí)策略又被分為兩種,一種是示例學(xué)習(xí),即給機(jī)器學(xué)習(xí)系統(tǒng)提供示例,讓其通過歸納而得出這個(gè)概念的一般描述;另一種是觀察學(xué)習(xí),與示例學(xué)習(xí)相反,它是學(xué)習(xí)系統(tǒng)通過對(duì)環(huán)境的觀察來進(jìn)行學(xué)習(xí)。目前,歸納學(xué)習(xí)已發(fā)展成為一種比較成熟的學(xué)習(xí)策略,它已被廣泛應(yīng)用到人工智能的領(lǐng)域之中。
1.5 類比學(xué)習(xí)。類比學(xué)習(xí)策略的基礎(chǔ)是類比推理,就是利用事物的相似性來學(xué)習(xí)新知識(shí)。其學(xué)習(xí)過程主要是:首先搜索和它相似的已經(jīng)存在的事物;搜索出來后再判斷其相似程度是否能夠達(dá)到匹配的標(biāo)準(zhǔn);然后再將與其類似的已經(jīng)存在的事物進(jìn)行適當(dāng)?shù)淖儞Q或調(diào)整,以此來得出新事物;最后再將其并入到知識(shí)庫中。
2 當(dāng)今軟件安全的現(xiàn)狀
當(dāng)今軟件的安全受到很大的威脅:網(wǎng)絡(luò)仿冒事件和網(wǎng)頁惡意代碼事件在逐年成倍增長(zhǎng),大量網(wǎng)站被黑客入侵、被植入木馬攻擊程序,信息系統(tǒng)安全漏洞越來越大……這些都使得軟件安全受到了嚴(yán)重的威脅,大大威脅到軟件在各個(gè)領(lǐng)域的正常運(yùn)行。要改變現(xiàn)在的這種狀況,提高軟件安全度就必須采取行之有效的方法進(jìn)行解決。這樣做,才可使軟件更好得為人們提供安全的服務(wù)。
3 在軟件安全中結(jié)合語義的機(jī)器學(xué)習(xí)方法
在軟件安全中結(jié)合語義的機(jī)器學(xué)習(xí)方法就是融合語義來提升整個(gè)軟件系統(tǒng)的多維特性,以此來迷惑惡意代碼。這是一種檢測(cè)算法,可以檢測(cè)被惡意代碼或木馬篡改的惡意文件。這種檢測(cè)方法對(duì)迷惑惡意代碼的識(shí)別率比較高,且檢測(cè)的準(zhǔn)確度也比較高。這種學(xué)習(xí)方法是一種使用語言的操作語義來確定系統(tǒng)程序的執(zhí)行行為,操作語義也可以被當(dāng)作是一種語言的解釋器,其每條規(guī)則的讀取是從左到右,從上倒下。同時(shí),還需要將每條給定的語句匹配到合適的規(guī)則上。其語義解釋上的語言模型被分為以下兩種:
3.1 面向用戶的語言模型。這種語言模型是在根據(jù)用戶的特點(diǎn)而提出來的,它必須適合用戶的記憶特點(diǎn),其分為兩個(gè)部分:一部分是通過大規(guī)模訓(xùn)練的通用語言模型,其參數(shù)沒有變化;另一部分則是通過在線學(xué)習(xí)的用戶模型,其參數(shù)在不斷的進(jìn)行變化。但是在實(shí)際應(yīng)用中時(shí),要同時(shí)將這兩種模型應(yīng)用起來。若是以漢語為例,面向用戶的語言模型的機(jī)器學(xué)習(xí)過程大致是:先將拼音或語句通過鍵盤輸入到學(xué)習(xí)系統(tǒng)中,然后通用語言模型和用戶語言模型共同對(duì)語言進(jìn)行解碼,再將其進(jìn)行轉(zhuǎn)換得到的結(jié)果輸入到軟件之中,若結(jié)果出現(xiàn)錯(cuò)誤,還需要用戶進(jìn)行修正,將正確結(jié)果輸入到軟件之中,最后再由機(jī)器學(xué)習(xí)或用戶編輯反饋到通用語言模型和用戶語言模型之中。
通用語言模型和用戶語言模型的結(jié)合方式有很多種,其中最典型的方式是用線性插值方式將通用語料和用戶輸入信息構(gòu)建兩個(gè)獨(dú)立的語言模型結(jié)合起來。這種模型方式嚴(yán)格遵守概率計(jì)算的歸一化條件。
3.2 Bi-gram語言模型的機(jī)器學(xué)習(xí)算法。這種語言模型就是根據(jù)用戶在線輸入的數(shù)據(jù),對(duì)用戶模型的錯(cuò)誤參數(shù)進(jìn)行修正。例如,若是將給定的拼音串通過初次的轉(zhuǎn)換成漢語句子當(dāng)作A,若是初次轉(zhuǎn)換的漢語句子出現(xiàn)錯(cuò)誤并將其修正后的句子當(dāng)作a;然后在機(jī)器學(xué)習(xí)中將A和a進(jìn)行對(duì)比來得出構(gòu)成正確語句的詞。在進(jìn)行這種語言模型學(xué)習(xí)時(shí),機(jī)器學(xué)習(xí)既要最大限度地糾正語言模型帶來的轉(zhuǎn)換錯(cuò)誤,還要避免過度,否則會(huì)使語言模型出現(xiàn)不平衡的現(xiàn)象。
4 結(jié)束語
總而言之,結(jié)合語義的機(jī)器學(xué)習(xí)方法可以提高軟件的安全性能。在軟件安全中將語義的機(jī)器學(xué)習(xí)方法融合在其中,可以提升多維特征來迷惑惡意代碼;也可以多態(tài)蠕蟲簽名提取算法來檢測(cè)多態(tài)蠕蟲。這些都有利于提高軟件的安全性能,促進(jìn)軟件和網(wǎng)絡(luò)的健康、穩(wěn)定、長(zhǎng)期的發(fā)展,使之能更好的為我們提供更好的服務(wù)。而現(xiàn)在,在軟件安全中結(jié)合語義的機(jī)器學(xué)習(xí)方法還需要我們進(jìn)行進(jìn)一步的探索和研究。
參考文獻(xiàn):
[1]查正軍.基于機(jī)器學(xué)習(xí)方法的視覺信息標(biāo)注研究[D].中國科學(xué)技術(shù)大學(xué),2009.
[2]孔德光.結(jié)合語義的統(tǒng)計(jì)機(jī)器學(xué)習(xí)方法在代碼安全中應(yīng)用研究[D].中國科學(xué)技術(shù)大學(xué),2010.
[3]張文雯.基于狀態(tài)圖和語義分析的軟件行為建模與檢測(cè)研究[D].北京工業(yè)大學(xué),2013.
[4]樊小超.基于機(jī)器學(xué)習(xí)的中文文本主題分類及情感分類研究[D].南京理工大學(xué),2014.
[5]趙沁平,魏華,王軍玲.機(jī)器學(xué)習(xí)技術(shù)與機(jī)器學(xué)習(xí)系統(tǒng)[J].計(jì)算機(jī)科學(xué),2010.
作者單位:中國礦業(yè)大學(xué),江蘇徐州 221116