本發(fā)明實施例涉及計算機技術(shù)領(lǐng)域,具體涉及一種軟件隱私泄露行為的定量分析方法及裝置。
背景技術(shù):
針對軟件隱私泄露問題,近年來的工作主要依據(jù)兩種思路:一種基于模糊測試的方法,對于軟件輸入輸出數(shù)據(jù)進(jìn)行比對分析;另一種基于惡意軟件行為分析技術(shù),對于軟件的內(nèi)部功能進(jìn)行分析。
基于模糊測試方法是比對輸入輸出數(shù)據(jù)來驗證軟件是否泄漏隱私的方法。這種方法將軟件的內(nèi)部工作過程視為一個黑盒,不去了解其內(nèi)部結(jié)構(gòu)和通信協(xié)議,僅關(guān)注軟件的輸入數(shù)據(jù)和向外部網(wǎng)絡(luò)輸出的數(shù)據(jù)之間的關(guān)系。該方法通過構(gòu)造特定的隱私數(shù)據(jù),觀察其輸出數(shù)據(jù)是否含有輸入的隱私數(shù)據(jù),從而發(fā)現(xiàn)軟件是否含有隱私泄露行為。雖然基于輸出輸出數(shù)據(jù)比對的黑盒模糊測試方法能夠快速準(zhǔn)確的分析出某些特定格式的隱私數(shù)據(jù)泄露行為,但是這類方法也存在一些固有的問題:由于無法獲知目標(biāo)軟件的內(nèi)部實現(xiàn)細(xì)節(jié)和源碼,此類方法很難收集采用了加密連接的軟件所傳輸?shù)拿魑男畔?,這阻礙了對于軟件輸出數(shù)據(jù)內(nèi)容的鑒別,使得輸入輸出數(shù)據(jù)的比對也變得很困難;網(wǎng)絡(luò)數(shù)據(jù)流中和多條數(shù)據(jù)流之間的消息重組,會導(dǎo)致軟件輸出數(shù)據(jù)和輸入數(shù)據(jù)的匹配誤報率大大提升;經(jīng)過針對性設(shè)計的軟件可以改變隱私數(shù)據(jù)在網(wǎng)絡(luò)輸出數(shù)據(jù)流中序列結(jié)構(gòu),使之具有隨機化的長度和順序,將真實的隱私數(shù)據(jù)隱藏于噪音數(shù)據(jù)之中,會導(dǎo)致軟件的檢測率大幅下降。
惡意軟件行為建模與分析是近年來備受關(guān)注的重要研究問題,已有不少的成熟的理論模型和分析方法,但是不同的方法都具有各自適 用性和局限性,具體到軟件隱私泄露行為分析這個新的熱點問題上還存在一些尚未解決的問題。
在實現(xiàn)本發(fā)明實施例的過程中,發(fā)明人發(fā)現(xiàn)現(xiàn)有的軟件隱私泄露行為的分析方法未針對目標(biāo)軟件的具體特性進(jìn)行定量分析,從而導(dǎo)致軟件隱私泄露行為分析不夠嚴(yán)謹(jǐn)。
技術(shù)實現(xiàn)要素:
由于現(xiàn)有的軟件隱私泄露行為的分析方法未針對目標(biāo)軟件的具體特性進(jìn)行定量分析,而導(dǎo)致軟件隱私泄露行為分析不夠嚴(yán)謹(jǐn)?shù)膯栴},本發(fā)明提出一種軟件隱私泄露行為的定量分析方法及裝置。
第一方面,本發(fā)明實施例提出一種軟件隱私泄露行為的定量分析方法,包括:
根據(jù)目標(biāo)軟件的屬性值,構(gòu)建軟件隱私泄露行為模型;
計算所述軟件隱私泄露行為模型中每條行為路徑發(fā)生隱私泄露的概率,并根據(jù)所述每條行為路徑發(fā)生隱私泄露的概率,計算得到所述目標(biāo)軟件隱私泄露的可能性;
若判斷獲知所述隱私泄露可能性大于預(yù)設(shè)值,則根據(jù)每條行為路徑發(fā)生隱私泄露的概率,計算得到每條行為路徑發(fā)生隱私泄露的嚴(yán)重性,并根據(jù)所述每條行為路徑發(fā)生隱私泄露的嚴(yán)重性,計算得到所述目標(biāo)軟件隱私泄露的嚴(yán)重性。
優(yōu)選地,還包括:
計算所述軟件隱私泄露行為模型中的部分完成泄露路徑的數(shù)量,所述部分完成泄露路徑為所述軟件隱私泄露行為模型中包括源位置或判決位置的行為路徑;
根據(jù)所述數(shù)量,計算所述目標(biāo)軟件隱私泄露的操縱性。
優(yōu)選地,還包括:
根據(jù)目標(biāo)行為路徑,計算所述目標(biāo)軟件隱私泄露的隱秘性,所述目標(biāo)行為路徑為所述軟件隱私泄露行為模型中至少包括一個源位置的行為路徑。
優(yōu)選地,還包括:
根據(jù)每個目標(biāo)軟件隱私泄露的可能性、嚴(yán)重性、操縱性和隱秘性,建立候選指標(biāo)矩陣;
根據(jù)所述候選指標(biāo)矩陣,計算得到每個目標(biāo)軟件隱私泄露的整體泄露度。
優(yōu)選地,所述根據(jù)所述候選指標(biāo)矩陣,計算得到每個目標(biāo)軟件隱私泄露的整體泄露度,進(jìn)一步包括:
根據(jù)所述候選指標(biāo)矩陣,計算得到所述候選指標(biāo)矩陣的相關(guān)系數(shù)矩陣;
計算所述相關(guān)系數(shù)矩陣的特征值和特征向量,并根據(jù)所述特征值和特征向量,計算得到候選主成分;
根據(jù)所述候選主成分,計算得到每個目標(biāo)軟件隱私泄露的整體泄露度。
第二方面,本發(fā)明實施例還提出一種軟件隱私泄露行為的定量分析裝置,包括:
模型構(gòu)建模塊,用于根據(jù)目標(biāo)軟件的屬性值,構(gòu)建軟件隱私泄露行為模型;
可能性計算模塊,用于計算所述軟件隱私泄露行為模型中每條行為路徑發(fā)生隱私泄露的概率,并根據(jù)所述每條行為路徑發(fā)生隱私泄露的概率,計算得到所述目標(biāo)軟件隱私泄露的可能性;
嚴(yán)重性計算模塊,用于若判斷獲知所述隱私泄露可能性大于預(yù)設(shè)值,則根據(jù)每條行為路徑發(fā)生隱私泄露的概率,計算得到每條行為路徑發(fā)生隱私泄露的嚴(yán)重性,并根據(jù)所述每條行為路徑發(fā)生隱私泄露的嚴(yán)重性,計算得到所述目標(biāo)軟件隱私泄露的嚴(yán)重性。
優(yōu)選地,還包括:
操縱性計算模塊,用于計算所述軟件隱私泄露行為模型中的部分完成泄露路徑的數(shù)量,所述部分完成泄露路徑為所述軟件隱私泄露行為模型中包括源位置或判決位置的行為路徑;并根據(jù)所述數(shù)量,計算所述目標(biāo)軟件隱私泄露的操縱性。
優(yōu)選地,還包括:
隱秘性計算模塊,用于根據(jù)目標(biāo)行為路徑,計算所述目標(biāo)軟件隱私泄露的隱秘性,所述目標(biāo)行為路徑為所述軟件隱私泄露行為模型中至少包括一個源位置的行為路徑。
優(yōu)選地,還包括:
矩陣建立模塊,用于根據(jù)每個目標(biāo)軟件隱私泄露的可能性、嚴(yán)重性、操縱性和隱秘性,建立候選指標(biāo)矩陣;
整體泄露度計算模塊,用于根據(jù)所述候選指標(biāo)矩陣,計算得到每個目標(biāo)軟件隱私泄露的整體泄露度。
優(yōu)選地,所述整體泄露度計算模塊進(jìn)一步包括:
相關(guān)系數(shù)矩陣計算單元,用于根據(jù)所述候選指標(biāo)矩陣,計算得到所述候選指標(biāo)矩陣的相關(guān)系數(shù)矩陣;
主成分計算單元,用于計算所述相關(guān)系數(shù)矩陣的特征值和特征向量,并根據(jù)所述特征值和特征向量,計算得到候選主成分;
整體泄露度計算單元,用于根據(jù)所述候選主成分,計算得到每個目標(biāo)軟件隱私泄露的整體泄露度。
由上述技術(shù)方案可知,本發(fā)明實施例通過目標(biāo)軟件的屬性值構(gòu)建軟件隱私泄露行為模型,并進(jìn)一步計算目標(biāo)軟件隱私泄露的可能性和嚴(yán)重性,使得軟件隱私泄露行為的分析結(jié)合了嚴(yán)謹(jǐn)?shù)臄?shù)學(xué)運算,其定量分析結(jié)果更為嚴(yán)謹(jǐn)和準(zhǔn)確。
附圖說明
為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些圖獲得其他的附圖。
圖1為本發(fā)明一實施例提供的一種軟件隱私泄露行為的定量分析方法的流程示意圖;
圖2為本發(fā)明一實施例提供的一種軟件隱私泄露行為的定量分析裝置的結(jié)構(gòu)示意圖。
具體實施方式
下面結(jié)合附圖,對發(fā)明的具體實施方式作進(jìn)一步描述。以下實施例僅用于更加清楚地說明本發(fā)明的技術(shù)方案,而不能以此來限制本發(fā)明的保護(hù)范圍。
圖1示出了本發(fā)明一實施例提供的一種軟件隱私泄露行為的定量分析方法的流程示意圖,包括:
S101、根據(jù)目標(biāo)軟件的屬性值,構(gòu)建軟件隱私泄露行為模型;
其中,隱私泄露行為可以被定義為如下的四元組:
PL(pctg,pcont,pproc,pdest)
pctg,pcont,pproc pdest這四個屬性值和單個隱私的屬性值對應(yīng),PL中的四個值是對于整個目標(biāo)軟件而言的,它刻畫了該軟件的整體隱私泄露行為。
這個四元組的計算是依據(jù)兩方面的數(shù)據(jù),一方面是全局PPN本身的靜態(tài)結(jié)構(gòu),包括模塊的組合方式、位置、變遷和弧上的變量設(shè)置;另一方面是模型運行以后,代表隱私泄露實例的令牌的最終屬性值。
S102、計算所述軟件隱私泄露行為模型中每條行為路徑發(fā)生隱私泄露的概率,并根據(jù)所述每條行為路徑發(fā)生隱私泄露的概率,計算得到所述目標(biāo)軟件隱私泄露的可能性;
其中,可能性是下述定量指標(biāo)的計算基礎(chǔ),它是對于軟件中是否存在泄漏行為的概率的衡量,映射到行為路徑上,就是行為路徑實際構(gòu)成隱私泄露路徑的概率。假設(shè)σpath1是路徑集BPS中的一條行為路徑,它包含n1個變遷和n1+1個位置,這些變遷的權(quán)重是wti,1≤i≤n1,那么該路徑的可能性如下計算:
如果整個BPS中共有N條行為路徑,那么所有路徑的平均可能性就是該行為路徑集對應(yīng)的軟件行為的隱私泄露可能性,計算公式如下:
在上式中,每一條路徑的變遷權(quán)重越高,它是泄露路徑的概率越高,這樣的高概率泄露路徑在路徑集中含有的越多,則整個行為路徑集的泄露可能性越大。這樣的規(guī)則構(gòu)成了計算其它指標(biāo)的基礎(chǔ)。
S103、若判斷獲知所述隱私泄露可能性大于預(yù)設(shè)值,則根據(jù)每條行為路徑發(fā)生隱私泄露的概率,計算得到每條行為路徑發(fā)生隱私泄露的嚴(yán)重性,并根據(jù)所述每條行為路徑發(fā)生隱私泄露的嚴(yán)重性,計算得到所述目標(biāo)軟件隱私泄露的嚴(yán)重性。
其中,在確定了隱私泄露行為發(fā)生的可能性以后,尤其是可能性較高的時候,需要對于該行為可能造成的后續(xù)影響進(jìn)行評估,也就是嚴(yán)重性這個指標(biāo)的意義所在。計算嚴(yán)重性的時候,需要用到模塊的嚴(yán)重性權(quán)重,以及行為路徑的模塊內(nèi)子路徑。首先,需要計算每一條行為路徑單獨的嚴(yán)重性指標(biāo),假設(shè)該路徑經(jīng)過m個PPN模塊,那么其路徑嚴(yán)重性計算如下:
然后,將所有的完整隱私路徑的嚴(yán)重性基于其路徑發(fā)生可能性進(jìn)行平均,我們就可以得到整個軟件行為的嚴(yán)重性:
其中NL是BPS中所有完整泄露路徑的總數(shù)。
嚴(yán)重性是衡量泄露行為的一項綜合和直觀的指標(biāo),更高的嚴(yán)重性意味著該行為可能造成更多的實際損失。這本來是很難量化的指標(biāo),因為對于嚴(yán)重性的測量涉及很多的因素,比如泄露數(shù)據(jù)的類型、實際內(nèi)容和泄露后的去向等等。而且在不同的場景下,用戶對于損失的定義也是不同的,比如,在商業(yè)服務(wù)器上,系統(tǒng)信息型數(shù)據(jù)的泄露會讓攻擊者有針對性的尋找服務(wù)器的漏洞,這種情況下系統(tǒng)信息型隱私數(shù)據(jù)的泄露嚴(yán)重性就高于其它的類別;而在個人電腦上,動態(tài)生成的隱私數(shù)據(jù)諸如賬戶密碼等會直接影響用戶的經(jīng)濟(jì)利益,此類別的泄露嚴(yán)重性就更大。因此,在具體計算的時候必須根據(jù)實際情況來定義各種類別的隱私數(shù)據(jù)的相關(guān)模塊的權(quán)重值。
所述軟件隱私泄露行為模型又稱為隱私Petri網(wǎng)(Privacy Petri Net,PPN)。Petri網(wǎng)是對離散并行系統(tǒng)的數(shù)學(xué)表示,是一種適合于描述異步并發(fā)現(xiàn)象的系統(tǒng)模型,它既有嚴(yán)格的數(shù)學(xué)定義,又有直觀的圖形表示,既有豐富的系統(tǒng)描述手段和系統(tǒng)行為分析技術(shù),又為計算機科學(xué)提供堅實的概念基礎(chǔ),已有理論證明,Petri網(wǎng)的模擬能力與圖靈機(Turing Machine)等價,研究領(lǐng)域趨向認(rèn)為Petri網(wǎng)是所有流程定義語言之母。PPN是一種高級Petri網(wǎng)模型,結(jié)合并擴(kuò)展了已有的一些高級Petri網(wǎng)模型的特點,例如著色Petri網(wǎng),隨機Petri網(wǎng)等,加入了建模隱私泄露行為的一些特有模型元素、相關(guān)算法和判定規(guī)則。
PPN有三個方面的主要特點:首先,PPN具有形式化的定義,為精準(zhǔn)的描述目標(biāo)軟件的行為提供的數(shù)學(xué)基礎(chǔ),是PPN賴以定義各種 行為屬性的基礎(chǔ);其次,PPN具有簡潔精煉的圖形化表示原語,能夠提供直觀易懂的軟件行為表達(dá)方式,并且基于這些圖形原語,定義了特殊的圖形結(jié)構(gòu),依據(jù)這種結(jié)構(gòu)可以分析、判定和評估軟件行為的各種特性與相關(guān)指標(biāo);最后,PPN還采用了高度模塊化的建模方法,通過擴(kuò)展和組合已有的模塊,可以快速的構(gòu)建新的全局模型??傊?,利用PPN可以構(gòu)造出具有各種類型的具有隱私泄露行為的模型,為后續(xù)的分析提供模型基礎(chǔ)。
本實施例通過目標(biāo)軟件的屬性值構(gòu)建軟件隱私泄露行為模型,并進(jìn)一步計算目標(biāo)軟件隱私泄露的可能性和嚴(yán)重性,使得軟件隱私泄露行為的分析結(jié)合了嚴(yán)謹(jǐn)?shù)臄?shù)學(xué)運算,其定量分析結(jié)果更為嚴(yán)謹(jǐn)和準(zhǔn)確。
進(jìn)一步地,在上述方法實施例的基礎(chǔ)上,所述方法還包括:
S104、計算所述軟件隱私泄露行為模型中的部分完成泄露路徑的數(shù)量,所述部分完成泄露路徑為所述軟件隱私泄露行為模型中包括源位置或判決位置的行為路徑;并根據(jù)所述數(shù)量,計算所述目標(biāo)軟件隱私泄露的操縱性。
其中,操縱性是評估目標(biāo)軟件被其它軟件操縱或者和其它軟件協(xié)作完成隱私泄露行為的指標(biāo)。某些軟件只完成了部分的隱私泄露行為,其行為路徑的也包含了很多部分完成的泄露路徑,因此這樣的路徑集平均可能性會比較低。但是,這樣軟件并不能簡單的被認(rèn)為沒有問題,他們可能成為其它的軟件的工具和組件?,F(xiàn)階段出現(xiàn)了不少的多進(jìn)程協(xié)作型的惡意軟件,其工作模式就是利用這些完成部分功能的軟件。比如,某軟件把自己的功能分解成若干個部分,然后為每個部分單獨創(chuàng)建進(jìn)程,這些進(jìn)行依次工作,將隱私數(shù)據(jù)當(dāng)作“接力棒”傳遞出去;還有一種情況,某軟件充當(dāng)監(jiān)工的角色,將工作分配給若干的進(jìn)程完成,自己在幕后只負(fù)責(zé)指揮和控制。因此,操縱性的計算可以依據(jù)其完成的部分泄露行為的數(shù)量來進(jìn)行,映射到行為路徑上就是 部分完成的泄露路徑。我們將至少包含了一個源位置或者一個判決位置的路徑都定義為部分完成泄露路徑。因此,操縱性可以如下計算:
其中NPL是部分完成的泄露路徑的總數(shù)。
操縱性彌補了嚴(yán)重性對于泄露行為評估的不足,適用于某些較為復(fù)雜的泄露行為。我們對于操縱性的計算方式雖然將實際情況進(jìn)行了簡化,但是仍然保留了部分完成這個最為重要概念。盡管高操縱性并不表示該軟件會直接對隱私數(shù)據(jù)造成泄露,但然后值得引起用戶的注意。
對于隱私泄露型惡意軟件,在定性分析得出結(jié)果以后,用戶只要直接的查殺就能夠很好的解決問題,但是,對于應(yīng)用軟件中可能存在的隱私泄露行為,無法替用戶做出決定,畢竟用戶主要是為了使用軟件的正常功能,而且對于所界定的隱私泄露行為,用戶也有自己的理解和選擇。所以有必要給出更為詳細(xì)和多方面的定量分析結(jié)果,為用戶提供參考的依據(jù)和比較的標(biāo)準(zhǔn),也為軟件隱私泄露行為給出一個客觀的評價體系。
進(jìn)一步地,在上述方法實施例的基礎(chǔ)上,所述方法還包括:
S105、根據(jù)目標(biāo)行為路徑,計算所述目標(biāo)軟件隱私泄露的隱秘性,所述目標(biāo)行為路徑為所述軟件隱私泄露行為模型中至少包括一個源位置的行為路徑。
其中,隱秘性指標(biāo)是對于上述三個指標(biāo)的補充,上述三個指標(biāo)計算的都是軟件通過行為路徑直接表現(xiàn)出來的結(jié)果,但現(xiàn)在的軟件往往采用了特殊的技術(shù)避免被監(jiān)控和分析,這些技術(shù)在惡意軟件中已經(jīng)被廣泛使用,漸漸的在應(yīng)用程序中也能看到,比如加殼,混淆,隱藏等等,這都增加了軟件隱私泄露行為的另一個指標(biāo)——隱秘性。該指標(biāo)衡量了隱私泄露軟件的生存性以及持續(xù)泄露隱私數(shù)據(jù)的能力。
增加隱秘性的技術(shù)很多也很復(fù)雜,為了統(tǒng)一的衡量這個指標(biāo),采用了和行為路徑有關(guān)的方式,將相鄰觸發(fā)的變遷之間的額外的系統(tǒng)調(diào)用數(shù)量作為計算的依據(jù)。不論是什么樣的隱秘性技術(shù),都會引入額外的操作,這些操作越復(fù)雜,引入的額外調(diào)用越多,隱秘性就越強。但是我們還是限定至少要先觸發(fā)后續(xù)為源位置的變遷,否則無法構(gòu)成泄露路徑,而且大部分的調(diào)用都將被視為隱秘性相關(guān)的調(diào)用,這樣會引起誤報。
假設(shè)BPS中共有N條包含了至少一個源位置行為路徑,行為路徑σpathi,1≤i≤N總長度為ni,1≤i≤N,其后的調(diào)用序列中無法與變遷相關(guān)的系統(tǒng)調(diào)用數(shù)量為nei,則軟件行為的隱私泄露隱秘性為:
由于隱秘技術(shù)的使用,隱秘性高的軟件的行為路徑集往往表現(xiàn)出大量的不完整路徑,但是這和計算操縱性時涉及的不完整路徑是有本質(zhì)區(qū)別的,其真實的行為很可能缺失包含完整的泄露路徑,因此高隱秘性的軟件更需要額外的重視和進(jìn)一步的分析,否則很可能長時間的駐留于用戶主機中造成更大的危害。
進(jìn)一步地,在上述方法實施例的基礎(chǔ)上,所述方法還包括:
S106、根據(jù)每個目標(biāo)軟件隱私泄露的可能性、嚴(yán)重性、操縱性和隱秘性,建立候選指標(biāo)矩陣;
S107、根據(jù)所述候選指標(biāo)矩陣,計算得到每個目標(biāo)軟件隱私泄露的整體泄露度。
本實施例提供的軟件隱私泄露行為的定量分析方法的評價指標(biāo)主要包括四個方面:可能性(possibility),嚴(yán)重性(severity),操縱性(manipulability)和隱秘性(crypticity)??赡苄允瞧渌齻€指標(biāo)的基礎(chǔ),表示軟件包含隱私泄露行為的概率。對于高可能性的軟件,我們會進(jìn)一步關(guān)注其造成嚴(yán)重后果的能力,這個性質(zhì)我們稱為嚴(yán)重 性。對于低可能性的軟件,我們會考慮其是否具有和其他軟件協(xié)作完成泄露行為,或者被其他軟件利用實施泄露行為,這種性質(zhì)我們稱為操縱性。此外,還有一個值得關(guān)注的屬性,就是軟件的實際行為和表面上被追蹤和觀察到的不同,惡意的行為被隱藏在正常行為下面,這種性質(zhì)我們稱為隱秘性。通過這些不同側(cè)面的性質(zhì),可以很好的刻畫出軟件行為的立體觀感,為用戶理解我們的分析結(jié)果和后續(xù)操作提供依據(jù)。
最后還有給出一個整體的指標(biāo),稱之為整體泄露度(OD,Overall Degree),這個指標(biāo)是通過特定算法消除了四個指標(biāo)之間的重復(fù)關(guān)聯(lián)性而得出的,它作為一個綜合的指標(biāo),能夠為不同軟件之間隱私泄露行為提供直接比較的參數(shù),也能夠給予用戶對于該軟件隱私泄露行為總體程度的直觀理解。
行為路徑作為PPN主要的輸出結(jié)果,行為路徑構(gòu)成的集合BPS代表了軟件的行為。在定量分析中,我們同樣使用行為路徑作為主要的依據(jù),不過我們需要額外添加一些重要的參數(shù)和新的處理方法。
設(shè)σpath1=inst1.proc=p1t1p2…pn-1tn-1pn是一條行為路徑,我們首先給該路徑上的每一個變遷分配權(quán)重w,該權(quán)重是根據(jù)此變遷在當(dāng)前路徑中的重要性設(shè)定的,變遷ti的權(quán)重記作:
wti∈(0,1),1≤i≤n-1
該權(quán)重的初始值是來自于對于已知隱私泄露型惡意軟件的統(tǒng)計結(jié)果,越高的權(quán)重值表示此變遷在已知惡意軟件的泄露路徑中出現(xiàn)和被成功觸發(fā)的概率越大。這個值主要用于計算泄露行為的可能性。
然后,我們將整個行為路徑依據(jù)其覆蓋的模塊劃分為若干個部分。假設(shè)行為路徑σpath1經(jīng)過m個模塊,覆蓋每個模塊中的變遷數(shù)量為ki(1≤i≤m),那么該路徑可以表示為模塊間的子路徑σi(1≤i≤m)的連接,如下所示:
σpath1=σ1σ2…σm,其中σi=p1t1p2t2…pkitkipki+1
接下來,再次引入一個權(quán)重,該權(quán)重是分配給每一個子路徑的,記作:
wσi,1≤i≤m
該權(quán)重表示的是該子路徑所在的模塊相關(guān)的泄露行為,表示該行為可能造成的后續(xù)影響的嚴(yán)重程度。我們賦予各個模塊的該參數(shù)主要是體現(xiàn)他們的嚴(yán)重性的差異和順序,假設(shè)現(xiàn)在共有k個預(yù)定義的PPN模塊,我們先按照其嚴(yán)重程度進(jìn)行排序,然后程度最輕的設(shè)置為1,最重的設(shè)置為k,這個值主要是用來計算嚴(yán)重性和操作性。
上述四個指標(biāo)分別描述了隱私泄露行為的不同方面的特性,他們彼此之間也是存在著相關(guān)影響的潛在聯(lián)系的??赡苄允侵淦渌齻€指標(biāo)的核心指標(biāo),嚴(yán)重性和操縱性在行為路徑總數(shù)確定的情況下此消彼長,隱秘性對于其它三個指標(biāo)有著不確定的影響。接下來我們將深入分析這些相互關(guān)系。
可能性是評估其它指標(biāo)的基礎(chǔ)指標(biāo)。更高的可能性意味著更大的路徑行為發(fā)生概率這個因子在其它指標(biāo)的計算公式中都是作為乘子出現(xiàn)的,在數(shù)值上直接影響它們的計算結(jié)果,呈現(xiàn)較為標(biāo)準(zhǔn)的正相關(guān)關(guān)系。
可能性與其它指標(biāo)的關(guān)系所表示的實際意義是比較容易理解的。只有隱私泄露行為有更大的幾率發(fā)生,該行為在同樣的路徑嚴(yán)重性權(quán)重下,最終的后續(xù)結(jié)果的期望——整體行為性才會更高;由部分完成的泄露路徑?jīng)Q定的操縱型也類似,在泄露行為能夠發(fā)生的情況下,才能夠被其它程序操縱組合完成泄露行為;在采用同樣的隱秘技術(shù)的情況下,被隱藏的泄露路徑的發(fā)生可能性越大,隱秘的結(jié)果更具威脅,這是造成可能性和隱秘性正相關(guān)的主要原因。
嚴(yán)重性和操縱性具有類型含義和計算方法,主要的區(qū)別在于兩種所依據(jù)的行為路徑,前者是完整的泄露路徑后者是部分完成的泄露路徑,因此在其它情況相同的情況下,兩種路徑在行為路徑集中的比例 決定了兩個值的關(guān)系。通常情況下,兩個值和總和是固定值,按兩種路徑的數(shù)量此消彼長。
由于嚴(yán)重性和操縱性分別描述的是軟件直接表現(xiàn)出來的后續(xù)結(jié)果和潛在的威脅,因此,為了完整的評估隱私泄露行為,這兩個指標(biāo)是非常重要的。
隱秘性是較為特殊的指標(biāo),它描述的是未被實際追蹤到了軟件隱私泄露行為。該指標(biāo)雖然不直接從數(shù)值上影響其它指標(biāo),但是在實際分析的過程中,它的間接影響通常是比較明顯的。在其它條件基本相同的情況下,它會減少其它指標(biāo)的數(shù)值,這是因為實際的行為路徑被隱藏和掩蓋了,這些路徑相關(guān)的指標(biāo)值無法計算在內(nèi)。因此,即使軟件的其它指標(biāo)都比較低,如果隱秘性較高,該軟件存在泄漏行為的幾率也是比較大的。
更進(jìn)一步地,在上述方法實施例的基礎(chǔ)上,S108進(jìn)一步包括:
S1071、根據(jù)所述候選指標(biāo)矩陣,計算得到所述候選指標(biāo)矩陣的相關(guān)系數(shù)矩陣;
S1072、計算所述相關(guān)系數(shù)矩陣的特征值和特征向量,并根據(jù)所述特征值和特征向量,計算得到候選主成分;
S1073、根據(jù)所述候選主成分,計算得到每個目標(biāo)軟件隱私泄露的整體泄露度。
四個單項指標(biāo)給出了泄露行為在不同側(cè)面的特性,彼此之間也有著密切的關(guān)系,為了給出能夠在不同軟件之間直接比較的綜合指標(biāo),我們還需要將這四個指標(biāo)進(jìn)一步融合起來。接下來,我們將介紹對于這個問題的處理——整體泄露度(OD,overall privacy leak degree),這一衡量軟件隱私泄露行為的綜合指標(biāo)。
計算不同軟件之間可比較的整體泄露度的問題可以被抽象成為一個多屬性決策問題(Multiple Attribute Decision Making,MADM)。 多屬性決策問題是對于存在多個屬性的候選項進(jìn)行排序和選擇的問題。關(guān)于OD計算的MADM問題可以如下表示:
假設(shè)有n個候選項A1,A2,…,An,分別表示n個待分析的軟件,每個候選項有4個屬性值P,S,M,C,分別表示前文提到的4個指標(biāo)。那么我們可以得到候選項/指標(biāo)矩陣M:
該矩陣中,每行表示一種指標(biāo),每列表示一個候選項。每個元素表示第i個軟件的第j個指標(biāo)的得分mij。x1到x4是代表一行元素的變量,O1,O2,...,On是與一列元素相關(guān)的變量,表示最終的泄露度OD。
OD值的計算方法我們稱之為PLEAS算法(Privacy Leak ovErall quAntitative analysiS)。該算法是基于解決MADM較為常用的主成分分析法(principal component analysis,PCA)實現(xiàn)的。PCA方法可以有效區(qū)別出多個屬性之間的相似性和相異性,并且盡可能的減少屬性合成后的信息損失,是一種適用于解決我們面臨的隱私泄露度計算問題的有效方法。
PLEAS算法的主要流程如下:
(1)將所有待分析軟件作為候選項,它們的的四個分項指標(biāo)作為元素按照上式中的結(jié)構(gòu)組成矩陣M。然后將所有數(shù)據(jù)歸一化,得到歸一化的元素值和變量值具體計算方法如下:
其中
(2)計算矩陣M的相關(guān)系數(shù)矩陣R=rij(4×4):
(3)由矩陣R的特征值和特征向量生成候選主成分。假設(shè)特征值為λ1≥λ2≥λ3≥λ4≥0,相關(guān)的特征向量為u1,u2,u3,u4,其中ui=[u1i,u2i,u3i,u4i]T,那么得到CPC如下:
(4)從候選主成分中選出需要的個數(shù)。一般來說,總數(shù)不超過原來的變量總數(shù)。選擇的標(biāo)準(zhǔn)是依據(jù)候選主成分的信息量占比bi,特征值最大的第一個主成分信息量最大,后續(xù)的依次減小,bi的計算主要依據(jù)特征值,方法如下:
(5)然后通過bi計算累計信息量占比ap:
逐漸增大p的值使ap接近1,通常超過0.9即可,這時的p個候選主成分就是我們最終需要的主成分。
(6)按照選定的主成分計算每個候選項的最終總體評分:
最后得到的Oi的值就是軟件的整體泄露度OD。經(jīng)過計算后,OD值越高的整體泄露度越大。
圖2示出了本發(fā)明一實施例提供的一種軟件隱私泄露行為的定量分析裝置的結(jié)構(gòu)示意圖,所述裝置包括:模型構(gòu)建模塊21、可能性計算模塊22和嚴(yán)重性計算模塊23,其中,
所述模型構(gòu)建模塊21用于根據(jù)目標(biāo)軟件的屬性值,構(gòu)建軟件隱私泄露行為模型;
所述可能性計算模塊22用于計算所述軟件隱私泄露行為模型中每條行為路徑發(fā)生隱私泄露的概率,并根據(jù)所述每條行為路徑發(fā)生隱私泄露的概率,計算得到所述目標(biāo)軟件隱私泄露的可能性;
所述嚴(yán)重性計算模塊23用于若判斷獲知所述隱私泄露可能性大于預(yù)設(shè)值,則根據(jù)每條行為路徑發(fā)生隱私泄露的概率,計算得到每條行為路徑發(fā)生隱私泄露的嚴(yán)重性,并根據(jù)所述每條行為路徑發(fā)生隱私泄露的嚴(yán)重性,計算得到所述目標(biāo)軟件隱私泄露的嚴(yán)重性。
具體地,所述模型構(gòu)建模塊21根據(jù)目標(biāo)軟件的屬性值,構(gòu)建軟件隱私泄露行為模型;所述可能性計算模塊22計算所述軟件隱私泄露行為模型中每條行為路徑發(fā)生隱私泄露的概率,并根據(jù)所述每條行為路徑發(fā)生隱私泄露的概率,計算得到所述目標(biāo)軟件隱私泄露的可能性;所述嚴(yán)重性計算模塊23若判斷獲知所述隱私泄露可能性大于預(yù)設(shè)值,則根據(jù)每條行為路徑發(fā)生隱私泄露的概率,計算得到每條行為路徑發(fā)生隱私泄露的嚴(yán)重性,并根據(jù)所述每條行為路徑發(fā)生隱私泄露的嚴(yán)重性,計算得到所述目標(biāo)軟件隱私泄露的嚴(yán)重性。
本實施例通過目標(biāo)軟件的屬性值構(gòu)建軟件隱私泄露行為模型,并進(jìn)一步計算目標(biāo)軟件隱私泄露的可能性和嚴(yán)重性,使得軟件隱私泄露行為的分析結(jié)合了嚴(yán)謹(jǐn)?shù)臄?shù)學(xué)運算,其定量分析結(jié)果更為嚴(yán)謹(jǐn)和準(zhǔn)確。
進(jìn)一步地,在上述裝置實施例的基礎(chǔ)上,所述裝置還包括:
操縱性計算模塊24,用于計算所述軟件隱私泄露行為模型中的部分完成泄露路徑的數(shù)量,所述部分完成泄露路徑為所述軟件隱私泄露行為模型中包括源位置或判決位置的行為路徑;并根據(jù)所述數(shù)量,計算所述目標(biāo)軟件隱私泄露的操縱性。
進(jìn)一步地,在上述裝置實施例的基礎(chǔ)上,所述裝置還包括:
隱秘性計算模塊25,用于根據(jù)目標(biāo)行為路徑,計算所述目標(biāo)軟件隱私泄露的隱秘性,所述目標(biāo)行為路徑為所述軟件隱私泄露行為模型中至少包括一個源位置的行為路徑。
進(jìn)一步地,在上述裝置實施例的基礎(chǔ)上,所述裝置還包括:
矩陣建立模塊26,用于根據(jù)每個目標(biāo)軟件隱私泄露的可能性、嚴(yán)重性、操縱性和隱秘性,建立候選指標(biāo)矩陣;
整體泄露度計算模塊27,用于根據(jù)所述候選指標(biāo)矩陣,計算得到每個目標(biāo)軟件隱私泄露的整體泄露度。
更進(jìn)一步地,在上述裝置實施例的基礎(chǔ)上,所述整體泄露度計算模塊27進(jìn)一步包括:
相關(guān)系數(shù)矩陣計算單元271,用于根據(jù)所述候選指標(biāo)矩陣,計算得到所述候選指標(biāo)矩陣的相關(guān)系數(shù)矩陣;
主成分計算單元272,用于計算所述相關(guān)系數(shù)矩陣的特征值和特征向量,并根據(jù)所述特征值和特征向量,計算得到候選主成分;
整體泄露度計算單元273,用于根據(jù)所述候選主成分,計算得到每個目標(biāo)軟件隱私泄露的整體泄露度。
本實施例所述的軟件隱私泄露行為的定量分析裝置可以用于執(zhí)行上述方法實施例,其原理和技術(shù)效果類似,此處不再贅述。
本發(fā)明的說明書中,說明了大量具體細(xì)節(jié)。然而,能夠理解,本發(fā)明的實施例可以在沒有這些具體細(xì)節(jié)的情況下實踐。在一些實例中,并未詳細(xì)示出公知的方法、結(jié)構(gòu)和技術(shù),以便不模糊對本說明書的理解。