新四季網

一種安卓平臺釣魚攻擊的解決方法

2023-09-11 15:57:50

一種安卓平臺釣魚攻擊的解決方法
【專利摘要】本發明公開了一種安卓平臺釣魚攻擊的解決方法,用戶根據安全敏感程度將除系統應用外的手機應用分為多類保護應用,當用戶啟動某應用時,由系統負責首先判斷是否已開啟受保護應用,並依據判斷結果以及所要開啟的應用所屬類別來啟動識別與攔截模塊,確定是否允許該應用啟動;如果允許啟動,則對該應用進行身份識別,並根據該應用的類別設置保護標誌位,系統根據該保護標誌位來決定是否對其進行保護。本發明在系統框架層的AMS中添加識別與攔截模塊,解決了在應用層無法幹涉AMS流程而導致無法攔截釣魚應用的問題,同時為用戶提供了多級別的保護方案供其定製,有效的保證了用戶在使用手機時的安全。
【專利說明】一種安卓平臺釣魚攻擊的解決方法

【技術領域】
[0001] 本發明涉及一種軟體技術,具體涉及一種解決安卓平臺釣魚攻擊的方法。

【背景技術】
[0002] 根據IDC(InternationalDataCorporation)市場研究公司4月份公布的數據顯 示,安卓(Android)系統在全球智慧型手機市場中的份額高達78. 1%。在國內,Android系統 的佔有率高達80%。隨著手機應用的不斷推廣,其伴隨而來的數據安全問題也日漸突出,手 機中存儲了大量人們日常生活中的數據,例如通信錄,簡訊,應用的使用情況等。惡意應用 早已瞄準移動市場,這些惡意應用的攻擊會導致各種嚴重後果,其中隱私竊取、惡意扣費以 及資費消耗三種後果所佔比例高達96%,釣魚攻擊的嚴重性在於可以利用其竊取的隱私數 據進而產生一系列後續的攻擊從而導致更嚴重的後果。
[0003] Android平臺上釣魚攻擊危害程度之高的關鍵因素在於目前市面上的安全軟 件如金山手機衛士、手機毒霸、樂安全等根本無法識別出,原因是目前Android平臺上的 安全軟體所使用的殺毒引擎大多基於以下兩點來判定一個應用是否含有惡意行為:第 一,基於行為的判斷(YangZ,YangM,ZhangY,etal.Appintent:Analyzingsensitive datatransmissioninandroidforprivacyleakagedetection[C]//Proceedings ofthe2013ACMSIGSACconferenceonComputer&communicationssecurity. ACM, 2013:1043-1054),應用在運行過程中是否存在越權行為或讀取隱私數據;第二,基 於應用籤名(或摘要)的判斷(王浩宇,王仲禹,郭耀,等.基於代碼克隆監測技術的 Android應用重打包檢測.中國科學信息科學,2014, 44(1) : 142-157),根據應用文件來判 定是否為惡意應用。釣魚攻擊對這兩種方式有先天的免疫功能,對於第一點,判斷應用運 行時是否存在讀取隱私數據,或通過雲殺毒方式利用後臺伺服器來對特殊文件進行檢測, 常用方式為靜態、動態分析(YanM,MehrdadSS.InvestigationofStaticandDynamic AndroidAntivirusStrategies[J].IEEEInternationalConferenceonInformation Technology. 2013:398-403、楊智,殷麗華,段洙毅,等.基於廣義汙點傳播模型的操作 系統訪問控制.軟體學報,2012,23(6):1602-1619),轉化為數據流分析。釣魚應用一般實 現並無破壞系統等惡意行為,也無例如讀取手機通信錄,聯繫人等隱私數據的行為,因而可 以完全跳過安全軟體的行為監控;對於第二點,檢測僅僅通過對比應用籤名或文件摘要來 判斷,這種方式完全基於安全軟體所依賴的病毒資料庫,對已知的惡意應用可以識別,但對 新出現或者未知的惡意應用則完全無效,而且幾乎所有惡意應用在這一點上都輕鬆做到免 殺。
[0004] 釣魚攻擊方式由來已久,早在PC時代針對電子商務以及銀行的各種釣魚網站就 層出不窮,不法分子或偽造URL地址及頁面內容或在真實網站伺服器程序上利用漏洞植入 危險HTML代碼以此欺騙客戶帳號以及密碼等信息。
[0005] 在Android系統上,由於多任務單界面的移動系統設計原則,非常容易遭受釣魚 攻擊(組件劫持),而且依據移動應用的設計理念,打開應用首先直接進入應用主界面,之 後根據網絡環境變化或者其他條件再觸發登錄,註冊操作,這也是釣魚攻擊利用的一個重 要原因,其最根本因素是,用戶無法判斷當前手機畫面上顯示的界面是否為釣魚應用。
[0006] 釣魚攻擊的一般過程如下(以微博為例):
[0007] 第一步,啟動後臺服務,其功能是實時獲取用戶手機中當前正在運行的APP是否 為微博;第二步,當用戶打開微博應用時,啟動事先製作好的微博登錄界面,誘導用戶重新 登錄;第三步,將用戶輸入的信息通過網絡或者簡訊形式發送至攻擊者。
[0008] 釣魚應用一般由兩部分組成:
[0009] 第一部分是製作Service系統服務,利用Android系統APIActivityManager. getRunningTasks實時監控當前正在運行的應用;
[0010] 第二部分是製作釣魚界面,由於Android應用通過Java編寫,其界面布局以XML 文件形式存儲,因而比較容易通過反編譯等方式製作出高仿界面,在系統切換Activity的 間隙中,啟動此釣魚界面,然後可以將所竊取的微博登錄帳號與密碼通過網絡或者簡訊等 方式發送給攻擊者。
[0011] 釣魚攻擊的核心在於與正常應用搶佔開啟時機,由於Android手機多任務單界面 設計理念,在任務切換時會有時間間隙,利用這個間隙啟動釣魚應用,使得用戶難以通過屏 幕區分當前運行的應用是否為釣魚應用。
[0012] 一般來說實現釣魚攻擊檢測有兩種方式,分別在應用層上識別攔截(Yang Zhi,YinLihua,DuanMiyi,etal.Appintent:Analyzingsensitivedatatransmission inandroidforprivacyleakagedetection[C]//Proceedingsofthe2013ACMSIGSAC conferenceonComputer&communicationssecurity.ACM, 2013:1043-1054)和在系統層 (框架層)上識別攔截。應用層實現識別攔截的方式與釣魚攻擊實現步驟第一步類似,通 過系統後臺服務實時監控當前正在運行的應用名稱,並通過懸浮窗口或通知方式顯示給用 戶,但是在應用層上實現識別攔截有三個不足:第一,實時監控部分,後臺服務實時監測需 要定時獲取當前正在運行的應用信息,監測間隔時間設置若過長,則可能失去監測效果,若 過短,則會嚴重影響系統性能;第二,攔截功能,在應用層上無法做到釣魚應用的攔截,因為 所有應用的啟動是由框架層的活動管理服務(ActivityManagerService,AMS)負責,應用 層無權限幹涉AMS的流程;第三,用戶體驗,通過懸浮窗口實時顯示,會嚴重影響用戶體驗 度,而通過Toast方式提示則很容易被用戶所忽略。
[0013] 在Android系統中,所有Activity的啟動,退出都由AMS來統一負責管理。AMS 中對Activity的管理是通過"Stack"這種數據結構來管理的。其使用的主要數據結構 變量由大到小分別為:mStacks :管理Stack的單位,存儲所有的Stack ;Stack :管理Task 的單位,在Android4. 4中使用了 mHomeStack與mFocusStack兩個變量,分別用來存儲與 Launcher (Home)相關的 Task 與非 Launcher 相關的 Task ;Task :管理 Activity 的最小單 位,存儲的內容是同一組任務中相關的所有Activity。釣魚應用實現中,通常都會利用系統 API實時獲取mFocusStack中正在運行的Task,從而獲得頂端Activity的相關數據,而其 自身也會存儲於mFocusStack中,因此判斷釣魚應用Activity需要從mFocusStack中遍歷 查詢,判斷其是否退出也需要從mFocusStack中做輪詢判斷。
[0014] Android系統中AMS啟動Activity流程如圖1所示,無論是通過點擊Launcher中 的圖標,還是通過StartActivity函數啟動(釣魚應用啟動是通過此方式),最後都會調用 Activity類中的startActivity函數來啟動,並最終都會由AMS執行startActivity函數 來完成。在原生系統中,啟動一個Activity只需要做權限判斷,調用者身份判斷等基本驗 證,之後就會啟動任何符合要求的Activity,這是釣魚應用可順利啟動的重要原因。


【發明內容】

[0015] 針對現有技術的不足,本發明旨在提供一種安卓平臺釣魚攻擊的解決方法,通過 對釣魚應用原理的分析,基於AndroicM. 4原生系統,在框架層的活動管理服務AMS中添加 釣魚識別與攔截模塊,在框架層上識別並攔截釣魚攻擊。本發明選擇在框架層實現,原因有 四點:第一,根據對釣魚原理的分析,其實現第一步所利用的API屬於系統開放API,因此只 能在第二步啟動釣魚界面這一步驟中實施攔截;第二,應用的啟動是通過框架層中的AMS 管理,而在應用層無法實現AMS流程的修改;第三,在框架層可以實現高效的識別與攔截釣 魚攻擊;第四,在框架層做出攔截後,不再需要通過各種提示方式提醒用戶,用戶體驗非常 好。
[0016] 為了實現上述目的,本發明採用如下技術方案:
[0017] 一種安卓平臺釣魚攻擊的解決方法包括如下步驟:
[0018] 步驟1,用戶根據應用的安全敏感程度,將手機中除系統應用外的受保護應用分為 第一類受保護應用和第二類受保護應用並存儲在框架層的活動管理服務AMS內部;除此之 夕卜,餘下的應用默認為第三類應用;然後根據應用的所屬類別設置對應的保護標誌位,用於 描述應用的類別;
[0019] 步驟2,在開啟某應用時,由AMS內部首先根據受保護應用的保護標誌位判斷當前 是否已經開啟了受保護應用,並據此判斷是否允許所要開啟的應用啟動:如果當前開啟了 第一類受保護應用,則只有當所要開啟的應用為系統應用或第一類受保護應用時才允許啟 動,並執行步驟3,否則禁止其啟動;如果當前開啟了第二類受保護應用,則只有當所要開 啟的應用為系統應用、第一類受保護應用或第二類受保護應用時才允許其啟動,並執行步 驟3,否則禁止其啟動;如果當前沒有開啟受保護應用,則允許所要開啟的應用啟動並執行 步驟3 ;
[0020] 步驟3,對被允許啟動的應用的保護標誌位進行設置,以表示該應用現處於啟動狀 態。
[0021] 需要說明的是,所述步驟1的具體過程為:
[0022] 步驟1. 1,用戶根據應用的安全敏感程度,將手機中除系統應用外的受保護應用分 為第一類受保護應用、第二類受保護應用,除此之外,餘下的應用默認為第三類應用;
[0023] 步驟1. 2,將第一類受保護應用和第二類受保護應用分別存儲於AMS內部數據類 型為鍊表的成員變量mFirstProApp,mSecondProApp之中,其分別代表第一類受保護應用 以及第二類受保護應用包名;
[0024] 步驟1. 3,根據應用的所屬類別設置對應保護標誌位,其中第一類受保護應用的 標誌位為fFlag,第二類受保護應用的保護標誌位為sFlag,系統應用的保護標誌位為 SysFlag,第三類應用為dFlag,所述保護標誌位用於描述應用的類別。
[0025] 需要說明的是,步驟2的具體過程如下:
[0026] 步驟2. 1,AMS內部根據第一類受保護應用的保護標誌位fFlag來判斷是否已經 開啟第一類受保護應用,若fFlag為true,表明當前已開啟保護第一類受保護應用,則執行 2. 3,否則執行步驟2. 2 ;
[0027] 步驟2. 2,AMS內部根據第二類受保護應用的保護標誌位sFlag來判斷是否已經 開啟第二類受保護應用,若sFlag為true,表明已開啟保護第二類受保護應用,則執行步驟 2. 4,否則執行步驟3;
[0028] 步驟2. 3,AMS根據成員變量mFirstProApp中存儲的包名來檢測所要開啟的應用 是否屬於系統應用或者第一類受保護應用,其中mFirstProApp為AMS內部數據類型為鍊表 的成員變量,用於存儲第一類受保護應用包名:如果是,則允許啟動,並執行步驟3,否則, 向Instrumentation拋出異常,並由Instrumentation將此異常拋給所要開啟的應用,禁止 其啟動;
[0029] 步驟2. 4,AMS根據成員變量mFirstProApp、mSecondProApp中存儲的包名來檢測 當前開啟的應用是否屬於系統應用或第一、二類受保護應用,其中mSecondProApp為AMS內 部數據類型為鍊表的成員變量,用於存儲第二類受保護應用包名:如果是,則允許啟動,並 執行步驟3,否則向Instrumentation拋出異常,並由Instrumentation將此異常拋給所要 開啟的應用,禁止其啟動。
[0030] 需要說明的是,步驟3的具體過程如下:
[0031] 步驟3. 1,查看被允許啟動應用是否為系統應用,如果是,則設置其保護標誌位 SysFlag = true ;否則執行步驟3. 2 ;
[0032] 步驟3. 2,查看被允許啟動應用是否為第一類受保護應用,如果是,設置其 , , ,fFlag=true , , 保護標誌位.,並將應用包名添加至AMS內部mFirStStartProApp中,sMag=talse mFirstStartProApp為鍊表,用於存儲已經啟動的第一類受保護應用包名;否則執行步驟 3. 3 ;
[0033] 步驟3. 3,查看被允許啟動應用是否為第二類受保護應用,如果是,設置其 保護標誌位sFlag = true,並將應用包名添加至AMS內部mSecondStartProApp中, mSecondStartProApp為鍊表,用於存儲已經啟動的第二類受保護應用包名;否則執行步驟 3. 4;
[0034] 步驟3. 4,確定所啟動應用為第三類應用,並設置保護標誌位dFlag=false。
[0035] 需要進一步說明的是,所述方法還包括如下步驟4,所述步驟4在需要退出某一應 用時實施:
[0036] 步驟4. 1,AMS首先判斷退出的應用是否為系統應用,如果是則重置系統保護標誌 位SysFlag=false,否則執行步驟4. 2 ;
[0037] 步驟4. 2,AMS根據存儲第一類受保護應用和第二類受保護應用包名的成員變量 mFirstProApp以及mSecondProApp判斷所要退出的應用是否為受保護應用,如果是,則執 行步驟4. 3,否則重置第三類應用保護標誌位dFlag=false;
[0038] 步驟4. 3,AMS掃描內部變量mFocusStack中保存的Task,查看是否所要退出的應 用所屬的Task是否存在,若不存在則表明所要退出的應用進程已真正退出,執行步驟4. 4 ;
[0039] 步驟4. 4,掃描並檢測所要退出的應用所屬受保護應用類別,若為第一類受保護應 用,則執行步驟4. 5,否則執行步驟4. 6 ;
[0040] 步驟4. 5,掃描AMS內部數據結構mFirstStartProApp確認第一類受保護應用是否 完全退出,如果是,重置第一類受保護應用的保護標誌位fFlag=false;
[0041] 步驟4. 6,掃描AMS內部數據結構mSecondStartProApp確認第二類受保護應用是 否完全退出,如果是,重置第二類受保護應用的保護標誌位sFlag=false。
[0042] 需要說明的是,步驟2和步驟3的目的就在於,在受保護應用(包括第一類受保 護應用以及第二類受保護應用)處於啟動或運行狀態時,對其後開啟的應用都實現識別和 攔截,防止有惡意應用在需要保護的應用運行期間彈出,生成高仿界面而造成使用者信息 洩露的情況。因為在啟動每一個應用之前,都會檢測當前是否已有第一類受保護應用或第 二類受保護應用開啟,然後根據檢測結果以及要啟動應用的類別來決定是否允許該應用啟 動,最後對被允許啟動的應用進行保護標誌位的設置,以表示該應用處於啟動或運行狀態。 該保護標誌位的設置也是系統在下一個應用啟動時,是否進行識別和攔截的依據。
[0043] 本發明的有益效果在於:
[0044] 1、在框架層的活動管理服務AMS中添加識別與攔截模塊,在需要保護的應用啟動 時阻止任何非系統應用以及非保護應用的啟動,解決了在因應用層無法幹涉AMS流程而導 致無法攔截釣魚應用的問題,這樣,當用戶在使用應用時不會有惡意應用彈出,不必擔心會 突然彈出類似於該應用的界面而造成信息洩露;
[0045] 2、用戶可根據自身的不同需求設置不同應用的保護等級,從而實現多種級別的保 護方案,有效的保證了用戶在使用手機時的安全。

【專利附圖】

【附圖說明】
[0046] 圖1為Android系統中AMS啟動Activity流程示意圖;
[0047] 圖2為本發明中啟動應用時的實施流程示意圖;
[0048] 圖3為本發明中退出應用時的實施流程示意圖。

【具體實施方式】
[0049] 以下將結合附圖對本發明作進一步的描述,需要說明的是,本實施例以本技術方 案為前提,給出了詳細的實施步驟和具體的操作方法,但本發明的保護範圍並不限於本實 施例。
[0050] 在安卓平臺中,所有應用的啟動是由框架層的活動管理服務AMS負責,應用層無 權限幹涉AMS的流程。一種安卓平臺釣魚攻擊的解決方法,就是在AMS中設置識別與攔截 模塊。具體包括如下過程:
[0051] 用戶根據應用的安全敏感程度,將手機中除系統應用外的應用分為三類:第一類 受保護應用、第二類受保護應用以及第三類應用,並將前兩類分別存儲於AMS內部數據類 型為鍊表的成員變量mFirstProApp,mSecondProApp之中,其分別代表第一類受保護應用 以及第二類受保護應用包名,同時根據應用的所屬類別設置對應保護標誌位,其中第一類 受保護應用的標誌位為fFlag,第二類受保護應用的保護標誌位為sFlag,系統應用的保護 標誌位為SysFlag,第三類應用為dFlag,所述保護標誌位用於描述應用的類別。
[0052] 在實現中,考慮到不同類應用的安全敏感級別,例如對於支付寶、銀行客戶端等支 付類應用重要性相比微信,微博等社交類應用要高,因此通常建議第一類保護應用為支付 類應用(例如支付寶,銀行客戶端等,設置等級為1),第二類保護應用為社交類應用(例如 微信,微博等,設置等級為2)。
[0053] 用戶啟動某應用時,由AMS開啟識別與攔截模塊;
[0054] 圖2描述了在框架層的AMS設置了識別與攔截模塊後,對於四類不同級別應用 (系統應用、第一類受保護應用、第二類受保護應用以及第三類應用)啟動時的流程,具體 包括如下過程:
[0055] 1)AMS內部根據第一類受保護應用的保護標誌位fFlag來判斷是否已經開啟第一 類受保護應用,若fFlag為true,表明當前已開啟保護第一類受保護應用,則執行步驟3), 否則執行步驟2);
[0056] 2)AMS內部根據第二類受保護應用的保護標誌位sFlag來判斷是否已經開啟第二 類受保護應用,若sFlag為true,表明已開啟保護第二類受保護應用,則執行步驟4),否則 執行步驟5);
[0057] 3)AMS根據成員變量mFirstProApp中存儲的包名來檢測所要開啟的應用是否屬 於系統應用或者第一類受保護應用,其中mFirstProApp為AMS內部數據類型為鍊表的成員 變量,用於存儲第一類受保護應用,代表第一類受保護應用的包名:如果是,則允許啟動,並 執行步驟5),否則,向Instrumentation拋出異常,並由Instrumentation將此異常拋給所 要開啟的應用,禁止其啟動;
[0058] 4)AMS根據成員變量mFirstProApp、mSecondProApp中存儲的包名來檢測當前開 啟的應用是否屬於系統應用或第一、二類受保護應用,其中mSecondProApp為AMS內部數據 類型為鍊表的成員變量,用於存儲第二類受保護應用,代表第二類受保護應用的包名:如果 是,貝 1J允許啟動,並執行步驟5),否則向Instrumentation拋出異常,並由Instrumentation 將此異常拋給所要開啟的應用,禁止其啟動。
[0059] 5)查看被允許啟動應用是否為系統應用,如果是,則設置其保護標誌位SysFlag =true;否則執行步驟6);
[0060] 6)查看被允許啟動應用是否為第一類保護應用,如果是,設置其保護標誌位 fFlag=true 、 1 ,並將應用包名添加至AMS內部mFirstStartProApp中,mFirstStartProApp sbJag=TaLse 為鍊表,用於存儲已經啟動的第一類受保護應用包名;否則執行步驟7);
[0061] 7)查看被允許啟動應用是否為第二類保護應用,如果是,設置其保護標誌位sFlag =true,並將應用包名添加至AMS內部mSecondStartProApp中,mSecondStartProApp為鏈 表,用於存儲已經啟動的第二類受保護應用包名;否則執行步驟8);
[0062] 8)確定所啟動應用為第三類應用,並設置保護標誌位dFlag=false。
[0063] 而對於之後所啟動的任一應用,均對其需要執行上述8個步驟,以防止在需要保 護的應用運行時,釣魚應用被允許啟動並彈出高仿界面,導致用戶的信息洩露。
[0064] 如圖3所示,當用戶退出應用時,則需要重置其保護標誌位,AMS根據當前保護標 志位來判斷是否需要開啟監控。具體步驟如下所示:
[0065] (I)AMS首先判斷退出的應用是否為系統應用,如果是則重置系統保護標誌位 SysFlag=false,否則執行步驟(2);
[0066] (2)AMS根據存儲第一類受保護應用和第二類受保護應用包名的成員變量 mFirstProApp以及mSecondProApp判斷所要退出的應用是否為受保護應用,如果是,則執 行步驟(3),否則重置第三類應用保護標誌位dFlag=false;
[0067] (3)AMS掃描內部變量mFocusStack中保存的Task,查看是否所要退出的應用所屬 的Task是否存在,若不存在則表明所要退出的應用進程已真正退出,執行步驟(4);
[0068] (4)掃描並檢測所要退出的應用所屬受保護應用類別,若為第一類受保護應用,則 執行步驟(5),否則執行步驟(6);
[0069](5),掃描AMS內部數據結構mFirstStartProApp確認第一類受保護應用是否完全 退出,如果是,重置第一類受保護應用的保護標誌位fFlag = false ;
[0070] (6),掃描AMS內部數據結構mSecondStartProApp確認第二類受保護應用是否完 全退出,如果是,重置第二類受保護應用的保護標誌位sFlag = false。
[0071] 可行性測試分析:
[0072] 根據釣魚攻擊的原理,編寫針對支付寶與微博的釣魚應用,分別在不同機型系統 上做釣魚攻擊測試。測試結果如表1所示:
[0073] 表 1
[0074]

