易 黎,邱秀連,馬 芳,彭艷兵,程 光
(1.南京烽火星空通信發(fā)展有限公司,江蘇 南京210019;2.東南大學 網絡空間安全學院,江蘇 南京211189)
中國互聯(lián)網絡信息中心(CNNIC)發(fā)布的第48次《中國互聯(lián)網絡發(fā)展狀況統(tǒng)計報告》表明,截至2021年6月,中國手機網民的數(shù)量已高達10.07億,如此巨大的用戶量具有不可估量的商業(yè)價值,而其背后如此巨大的用戶個人信息在當前信息時代環(huán)境下更是蘊含著巨大價值[1]。但在實踐中,如此眾多的用戶使用量其問題也接踵而至,最明顯的是關于用戶個人信息泄漏事件層出不窮,對用戶個人信息的侵害可謂無孔不入,智能手機APP為用戶帶來便利的同時,也成為個人信息泄漏的根本原因之一。
依據敏感程度和安全性不同,用戶個人信息內容分為用戶核心隱私信息、用戶的重要隱私信息與用戶的普通隱私信息三個類別[2]。其中關于通訊錄聯(lián)系人、手機賬號、賬戶密碼、聊天記錄以及定位用戶當前所在地點等內容被劃分為核心隱私信息;關于手機發(fā)送接收短信信息、撥通電話、調用手機自帶的攝像頭權限等內容信息歸屬于重要隱私信息一類;最后用戶的Wi-Fi連接無線網絡、藍牙連接無線設備、手機數(shù)據網絡流量使用等信息屬于普通隱私信息。
在實際應用中,往往不僅想判別該APP是否有隱私侵占行為,更希望對該APP做深入挖掘,即進行類型的判別。在已發(fā)現(xiàn)的電信網絡新型違法犯罪所使用的移動APP的類型中,有下述三種常見的侵占隱私類APP:
(1)“套路貸”APP
該類型APP除了作為套路貸活動的簽約、借款、還款平臺,還會在受害人手機中索取權限獲取機主的短信、通話記錄、通訊錄、照片視頻等各類隱私信息,并在未經允許的情況下收集上傳,從而進行后續(xù)的催收騷擾或敲詐勒索違法行為[3]。
(2)“裸聊”APP
“裸聊”APP主要方式是與受害人進行視頻聊天,欺騙誘導受害人安裝惡意APP,錄制受害人隱私音視頻,同時收集并上傳受害人手機中的短信、通話記錄、通訊錄、地理位置以及照片視頻等各類隱私信息[4]。
(3)網絡賭博APP
誘導境內受害人安裝網絡賭博APP,進行所謂“在線直播”、“線上下注”等違法活動,犯罪團伙通過操縱后臺、修改數(shù)據以及直接下線跑路的方式侵吞受害人的錢財。部分APP會收集受害人手機中隱私數(shù)據,用于開展“套路貸”等其他類型違法犯罪行為。
為此,針對現(xiàn)在市面上較常見的非法侵占隱私類移動應用的識別問題,提出一種基于多模態(tài)特征的多策略組合識別算法。通過靜態(tài)和動態(tài)檢測相結合,針對移動應用APP進行先分類后判別的模式分析,包含基本類別信息、是否通信傳輸行為、是否境外服務器、外在輿情、涉及敏感權限等多維度安全檢測。
文本特征提取是文本挖掘中非常重要的一個環(huán)節(jié),無論是聚類、分類還是相似度任務,都需要提取出較好的文本特征,才能取得較好的結果[5]。特征抽取的主要功能是在不損傷文本核心信息的情況下盡量減少要處理的單詞數(shù),以此來降低向量空間維數(shù),簡化計算并提高文本處理的速度和效率。文本語料的不同文本特征提取方案也會不同,例如在長篇幅的對話文本中,上下文銜接語義非常重要,用基于計數(shù)的模型(如詞袋)處理單詞不能捕獲單詞之間的語義關系,不能單用TF-IDF這類詞袋模型的提取方案。
本次實驗數(shù)據的xml文本、APP名稱文本均具有上下文的語義信息,所以需要使用基于神經網絡的特征提取方法。首先需要對文本進行預處理,處理流程如下文。
(1)刪除標簽:利用BeautifulSoup庫提取xml文件中所有的文本內容,丟棄標簽。
(2)刪除特殊字符:使用正則表達式過濾非字母和中文的其他字符。
(3)切分句子:將長文本切分為中英文片段,再對每個片段判斷中英文,對于純英文片段利用wordninja包切詞;對于含有中文的片段,利用jieba進行切詞。
(4)刪除干擾詞:將APP中經常出現(xiàn)的如“同意、更新、返回”此類不能表征APP內容的詞匯列入白名單,在完成切詞后濾除掉白名單詞匯。
另外,一些文本的處理操作可以當做調優(yōu)參數(shù)對待,例如是否對切詞后的集合去重。
Word2vec是一種基于預測的深度學習模型,用于計算和生成高質量的、連續(xù)dense的單詞向量表示,并捕捉上下文和語義相似性[6]。本質上,這些是無監(jiān)督的模型,可以接收大量的文本語料庫,創(chuàng)建可能的單詞詞匯表,并為表示該詞匯表的向量空間中的每個單詞生成dense的單詞嵌入。通??梢灾付▎卧~的嵌入向量的大小,向量的總數(shù)本質上反映詞匯表的大小。這使得該向量空間維度大大低于傳統(tǒng)的詞袋模型構建出的高維稀疏的向量空間。訓練好詞向量后,每篇文本經過文本預處理到轉為對應詞向量后,可以送入神經網絡進行分類模型的訓練和測試。具體的演化流程如表1所示。
表1 APP中短文本到詞向量的轉換過程
將Word2vec訓練好的詞向量替代CNN的embedding層,利用類似于圖像分類的原理,用不同大小的卷積核對特征矩陣做卷積,即可以提取到不同景深下的特征維度,然后合并不同景深的特征矩陣,經過max_pooling層后輸出最終的分類類別,具體的網絡結構如圖1所示。
圖1 基于文本分類的APP類型識別
為了進一步對APP是否存在隱私侵占行為進行研究,在APP的類別得到有效識別后,將分類識別的結果作為新的特征輸入到隱私侵占識別模型中,通過與通信傳輸行為、境外服務器、外在輿情(如百度貼吧是否涉及該APP)、涉及敏感權限等一批新的行為特征相組合,利用互信息、卡方分布等特征選擇方法,逐步過濾并選擇信息量較大的特征子集表征應用程序。
圖2 所示為多策略組合的隱私侵占檢測框架,該框架執(zhí)行了四個主要的模塊:行為特征抽取與量化、特征選擇、初級檢測和投票判別。行為特征抽取模塊通過解壓縮并反編譯應用程序的APK文件,從AndroidManifest.xml和classes.dex文件中抽取多種行為特征數(shù)據[7]。數(shù)據特征會直接影響預測模型的性能,因此為了刪除無用特征以構造具有最佳分類效果的特征集,特征選擇模塊使用三種過濾式特征選擇方法,逐步過濾并選擇信息量較大的特征子集表征應用程序。初級檢測和投票判別模塊設計一種復合分類模型,通過結合多種不同的基分類器,采用硬投票或者軟投票的方式預測應用類別,從而降低了因分類算法對惡意行為的選擇性所帶來的誤報、漏報等風險,提高了檢測的準確性[8]。
圖2 多策略組合的隱私侵占識別
根據對侵占隱私類APP的分析,本文首先提取了八個層面的行為特征表征應用程序,包括APP所屬類別、回傳通訊錄特征、服務器是否境外、外網輿情信息、應用程序文件大小、APP來源、敏感權限、逆泛域名,表2所示為部分行為特征及其所屬類別的介紹。
表2 可疑行為特征
將文本類特征轉換為數(shù)值型特征,比如分類類別、APP來源、APP服務器位置;將定性自變量轉化為離散的數(shù)值型變量;將定量自變量用標準化或者歸一化處理。
為了提高算法的性能,研究人員一般都會選用大量的特征表征數(shù)據,但并不是特征維度越高越好,在眾多的屬性中,一定含有冗余特征,如果不經處理直接進行分析,會影響模型的性能[9]。所以選擇信息量較大的特征子集表征應用程序,不僅可以降低模型的復雜度并縮短模型運行時間,還可以提高模型的準確率和檢測效率。
針對不同數(shù)值類型的特征,需要不同的特征選擇方法。對于定性自變量對定性因變量的相關性檢驗,一般不采用相關系數(shù)法,可以使用卡方檢驗和互信息法進行檢驗;當自變量的數(shù)值為連續(xù)型時,可以使用簡單的方差選擇法,也可以采用互信息法的變遷模式最大信息系數(shù)法。
(1)卡方檢驗
卡方檢驗通過觀察值和理論值之間的偏差來判斷理論值的正確率是多少。如果正確率很大則被認為理論值是正確的,即假設成立,否則假設不成立。
卡方檢驗的基本公式,即x2的計算公式,為觀察值和理論值之間的偏差:其中A代表觀察頻數(shù)(觀察值),E代表期望頻數(shù)(理論值)。通過計算x2數(shù)值以及自由度去對照卡方分布表,即可知道該假設條件下成立的概率值。自由度的計算公式通常為df=n-k。其中n為樣本數(shù)量,k為被限制的條件數(shù)或變量個數(shù)。在本次實驗中,對于一個N分類模型,自由度為1*(N-1)。
(2)互信息法
互信息法指選擇一個能提供給類別盡可能多“信息”的特征子集,從而得到更多關于類別的“信息”,進而為分類提供幫助。通過計算某個特征與標簽列的互信息熵的值,即可以得到該特征與分類的相關度。首選介紹下互信息的計算公式:
其中,I(X;Y)表示事件X和Y共同提供的信息,I(X;Y)值越大,代表該項特征對提供分類信息越多。
對于互信息法可以設置閾值,低于閾值的特征被認為對于分類無效,在訓練模型時將丟棄該項特征。
(3)方差法
方差計算公式:
其中M為數(shù)據的平均數(shù),n為樣本個數(shù),s2為方差值。如果某列特征值均為一個數(shù)值或者波動很小的話,對應的方差則越小,該特征對樣本分類的貢獻也越少,可以通過閾值濾除掉方差值較小的特征。閾值的選擇理論上應該根據分類模型結果與閾值的曲線來確定,需要多次進行模型訓練。在計算方差之前,需要將數(shù)值型的幾列特征的值調整到相同的數(shù)量級,這里采用的是區(qū)間縮放法,將數(shù)值均縮放到[0,1]區(qū)間。
特征選擇模塊之后,可以得到與應用程序類別相關性較高的特征子集。接下來為了得到更加精確的識別效果,選用了四種不同類型的分類算法對應用程序進行分類:邏輯回歸算法(Logistic Regression)、隨機森林算法(Random Forest)、bagging和adaboost,四種分類算法都被廣泛應用于二進制分類問題。
借助集成學習的思想,通過結合多種不同的分類算法創(chuàng)建了一種復合分類模型,即投票判別模型[10]。將不同的分類算法定義為基分類器,投票判別應用程序類別的基本原理被描述為:基于應用程序訓練樣本學習得到n個基分類器M1,M2,…,Mn,對于待分類應用程序,由n個基分類器對其進行類別預測,每個基分類器都對自己的預測結果進行投票,最終得票數(shù)最多的類別為投票判別結果。
采用硬投票的方式得到最終結果。硬投票又稱多數(shù)投票,通過統(tǒng)計多種基分類器的預測結果,以少數(shù)服從多數(shù)為原則,最終輸出得票數(shù)最多的類別。
本文實驗使用的數(shù)據集是包括小米應用商城、360手機應用市場、非凡軟件站在內的多家應用市場數(shù)據,共包含765 821萬條APP的有效動靜態(tài)數(shù)據,篩選有效類別的APP類別有11種,分別為博彩、工具-購物、視頻、交友直播、虛擬幣、借貸、工具-兼職、色情、游戲、VPN、位置偽裝多開。以初始類為基礎再次篩選是否存在隱私侵占行為,篩選有效類別的數(shù)據集作為訓練和測試樣本,均按照8:1:1的比例進行訓練集、驗證集以及測試集的劃分,實驗數(shù)據集的分布情況如表3所示。
表3 各類應用數(shù)據分布
基于Word2vec+CNN網絡的APP基礎類識別網絡參數(shù)如表4所示。
表4 APP基礎類識別網絡參數(shù)
基于多特征融合的投票方式隱私侵占APP識別模型參數(shù)如表5所示。
表5 多分類器的網絡參數(shù)
經過特征相關性檢驗,實驗一共確定了18個特征值。其中,原始敏感權限對應了124維的特征矩陣,從124維的權限中篩選部分核心的權限作為特征,分別使用卡方檢驗和互信息法推薦12個敏感權限特征。
系統(tǒng)完成建模之后,需要對模型的效果做評價。采用評價指標準確率(Precision)、召回率(Recall)、F值(F-Measure)來衡量分類模型的效果。
(1)準確率(Accuracy)
準確率(Accuracy)計算公式如下,模型預測正確數(shù)量所占總量的比例。
(2)召回率(Recall)
召回率是覆蓋面的度量,度量有多個正例被分為正例。
(3)F1值(H-mean值)
F1值為算數(shù)平均數(shù)除以幾何平均數(shù),且越大越好。將Precision和Recall的上述公式帶入會發(fā)現(xiàn),當F1值小 時,True Positive相對增加,而false相 對 減少,即Precision和Recall都相對增加,也就是F1對Precision和Recall都進行了加權。
表6 和圖3分別列出了在驗證集上對APP粗分類和基于分類后的結果對是否存在隱私侵占行為的檢測效果。實驗結果顯示,對于APP的初始分類效果達到優(yōu)異的成績,準確率均高于95%,部分類別的召回率偏低;基于分類結果再融合異常侵占隱私行為特征的二次分類結果顯示,多個分類器的聯(lián)合投票結果優(yōu)于單個的分類器。
圖3 分類器性能示意圖
表6 APP基礎類識別驗證集效果
本文方案針對市場中較常見的涉及隱私侵占類的APP,達到了預期的實驗效果,不僅分類領域達到較高的水準,還將各個不同類別中帶有隱私侵占性質的APP進行了二次識別。但是本文方案仍有許多值得研究和改進的地方,首先由于樣本的限制,導致分類類別有限,對于未知類別中的涉及侵占隱私APP沒有涉及;其次是對于多分類器投票環(huán)節(jié),實驗中只利用了4種二分類器,對于更多不同的分類器組合效果是否更好有待進一步驗證。