基于移動云計算的Android平臺App風險評估方法與裝置的制造方法
【技術領域】
[0001] 本發明涉及云計算技術,尤其涉及一種基于移動云計算的Android平臺App風險 評估方法。
【背景技術】
[0002] 隨著手機功能日益強大,它已成為生活中不可或缺的一部分。用戶的頻繁使用儼 然使手機成為一個小型的個人隱私庫,這些隱私包括照片,電子郵件,瀏覽記錄,各種賬號 等。于是,用戶的手機隱私安全成為了現下最大的安全問題之一。
[0003] 2014年上半年,新增移動互聯網惡意程序超過36. 7萬,移動惡意程序99%以上針 對安卓平臺,惡意扣費類程序占到62%以上,超過300家應用商店存在移動惡意程序。活躍 的應用程序高達600萬個。大量APP可以在用戶未授權的情況下讀取用戶隱私,某些惡意 APP獲取某些不必要的敏感權限。安卓APP安全的核心問題在于難以知道APP擁有的權限 是否合理,這是一個不確定性問題,讀取手機電話本的權限在微信應用中合理,但是在手電 筒APP中就不合常理。一個典型的場景是,用戶下載手電筒APP時,面對上千個手電筒APP, 無法知道哪個更安全。應用市場提供的APP權限列表,對于廣大非專業用戶而言,不具有參 對價值,用戶無法知道此類APP擁有這些權限是否合理。大量的隱私泄露事件頻發,普通用 戶、政府、應用市場對APP安全評級具有迫切需求,具有巨大的市場前景和機會。
[0004] 手機APP風險評估,需要監控和發現APP的行為,根據規則進行判定,需要實時、大 量的計算,為了突破手機的性能約束,本項目研究一種基于Android手機APP風險評估系 統,能夠對各種APP進行風險評估計算,并將結果實時推送到手機中,提醒用戶進行安全防 護。
[0005] 由于Android的APP數量多,用戶的APP的安裝數量和類型不同,系統的安全風險 也是不同,就需要提出一種策略能夠根據用戶安裝的APP,提供個性化的風險預警。
【發明內容】
[0006] 本發明要解決的技術問題在于針對現有技術中的缺陷,提供一種基于移動云計算 的Android平臺App風險評估方法。
[0007] 本發明解決其技術問題所采用的技術方案是:一種基于移動云計算的Android平 臺App風險評估方法,包括以下步驟:
[0008] 1)采集安卓市場中所有的App,并獲得各App的權限列表;將獲取的權限列表數據 上傳至云端;
[0009] 2)根據獲得的各App的權限列表,根據權限列表中的App隱私權限和設置的隱私 權限危險分值進行危險級別判斷;
[0010] 所述App列表、App隱私權限、隱私權限危險分值存放在云端存儲器中;
[0011] 所述App列表中包括不同App和同一 App的不同版本;
[0012] 所述App隱私權限為所有安卓權限;
[0013] 所述隱私權限危險分值為預設惡意閥值,所述隱私權限危險分值的設置根據App 的類別進行了分類處理;
[0014] 所述危險級別包括正常、預警、危險和高危四個等級;
[0015] 3)根據手機客戶端的請求向云端請求數據,將從云端獲得的相應App的危險級別 判斷結果和App調用的隱私權限發送給客戶。
[0016] 按上述方案,所述步驟1)中獲得各App的權限列表采用以下方法:
[0017] 靜態分析法:采用詞法分析,語法分析的技術手段來對App的程序文件進行掃描, 從而生成程序的反匯編代碼,然后閱讀反匯編代碼獲得App的權限列表;靜態分析法獲取 的是安裝安卓應用程序時所申請的權限。
[0018] 按上述方案,所述步驟1)中獲得各APP的權限列表采用以下方法:
[0019] 程序自動采集法;具體如下:
[0020] I. 1)在手機上安裝待采集權限的App,所述手機上已經安裝了權限采集程序;
[0021]
[0022] 1. 2)將待采集權限的App設為目的App ;
[0023] 1. 3)創建一個 packageManager 對象 pm ;
[0024] 1. 4)調用pm的函數getPackagelnfo,并將包名,權限兩個量作為參數,構造出 PackageInfo 類對象 info ;
[0025] 1. 5)調用info對象的requestedPermissions函數,并用一個字符串數組存權限 列表;
[0026] 1. 6)在屏幕上顯示出所有權限,并在自己所在的包里創建一個txt文件存儲權限 列表;
[0027] 提取的權限的存儲和傳輸
[0028] 由于在傳輸時需要盡可能的減少數據的大小,保證數據傳輸的可靠性和安全性, 建立了一個結構體來存儲傳輸的數據。這個結構體擁有兩個屬性:一個String類型的變量 來存儲目標App的包名,一個長為20的布爾型數組,來代表該App申請的隱私權限。例如:
[0031] 表1. 1中的編號即為permissions數組里面的下標,將隱私權限與目標App的所 有權限--對比,若發現相同就將該權限對應的permissions [i]賦值為true,直到所有的 隱私權限判定完全為止。
[0032] 按上述方案,所述步驟2)中App的危險級別判斷包括以下步驟:
[0033] 2. 1)提取需要危險級別判斷的App的類別;
[0034] 2. 2)獲得所有同類App的所涉及的最小權限集合;具體表示如下:
[0035] 設 G = (Class, Population, Permissions);
[0036] 其中,Class為類別關鍵字;
[0037] 最大權限集合Population為該同類別下所有App涉及的隱私權限集合;
[0038] 最小權限Permissions為該同類別下每個App涉及的隱私權限的交集;
[0039] 2. 3)根據改進的歐氏距離算法,計算該App與最小權限集合的相似距離;采用以 下公式:(Ii= Sqrt(Pi) = SqrUpt^p12+…+pk2),(PmP 1,…,pk e Pi);
[0040] 其中,設該App涉及的隱私權限為ApiKiXn !Pi= {p |p e A i- Permission, 0〈i〈n};
[0041] 2. 4)根據步驟2. 3)計算的結果確定該App的危險級別。具體方式為符合最小權 限集合的App為正常,危險的級別根據計算的歐式距離的進行閾值劃分。由于不同類別的 App可以有不同的最小權限集合,所以不同類別的App危險等級劃分是動態的,危險等級劃 分閾值可以根據App種類、同類App權限分布規律等因素進行確定,并且根據時間等因素進 行演化。
[0042] 本發明還提供一種基于移動云計算的Android平臺App風險評估裝置,包括:
[0043] 權限采集模塊,用于采集安卓市場中所有的App,并獲得各App的權限列表;將獲 取的權限列表數據上傳至云端;
[0044] 云端存儲分析器模塊,用于根據獲得的各App的權限列表,根據權限列表中的隱 私權限和設置的隱私權限危險分值進行危險級別判斷;
[0045] 所述App列表、App隱私權限、隱私權限危險分值存放在云端存儲器中;
[0046] 所述App列表中包括不同App和同一 App的不同版本;
[0047] 所述App隱私權限為所有安卓權限;
[0048] 所述隱私權限危險分值為預設惡意閥值,所述隱私權限危險分值的設置根據App 的類別進行了分類處理;
[0049] 所述危險級別包括正常、預警、危險和高危四個等級;
[0050] 風險評估接收客戶端,用于根據手機客戶端的請求向云端請求數據,將從云端獲 得的相應App的危險級別判斷判斷結果和App調用的隱私權限發送給客戶。
[0051] 本發明產生的有益效果是:本發明通過對海量App的權限特征進行分析,通過相 似度計算的方法檢測Android應用軟件惡意傾向,為用戶提供了一種可行且有效的App評 估方法,通過提供安全分析,能有效減少用戶隱私泄露的風險。
【附圖說明】
[0052] 下面將結合附圖及實施例對本發明作進一步說明,附圖中:
[0053] 圖1是本發明實施例的結構示意圖;
[0054] 圖2是本發明實施例的手電筒類App中涉及各隱私權限數量圖;
[0055] 圖3是本發明實施例的手電筒類App相似度距離d值降序排列趨勢圖;
[0056] 圖4是本發明實施例的手電筒類App權限調用數量與相似距離d值關系圖。
【具體實施方式】
[0057] 為了使本發明的目的、技術方案及優點更加清楚明白,以下結合實施例,對本發明 進行進一步詳細說明。應當理解,此處所描述的具體實施例僅用以解釋本發明,并不用于限 定本發明。
[0058] 如圖1所示,一種基于移動云計算的Android平臺App風險評估方法,包括以下步 驟:
[0059] 1)采集安卓市場中所有的App,并獲得各App的權限列表;將獲取的權限列表數據 上傳至云端;
[0060] 獲得各App的權限列表可采用以下兩種方法:
[0061] 靜態分析法:采用詞法分析,語法分析的技術手段來對App的程序文件進行掃描, 從而生成程序的反匯編代碼,然后閱讀反匯編代碼獲得App的權限列表;靜態分析法獲取 的是安裝安卓應用程序時所申請的權限;
[0062] 程序自動采集法;具體如下:
[0063] I. 1)在手機上安裝待采集權限的App,所述手機上已經安裝了權限采集程序;
[0064] 1. 2)將待采集權限的App設為目的App ;
[0065] 1. 3)創建一個 packageManager 對象 pm ;
[0066] 1. 4)調用pm的函數getPackagelnfo,并將包名,權限兩個量作為參數,構造出 PackageInfo 類對象 info ;
[0067] 1. 5)調用info對象的requestedPermissions函數,并用一個字符串數組存權限 列表;
[0068] 1. 6)在屏幕上顯示出所有權限,并在自己所在的包里創建一個txt文件存儲權限 列表;
[0069] 2)根據獲得的各App的權限列表,根據權限列表中的app隱私權限和設置的隱私 權限危險分值進行危險級別判斷;
[0070] 所述App列表、App隱私權限、隱私權限危險分值存放在云端存儲器中;
[0071] 所述App列表中包括不同App和同一 App的不同版本;
[0072] 所述App隱私權限為所有安卓權限;
[0073] 所述隱私權限危險分值為預設惡意閥值,所述隱私權限危險分值的設置根