【權利要求】
1. 一種安卓平臺釣魚攻擊的解決方法,其特徵在於,所述方法包括如下步驟: 步驟1,用戶根據應用的安全敏感程度,將手機中除系統應用外的受保護應用分為第一 類受保護應用和第二類受保護應用並存儲在框架層的活動管理服務AMS內部,除此之外, 餘下的應用默認為第三類應用;然後根據應用的所屬類別設置對應的保護標誌位,用於描 述應用的類別; 步驟2,在開啟某應用時,由AMS內部首先根據保護標誌位判斷當前是否已經開啟了受 保護應用,並據此判斷是否允許所要開啟的應用啟動:如果當前開啟了第一類受保護應用, 則只有當所要開啟的應用為系統應用或第一類受保護應用時才允許啟動並執行步驟3,否 則禁止其啟動;如果當前開啟了第二類受保護應用,則只有當所要開啟的應用為系統應用、 第一類受保護應用或第二類受保護應用時才允許啟動並執行步驟3,否則禁止其啟動;如 果當前沒有開啟受保護應用,則允許所要開啟的應用啟動並執行步驟3; 步驟3,對被允許啟動的應用的保護標誌位進行設置,以表示該應用現處於啟動狀態。
2. 根據權利要求1所述的一種安卓平臺釣魚攻擊的解決方法,其特徵在於,所述步驟1 的具體過程為: 步驟1. 1,用戶根據應用的安全敏感程度,將手機中除系統應用外的受保護應用分為第 一類受保護應用和第二類受保護應用,除此之外,餘下的應用默認為第三類應用; 步驟1. 2,將第一類受保護應用和第二類受保護應用分別存儲於框架層活動管理服務 (AMS)內部數據類型為鍊表的成員變量mFirstProApp、mSecondProApp之中,其分別代表第 一類受保護應用以及第二類受保護應用包名; 步驟1. 3,根據應用的所屬類別設置對應保護標誌位,其中第一類受保護應用的標誌位 為fFlag,第二類受保護應用的保護標誌位為sFlag,第三類應用為dFlag,系統應用的保護 標誌位為SysFlag,所述保護標誌位用於描述應用的類別。
3. 根據權利要求1所述的一種安卓平臺釣魚攻擊的解決方法,其特徵在於,步驟2的具 體過程如下: 步驟2. I,AMS內部根據第一類受保護應用的保護標誌位fFlag來判斷是否已經開啟第 一類受保護應用,若fFlag為true,表明當前已開啟保護第一類受保護應用,則執行2. 3,否 則執行步驟2. 2 ; 步驟2. 2,AMS內部根據第二類受保護應用的保護標誌位sFlag來判斷是否已經開啟第 二類受保護應用,若sFlag為true,表明已開啟保護第二類受保護應用,則執行步驟2. 4,否 則執行步驟3 ; 步驟2. 3, AMS根據成員變量mFirstProApp中存儲的包名來檢測所要開啟的應用是否 屬於系統應用或者第一類受保護應用,其中mFirstProApp為AMS內部數據類型為鍊表的 成員變量,用於存儲第一類受保護應用包名,如果是,則允許啟動,並執行步驟3,否則,向 Instrumentation拋出異常,並由Instrumentation將此異常拋給所要開啟的應用,禁止其 啟動; 步驟2. 4, AMS根據成員變量mFirstProApp、mSecondProApp中存儲的包名來檢測當前 開啟的應用是否屬於系統應用或第一、二類受保護應用,其中mSecondProApp為AMS內部數 據類型為鍊表的成員變量,用於存儲第二類受保護應用包名,如果是,則允許啟動,並執行 步驟3,否則向Instrumentation拋出異常,並由Instrumentation將此異常拋給所要開啟 的應用,禁止其啟動。
4. 根據權利要求1所述的一種安卓平臺釣魚攻擊的解決方法,其特徵在於,步驟3的具 體過程如下: 步驟3. 1,查看被允許啟動應用是否為系統應用,如果是,則設置其保護標誌位 SysFlag = true,否則執行步驟3. 2 ; 步驟3. 2,查看被允許啟動應用是否為第一類受保護應用,如果是,設置其保護標誌位 fFlag = true ,並將應用包名添加至 AMS 內部 mFirstStartProApp 中,mFirstStartProApp sFlag = false 為鍊表,用於存儲已經啟動的第一類受保護應用包名;否則執行步驟3. 3 ; 步驟3. 3,查看被允許啟動應用是否為第二類受保護應用,如果是,設置其保護標誌位 sFlag = true,並將應用包名添加至AMS 內部mSecondStartProApp 中,mSecondStartProApp 為鍊表,用於存儲已經啟動的第二類受保護應用包名;否則執行步驟3. 4 ; 步驟3. 4,確定所啟動應用為第三類應用,並設置保護標誌位dFlag = false。
5. 根據權利要求1-4任一所述的一種安卓平臺釣魚攻擊的解決方法,其特徵在於,所 述方法還包括如下步驟4,所述步驟4在需要退出某一應用時實施: 步驟4. 1,AMS首先判斷退出的應用是否為系統應用,如果是則重置系統保護標誌位 SysFlag = false,否則執行步驟4. 2 ; 步驟4. 2, AMS根據存儲第一類受保護應用和第二類受保護應用包名的成員變量 mFirstProApp以及mSecondProApp判斷所要退出的應用是否為受保護應用,如果是,則執 行步驟4. 3,否則重置第三類應用保護標誌位dFlag = false ; 步驟4. 3, AMS掃描內部變量mFocusStack中保存的Task,查看是否所要退出的應用所 屬的Task是否存在,若不存在則表明所要退出的應用進程已真正退出,執行步驟4. 4 ; 步驟4. 4,掃描並檢測所要退出的應用所屬受保護應用類別,若為第一類受保護應用, 則執行步驟4. 5,否則執行步驟4. 6 ; 步驟4. 5,掃描AMS內部數據結構mFirstStartProApp確認第一類受保護應用是否完全 退出,如果是,重置第一類受保護應用的保護標誌位fFlag = false ; 步驟4. 6,掃描AMS內部數據結構mSecondStartProApp確認第二類受保護應用是否完 全退出,如果是,重置第二類受保護應用的保護標誌位sFlag = false。
【文檔編號】G06F21/51GK104361281SQ201410653088
【公開日】2015年2月18日 申請日期:2014年11月17日 優先權日:2014年11月17日
【發明者】李興華, 薛飛潔, 李鑫, 王濤, 張樹超, 馬建峰 申請人:西安電子科技大學

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