本發(fā)明涉及一種應用權限推理方法及裝置,屬于信息安全技術領域,具體涉及一種基于用戶評論的android應用權限推理方法及裝置。
背景技術:
根據idc統計顯示目前的移動設備的數量已經超過了pc設備,一些移動應用市場例如googleplay,上面的應用數量已經達到百萬之多。數量龐大的應用,在提供給用戶更多的應用選擇的同時,也帶來了一系列的安全問題。特別是在android平臺上面,idc的一份報告顯示,全球97%的手機惡意軟件來自android。在這些惡意軟件中,有近1/3的惡意軟件通過申請超出應用功能要求的安全權限,達到竊取用戶隱私等目的,這類惡意軟件被稱為“權限濫用”惡意軟件。因此,針對移動平臺的惡意軟件檢測,特別是“權限濫用”類惡意應用的檢測一直是研究熱點。目前針對移動應用的權限濫用檢測方法主要有靜態(tài)代碼分析、應用的動態(tài)行為分析和基于自然語言處理的權限分析檢測方法等。
在靜態(tài)代碼分析方面,主要是通過程序分析等手段,在進行程序分析前需要對安裝文件進行反編譯處理,提取能夠描述應用行為的代碼特征,然后根據預先定義檢測的模式特征進行安全檢測匹配。例如在利用靜態(tài)代碼分析的方法檢測應用是否是一個權限濫用的應用,通常的做法是,首先獲取應用中反編譯的代碼的敏感api,將這些敏感的api與android的權限做映射,得到一個基于敏感api調用的應用權限集合。將該權限集合與開發(fā)者在安裝包中的manifest文件申請的權限集合作比較,即可實現權限濫用的檢測。該類方法的明顯不足是,在程序分析的時候,并沒有考慮應用程序的功能,忽略了應用功能語義的信息,例如,對于用戶而言,一個鬧鐘應用,無論是否調用了與read_sms有關的api,用戶都認為鬧鐘應用不允許讀取移動設備的短信,如果鬧鐘應用存在申請read_sms權限的行為,則會被用戶認為是一個惡意的行為。另外,靜態(tài)的代碼分析方法還存在面對混淆代碼分析時檢測的準確率低下,檢測時需要預先定義模式,在面臨新的攻擊模式時失效等一系列問題。
在動態(tài)行為分析方面,主要是將應用放在一個受監(jiān)控的環(huán)境中,通過產生應用的輸入,收集獲取程序的系統調用序列、程序執(zhí)行的軌跡以及網絡數據包等能夠反應程序行為的數據。然后將這些程序行為數據與預先定義好的正常的程序行為數據進行比較,如果存在一些異常的行為數據,則檢測識別出惡意的應用。同樣的,動態(tài)的行為分析方法存在和靜態(tài)的代碼分析方法存在相同的問題,在檢測應用的權限時忽略了應用程序的功能,在動態(tài)程序行為分析過程中,沒有考慮到應用的惡意行為與程序功能的上下文存在聯系。同時,動態(tài)的程序行為分析還存在遍歷路徑不完備等缺陷,在檢測時需要預先定義行為模式,在面臨新的攻擊時存在檢測失效等相關問題。
自然語言處理技術是一種用來分析移動惡意軟件的新途徑,該方法主要是分析開發(fā)者發(fā)布在應用市場上的應用描述信息,將這些描述信息映射到具體的權限。由于應用的描述信息通常是由開發(fā)者發(fā)布并提供,不同的開發(fā)者提供的應用描述信息風格不一致,而且這些描述信息中通常會反映一些應用功能的亮點,這些都會導致應用的描述信息存在一定的語義局限性等問題,應用的描述信息不能完全的反映出應用的功能特征,這也會造成利用應用的描述信息推斷應用的權限存在諸多的不足。
技術實現要素:
本發(fā)明主要是解決現有技術所存在的上述的技術問題,提供一種基于用戶評論的android應用權限推理方法及裝置。該方法及裝置通過從應用市場的用戶評論中挖掘應用程序的功能特征,建立應用程序的功能特征與應用程序權限的聯系,從用戶對應用程序功能理解的角度以及用戶對應用程序關注的安全和隱私的視角出發(fā),推理應用程序的權限請求。
本發(fā)明的上述技術問題主要是通過下述技術方案得以解決的:
一種基于用戶評論的android應用權限推理方法,包括:
步驟1,基于應用的評論信息構建評論特征向量;
步驟2,從應用的權限文檔和相關聯的敏感api文檔的描述信息中抽取代表應用功能語義的特征名詞構成應用的功能特征向量;
步驟3,依據功能特征向量篩選用戶評論數據獲取與功能有關的評論;
步驟4,對與功能有關的評論進行聚類操作;
步驟5,獲取聚類后每一類別的權限特征,基于應用所屬類別的權限特征輸出應用的權限內容。
作為優(yōu)選,上述的一種基于用戶評論的android應用權限推理方法,所述步驟1具體包括:
步驟1.1,識別用戶評論語言;
步驟1.2,對評論進行分詞操作并移除停用詞;
步驟1.3,將用戶評論進行詞干和詞源化提取,同時使用詞袋(bow)模型構建評論特征向量。
作為優(yōu)選,上述的一種基于用戶評論的android應用權限推理方法,所述步驟2具體包括:
步驟2.1,獲取應用的權限文檔以及與權限相對應的敏感api文檔,抽取文檔中能夠反映權限使用特點的名詞及短語,將這些名詞及短語作為種子功能語義特征詞word1;
步驟2.2,獲取應用描述信息中的詞語,統計種子功能語義特征詞word1與其他詞語word2在應用描述信息中的共現頻率;
步驟2.3,將與種子功能語義特征詞word1共現率超過一定閾值的其他詞語word2擴充至種子功能語義特征詞集中。
作為優(yōu)選,上述的一種基于用戶評論的android應用權限推理方法,所述步驟3中基于下述公式篩選與功能有關的功能評論:
value(review)=max(f(p1,review),…,f(pn,review))
將value(review)超過一定閾值的評論作為與應用功能有關的功能評論;
式中,review為用戶評論,per_feature為單詞,每一個權限對應的特征向量在用戶評論中出現的頻率記為f(per_feature,review),特征向量的每一個單詞在用戶評論中出現的次數記為count(review,per_feature),評論的長度記為length(review),value(review)為功能特征向量在評論中出現的最大數值。
作為優(yōu)選,上述的一種基于用戶評論的android應用權限推理方法,所述步驟4中,
依據主題模型,將功能評論按照語義特征進行無監(jiān)督的聚類分析;其中,主題的個數設置為權限的個數;
其中,主題模型btm模型,模型的超參α=5,β=0.01。
作為優(yōu)選,上述的一種基于用戶評論的android應用權限推理方法,所述步驟5中具體包括:
步驟5.1,解析每一類別對應的應用程序集合的權限信息并排序,基于選擇出的前若干個權限的功能特征向量構建權限特征向量集合vp;
步驟5.4,基于類別對應的功能評論構造評論特征向量集合vw;
步驟5.5,計算權限特征向量集合vp和評論特征向量集合vw之間的相似度,將相似度高的權限的特征向量作為類別對應的權限特征向量。
一種基于用戶評論的android應用權限推理裝置,包括:
評論向量構建模塊,基于應用的評論信息構建評論特征向量;
功能向量構建模塊,從應用的權限文檔和相關聯的敏感api文檔的描述信息中抽取代表應用功能語義的特征名詞構成應用的功能特征向量;
功能評論篩選模塊,依據功能特征向量篩選用戶評論數據獲取與功能有關的功能評論;
功能評論聚類模塊,對功能評論進行聚類操作;
權限映射輸出模塊,獲取每一類別的權限特征,基于應用所屬類別的權限特征輸出應用的權限內容。
作為優(yōu)選,上述的一種基于用戶評論的android應用權限推理裝置,所述評論向量構建模塊具體包括:
評論識別單元,識別用戶評論語言;
分詞操作單元,對評論進行分詞操作并移除停用詞;
評論提取單元,將用戶評論進行詞干和詞源化處理,同時,利用詞袋模型(bow)構建評論特征向量。作為優(yōu)選,上述的一種基于用戶評論的android應用權限推理裝置,功能向量構建模塊具體包括:
種子獲取單元,獲取應用的權限文檔以及與權限相對應的敏感api文檔,抽取文檔中能夠反映權限使用特點的名詞及短語,將這些名詞及短語作為種子功能語義特征詞word1;
描述提取單元,獲取應用描述信息中的詞語,統計種子功能語義特征詞word1與其他詞語word2在應用描述信息中的共現頻率;
特征擴充單元,將與種子功能語義特征詞word1共現率超過一定閾值的其他詞語word2擴充至種子功能語義特征詞集中。
作為優(yōu)選,上述的一種基于用戶評論的android應用權限推理裝置,所述功能評論篩選模塊中基于下述公式篩選與功能有關的功能評論:
value(review)=max(f(p1,review),…,f(pn,review))
將value(review)超過一定閾值的評論作為與應用功能有關的功能評論;
式中,review為用戶評論,per_feature為單詞,每一個權限對應的特征向量在用戶評論中出現的頻率記為f(per_feature,review),特征向量的每一個單詞在用戶評論中出現的次數記為count(review,per_feature),評論的長度記為length(review),value(review)為功能特征向量在評論中出現的最大數值。
因此,相比于傳統的程序分析以及動態(tài)的行為分析等方法,本發(fā)明的方法具有誤報率低、能夠檢測新的攻擊等特點。同時,本發(fā)明可以從應用程序功能的角度推理應用的權限請求。
附圖說明
圖1為本發(fā)明的整體框架流程圖。
圖2為本發(fā)明用戶評論到應用權限推理模型圖。
具體實施方式
下面通過實施例,并結合附圖,對本發(fā)明的技術方案作進一步具體的說明。
實施例:
用戶評論的數據是用戶在使用應用過程中對應用行為的一種真實體驗和理解,在某種程度上真實的反映了用戶對應用程序行為的感知和認識。本發(fā)明使用自然語言處理處理技術從用戶評論中挖掘應用的功能特征,利用主題模型對應用程序的功能與應用權限進行建模,實現用戶評論到應用權限的映射。
本發(fā)明通過分析應用市場上的應用描述信息,獲取應用的功能特征,利用這些功能特征篩選與功能有關的用戶評論,由于描述不同功能特征的用戶評論其語義的統計特征不盡相同,通過主題模型對這些用戶評論進行無監(jiān)督的聚類,這樣實現聚類之后的每一個類別中的用戶評論均描述相同或相似的功能特性,由于每一條用戶評論均對應一個應用,綜合分析聚類后每個類別下用戶評論的特點以及應用申請的權限,將每一個類別映射到唯一的一個權限特征,最后,統計一個應用的評論分布情況,得出該應用依據用戶評論所推理出的權限信息。
具體來說,本發(fā)明方法具體包括用戶評論的選擇,用戶評論的聚類以及用戶評論到應用權限的推理模型構建等三個部分。本發(fā)明的方法框架流程圖見圖1所示。
下面對各部分行詳細說明。
1、用戶評論處理
用戶評論的選擇部分包括以下步驟:
步驟1.用戶評論的預處理。由于應用市場是一個開放的環(huán)境,用戶可以自由的上傳評論信息到應用市場中,這些評論信息可能存在語言不同、拼寫錯誤、風格各式各樣等特點。該步驟的用戶評論預處理目的是利用bow(詞袋模型)將不同的用戶評論處理成統一的特征向量格式。具體如下:
步驟1.1識別用戶評論語言。不同語言國家的用戶通常會在應用市場中發(fā)布不同語言的用戶評論,在該步驟中僅僅選擇那些英文撰寫的用戶評論。
步驟1.2移除停用詞。在評論中存在那些諸多沒有實際意義的單詞,例如this,a,an等,在該步驟中剔除這些無實際含義的單詞。
步驟1.3用戶評論詞干、詞源化提取。在英文中單詞有多種變化形式,例如單詞run,由于不同語境的需要會出現running,runs等形式,在該步驟中利用自然語言處理技術中通常提供的詞源化技術,將單詞進行詞源化處理,將不同變化形式的單詞統一為源單詞的樣式。
步驟2.應用程序功能語義特征提取。
用戶評論是一種用戶對應用行為的理解,其中有應用功能請求,應用程序錯誤報告,功能特征等數據。該步驟是為了構建能夠描述應用功能的特征向量,利用這些功能特征向量從評論中篩選出描述應用功能的相關評論。具體如下:
步驟2.1權限相關文檔特征提取。在android官方權限文檔中描述了權限的使用條件以及權限對系統資源訪問控制的諸多信息,找出權限文檔以及與權限相對應的敏感api文檔,該步驟中人工的抽取這些說明文檔中能夠反映權限使用特點的名詞以及名詞短語,將這些名詞和名詞短語作為功能語義特征向量。
步驟2.2應用描述信息功能特征抽取。自動化的分析googleplay中的應用描述信息,找出其中的所有名詞,以每一條描述信息作為基本分析對象,統計每一個名詞與其他名詞出現的次數。在該步驟中,統計能夠反映功能特征的單詞對<word1,word2>出現的頻率信息。
步驟2.3功能語義特征擴充。利用步驟2.1和步驟2.2的結果,擴充應用程序功能的語義特征,將步驟2.1中與權限有關的功能特征作為種子,依據步驟2.2中輸出得出的單詞對字典。將超過一定閾值的詞對記錄擴充到步驟2.1的功能特征向量中。該步驟中得出經過擴充后的功能語義特征向量。
步驟3.與功能有關的用戶評論選擇。該步驟是依據步驟2中得出的功能特征向量,從步驟1中篩選出與功能有關的用戶評論。每一個權限對應的特征向量在用戶評論中出現的頻率記為f(per_feature,review),特征向量的每一個單詞在用戶評論中出現的次數記為count(review,per_feature),評論的長度記為length(review),具體的評論選擇如下:
value(review)=max(f(p1,review),…,f(pn,review))
記錄功能特征向量在評論中出現最大的數值,記為value(review),當該數值超過一定的閾值時,即認為該條評論與功能有關。該步驟輸出與應用功能有關的用戶評論。
2、用戶評論的聚類
用戶評論的聚類包括以下步驟:
依據功能有關的評論和主題模型,將用戶評論按照語義特征進行無監(jiān)督的聚類分析。其中,主題的個數設置為權限的個數,在本發(fā)明中權限的個數設置為10,即主題的個數定義為10。這10個權限分別是send_sms、read_sms、call_phoneaccess_coarse_location、access_fine_location、read_contacts、record_audio、body_sensor、camera、read_phone_state。由于用戶評論多是短文本內容,因此本發(fā)明中選擇btm(參考:https://github.com/xiaohuiyan/btm)模型訓練學習用戶評論,其中模型的超參α=5,β=0.01。該步驟將篩選后與功能有關的用戶評論,按照語義特征將這些評論輸出到10個類別中。
3、應用權限的推理
在用戶評論聚類部分,不同的用戶評論會被聚到不同的類別中。該部分主要是將這些不同的類別映射到具體的權限。
針對每一個類別獲取應用程序的集合,解析提取這些應用程序集合中的權限信息,將這些權限按照數量大小進行排名,選擇前5個權限(這5個權限屬于在用戶評論聚類中提到的10個權限),將這5個權限根據在應用程序功能語義特征提取部分形成的特征向量構建特征向量集合vp。針對利用主題模型進行語義聚類形成的主題,每一個主題其單詞的語義空間分布均不同,每一個單詞出現的概率不同,構建具有權重的特征向量集合vw。利用余弦相似性距離計算集合vp和vw的相似性距離,其中,vp中每一個單詞的權重均設置為相同,值相加等于1。最后,比較其大小,選擇相似性距離最大的特征向量為該類別的權限特征。
從以上描述可知,本發(fā)明從應用市場的用戶評論中分析應用程序的功能,將這些功能與應用程序的權限建立聯系,實現應用程序權限推理。本發(fā)明從用戶對應用程序功能理解的角度以及用戶對應用程序關注的安全和隱私的視角出發(fā),推理應用程序的權限請求。相比于傳統的程序分析以及動態(tài)的行為分析等方法,本發(fā)明的方法具有誤報率低、能夠檢測新的攻擊等特點。
本文中所描述的具體實施案例僅僅是對本發(fā)明精神作舉例說明。本發(fā)明所屬技術領域的技術人員可以對所描述的具體實施案例做各種各樣的修改或補充或采用類似的方式替代,例如在語言識別方面,可以選擇其他的語言,例如中文等,另外,在應用權限的選擇中,可以不采用本發(fā)明中提到的十種權限,可以選擇其他種類的權限類型。但并不會偏離本發(fā)明的精神或者超越所附權利要求書所定義的范圍。