意圖指令的處理方法及移動終端的制作方法
【專利摘要】本發(fā)明實施例涉及移動通信技術(shù)領(lǐng)域,公開了一種意圖指令的處理方法,應(yīng)用于移動終端,包括:獲取第一意圖指令信息和發(fā)送第一意圖指令信息的發(fā)起應(yīng)用程序的信息,根據(jù)第一意圖指令信息和發(fā)起應(yīng)用程序的信息,判斷執(zhí)行第一意圖指令目標(biāo)組件是否為發(fā)起應(yīng)用程序的內(nèi)部組件,若目標(biāo)組件不是發(fā)起應(yīng)用程序的內(nèi)部組件,則根據(jù)發(fā)起應(yīng)用程序?qū)δ繕?biāo)組件發(fā)送意圖指令的時間間隔,判斷發(fā)起應(yīng)用程序?qū)δ繕?biāo)組件是否存在攻擊行為。本發(fā)明另一方面公開了一種移動終端,按上述方法進行攔截。本發(fā)明解決了現(xiàn)有技術(shù)中因遭受Intent攻擊導(dǎo)致應(yīng)用程序崩潰以及因防御Intent攻擊導(dǎo)致占用太多資源的問題。
【專利說明】
意圖指令的處理方法及移動終端
技術(shù)領(lǐng)域
[0001]本發(fā)明涉及移動通信技術(shù)領(lǐng)域,尤其是一種意圖指令的處理方法及移動終端。
【背景技術(shù)】
[0002]在現(xiàn)有技術(shù)中,安卓操作系統(tǒng)(Android)提供了Activity(活動)、Service(服務(wù))和Broadcast Receiver(廣播接收器)等組件,并提供了意圖(Intent,傳遞信息的數(shù)據(jù)結(jié)構(gòu))機制來協(xié)助應(yīng)用間的交互與通訊。作為不同組件之間通信專門提供組件、互相調(diào)用的相關(guān)信息的“媒介”,Intent負(fù)責(zé)對應(yīng)用程序中一次操作的動作、動作涉及數(shù)據(jù)、附加數(shù)據(jù)進行描述,Android系統(tǒng)則根據(jù)此Intent的描述,負(fù)責(zé)找到對應(yīng)的組件,將Intent傳遞給被調(diào)用的組件,并完成組件的調(diào)用。Android的應(yīng)用程序在本地拒絕服務(wù),是由于應(yīng)用程序沒有對Intent.getXXXEXtra()(該方法用來獲取Intent中攜帶的XXX類型數(shù)據(jù))獲取的異?;蛘呋螖?shù)據(jù)進行異常捕獲和處理,從而導(dǎo)致攻擊者可通過向受害方應(yīng)用程序發(fā)送此類空數(shù)據(jù)、異?;蛘呋螖?shù)據(jù)來達到使該應(yīng)用程序crash(崩潰)的目的,簡單的說就是攻擊者進行Intent攻擊,通過Intent發(fā)送空數(shù)據(jù)、異?;蚧螖?shù)據(jù)給受害方應(yīng)用程序,導(dǎo)致其崩潰。Intent攻擊不僅可以導(dǎo)致安全防護應(yīng)用程序(如殺毒應(yīng)用、安全衛(wèi)士、防盜鎖屏等)的防護功能被繞過或失效,而且也可被競爭方的應(yīng)用程序攻擊,使得受害方的應(yīng)用程序崩潰,給用戶造成不同程度的經(jīng)濟利益損失。
[0003]Intent攻擊的情況有如下幾種:
[0004]I)空指針異常攻擊:Nul IPointerExcept 1n (java中的異常類型)異常導(dǎo)致的拒絕服務(wù),是由于應(yīng)用程序沒有對getAct1nO (該方法獲取Intent中攜帶的動作數(shù)據(jù),是一個字符串)等獲取到的數(shù)據(jù)進行空指針判斷,從而導(dǎo)致空指針異常而導(dǎo)致應(yīng)用程序崩潰。
[0005]2)類型轉(zhuǎn)換異常攻擊:ClassCastExcept 1n (java中的異常類型)異常導(dǎo)致的拒絕服務(wù),是由于應(yīng)用程序沒有對getSerializableExtraO(該方法獲取Intent中攜帶的序列化數(shù)據(jù))等獲取到的數(shù)據(jù)進行類型判斷而進行強制類型轉(zhuǎn)換,從而導(dǎo)致類型轉(zhuǎn)換異常而導(dǎo)致應(yīng)用程序崩潰。
[0006]3)數(shù)組越界訪問異常攻擊:IndexOutOf BoundsExcept1n(java中的異常類型)異常導(dǎo)致的拒絕服務(wù),是由于應(yīng)用程序沒有對getIntegerArrayListExtra()(該方法獲取Intent中攜帶的數(shù)組類型的數(shù)據(jù))等獲取到的數(shù)據(jù)數(shù)組元素大小的判斷,從而導(dǎo)致數(shù)組訪問越界而導(dǎo)致應(yīng)用程序崩潰。
[0007]4)類未定義異常攻擊:ClassNotFoundExcept 1n (java中的異常類型)異常導(dǎo)致的拒絕服務(wù),是由于應(yīng)用程序沒有找到從getSerializableExtra()獲取到的序列化類對象的類定義,因此發(fā)生類未定義的異常而導(dǎo)致應(yīng)用程序崩潰。
[0008]5)其他異常攻擊。
[0009]傳統(tǒng)應(yīng)對這些Intent攻擊的方法,往往是在處理通過Intent.getXXXExtra()獲取的數(shù)據(jù)時進行相應(yīng)判斷,以及用try catch( java中的一種異常捕獲方式)方式捕獲所有異常,以防止應(yīng)用程序受到攻擊而崩潰。然而,使用try catch的防范方式仍然存在不足:雖然能夠防范Intent攻擊,但是需要大量分析判斷,消耗資源;如果頻繁遭到攻擊,也會導(dǎo)致應(yīng)用程序拒絕服務(wù)。
【發(fā)明內(nèi)容】
[0010]本發(fā)明提供了一種意圖指令的處理方法,用以解決現(xiàn)有技術(shù)中因遭受Intent攻擊導(dǎo)致應(yīng)用程序崩潰以及因防御Intent攻擊導(dǎo)致占用太多資源的問題。
[0011]本發(fā)明實施例一方面提供一種意圖指令的處理方法,應(yīng)用于移動終端,包括以下步驟:
[0012]獲取第一意圖指令信息和發(fā)送所述第一意圖指令信息的發(fā)起應(yīng)用程序的信息;
[0013]根據(jù)所述第一意圖指令信息和所述發(fā)起應(yīng)用程序的信息,判斷執(zhí)行所述第一意圖指令的目標(biāo)組件是否為所述發(fā)起應(yīng)用程序的內(nèi)部組件;若是,放行所述第一意圖指令信息;
[0014]若所述目標(biāo)組件不是所述發(fā)起應(yīng)用程序的內(nèi)部組件,則根據(jù)所述發(fā)起應(yīng)用程序?qū)λ瞿繕?biāo)組件發(fā)送意圖指令的時間間隔,判斷所述發(fā)起應(yīng)用程序?qū)λ瞿繕?biāo)組件是否存在攻擊行為;若否,放行所述第一意圖指令信息。
[0015]另一方面,本發(fā)明實施例還提供了一種移動終端,包括:
[0016]第一獲取模塊,用于獲取第一意圖指令信息和發(fā)送所述第一意圖指令信息的發(fā)起應(yīng)用程序的信息;
[0017]第一判斷模塊,用于根據(jù)所述第一意圖指令信息和所述發(fā)起應(yīng)用程序的信息,判斷執(zhí)行所述第一意圖指令的目標(biāo)組件是否為所述發(fā)起應(yīng)用程序的內(nèi)部組件;若是,放行所述第一意圖指令信息;
[0018]第二判斷模塊,用于若所述目標(biāo)組件不是所述發(fā)起應(yīng)用程序的內(nèi)部組件,則根據(jù)所述發(fā)起應(yīng)用程序?qū)λ瞿繕?biāo)組件發(fā)送意圖指令的時間間隔,判斷所述發(fā)起應(yīng)用程序?qū)λ瞿繕?biāo)組件是否存在攻擊行為;若否,放行所述第一意圖指令信息。
[0019]本發(fā)明實施例提供的意圖指令的處理方法,通過獲取第一意圖指令信息和發(fā)送所述第一意圖指令信息的發(fā)起應(yīng)用程序的信息,根據(jù)所述第一意圖指令信息和所述發(fā)起應(yīng)用程序的信息,判斷執(zhí)行所述第一意圖指令的目標(biāo)組件是否為所述發(fā)起應(yīng)用程序的內(nèi)部組件,若所述目標(biāo)組件不是所述發(fā)起應(yīng)用程序的內(nèi)部組件,則根據(jù)所述發(fā)起應(yīng)用程序?qū)λ瞿繕?biāo)組件發(fā)送意圖指令的時間間隔,判斷所述發(fā)起應(yīng)用程序?qū)λ瞿繕?biāo)組件是否存在攻擊行為,實現(xiàn)在消耗少量資源的前提下起到有效防御的作用,可防止應(yīng)用程序因Intent攻擊發(fā)生異常而使用戶遭受不必要的損失,同時還起到節(jié)省電量和提高用戶體驗的作用。
【附圖說明】
[0020]為了更清楚地說明本發(fā)明實施例中的技術(shù)方案,下面將對實施例描述中所需要使用的附圖作簡單地介紹,下面描述中的附圖僅僅是本發(fā)明的一些實施例的附圖,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0021]圖1是本發(fā)明的意圖指令的處理方法的第一實施例的流程示意圖;
[0022]圖2是本發(fā)明的意圖指令的處理方法的第二實施例的流程示意圖;
[0023]圖3是本發(fā)明的移動終端的第一實施例的結(jié)構(gòu)示意圖;
[0024]圖4是本發(fā)明的移動終端的第二實施例的結(jié)構(gòu)示意圖;
[0025]圖5是本發(fā)明的移動終端的第三實施例的結(jié)構(gòu)示意圖。
【具體實施方式】
[0026]為了使本發(fā)明所解決的技術(shù)問題、技術(shù)方案及有益效果更加清楚明白,以下結(jié)合附圖及實施例,對本發(fā)明進行進一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
[0027]如圖1所示,是本發(fā)明的意圖指令的處理方法的第一實施例的流程示意圖。該方法應(yīng)用于移動終端,該方法包括S101-S103:
[0028]SlOl,獲取第一意圖指令信息和發(fā)送第一意圖指令信息的發(fā)起應(yīng)用程序的信息。
[0029]在本步驟中,當(dāng)接收到應(yīng)用程序中StartActivity(啟動活動),SendBroadcast(發(fā)送一個廣播),StartService(啟動服務(wù))等組件的第一意圖指令信息時,獲取該第一意圖指令信息和發(fā)送該第一意圖指令信息的發(fā)起應(yīng)用程序的信息。其中,第一意圖指令信息包括操作的動作、動作涉及數(shù)據(jù)和附加數(shù)據(jù)的描述信息;發(fā)起應(yīng)用程序的信息包括該發(fā)起應(yīng)用程序的包名等信息。
[0030]S102,根據(jù)第一意圖指令信息和發(fā)起應(yīng)用程序的信息,判斷執(zhí)行第一意圖指令的目標(biāo)組件是否為發(fā)起應(yīng)用程序的內(nèi)部組件;若是,放行第一意圖指令信息。
[0031]在本實施例中,由于第一意圖指令信息中包含目標(biāo)組件的信息,通過比對發(fā)起應(yīng)用程序的包名等信息和執(zhí)行該第一意圖指令的目標(biāo)組件的信息,便可判斷該目標(biāo)組件是不是該發(fā)起應(yīng)用程序的內(nèi)部組件。如果該目標(biāo)組件是該發(fā)起應(yīng)用程序的內(nèi)部組件,即該第一意圖指令信息用于應(yīng)用程序的內(nèi)部組件調(diào)用,不存在Intent攻擊的可能,此時放行該第一意圖指令信息。
[0032]其中,明確指定目標(biāo)組件名的Intent為顯式意圖(Explicit Intents),顯式意圖的目標(biāo)組件不需要解析即可得到;而沒有明確指定目標(biāo)組件名的Intent為隱式意圖(Implicit Intents),隱式意圖需要進一步解析才能得到其目標(biāo)組件。
[0033]S103,若目標(biāo)組件不是發(fā)起應(yīng)用程序的內(nèi)部組件,則根據(jù)發(fā)起應(yīng)用程序?qū)δ繕?biāo)組件發(fā)送意圖指令的時間間隔,判斷發(fā)起應(yīng)用程序?qū)δ繕?biāo)組件是否存在攻擊行為;若否,放行第一意圖指令信息。
[0034]在本實施例中,當(dāng)該目標(biāo)組件不是該發(fā)起應(yīng)用程序的內(nèi)部組件,則通過發(fā)起應(yīng)用程序?qū)δ繕?biāo)組件發(fā)送意圖指令的時間間隔,來判斷該發(fā)起應(yīng)用程序?qū)υ撃繕?biāo)組件是否存在攻擊行為。發(fā)起應(yīng)用程序?qū)δ繕?biāo)組件發(fā)送意圖指令的時間間隔短,則存在攻擊的可能性,且其頻繁發(fā)送到指令可能會導(dǎo)致目標(biāo)組件所在的應(yīng)用程序崩潰。因此也可以通過檢測在一段時間內(nèi)同一發(fā)起應(yīng)用程序調(diào)用另一應(yīng)用程序的組件(包括StartActivity(啟動活動),sendBroadcast(發(fā)送一個廣播),startService (啟動服務(wù)))的次數(shù),來主動識別該發(fā)起應(yīng)用程序是否存在攻擊行為,當(dāng)該發(fā)起應(yīng)用程序發(fā)送意圖指令的時間間隔過短(如小于預(yù)設(shè)值等),則阻止該發(fā)起應(yīng)用程序的發(fā)送到意圖指令信息,起到防范Intent攻擊的作用。
[0035]本發(fā)明實施例提供的意圖指令的處理方法,通過獲取第一意圖指令信息和發(fā)送第一意圖指令信息的發(fā)起應(yīng)用程序的信息,根據(jù)第一意圖指令信息和發(fā)起應(yīng)用程序的信息,判斷執(zhí)行第一意圖指令的目標(biāo)組件是否為發(fā)起應(yīng)用程序的內(nèi)部組件,若目標(biāo)組件不是發(fā)起應(yīng)用程序的內(nèi)部組件,則根據(jù)發(fā)起應(yīng)用程序?qū)δ繕?biāo)組件發(fā)送意圖指令的時間間隔,判斷發(fā)起應(yīng)用程序?qū)δ繕?biāo)組件是否存在攻擊行為,實現(xiàn)在消耗少量資源的前提下起到有效防御的作用,可防止應(yīng)用程序因Intent攻擊發(fā)生異常而使用戶遭受不必要的損失,同時還起到節(jié)省電量和提高用戶體驗的作用。
[0036]如圖2所示,是本發(fā)明的意圖指令的處理方法的第二實施例的流程示意圖。該方法應(yīng)用于移動終端,該方法包括S201-S213:
[0037]S201,獲取第一意圖指令信息和發(fā)送第一意圖指令信息的發(fā)起應(yīng)用程序的信息。
[0038]S201與本發(fā)明實施例的意圖指令信息的方法的第一實施例的相應(yīng)步驟相同,此處不再贅述。
[0039]S202,獲取目標(biāo)組件的應(yīng)用禁行名單。
[0040]在本實施例中,應(yīng)用禁行名單可由服務(wù)器設(shè)定或分析獲得,并發(fā)放至移動終端本地。該應(yīng)用禁行名單可以包括競爭方的應(yīng)用程序包名以及其他可能存在攻擊行為的應(yīng)用程序包名。
[0041]S203,根據(jù)發(fā)起應(yīng)用程序的包名信息和應(yīng)用通行名單,判斷發(fā)起應(yīng)用程序是否在應(yīng)用禁行名單中。
[0042]在本步驟中,比對發(fā)起應(yīng)用程序的包名信息是否存在于該應(yīng)用禁行名單中。
[0043]S204,若是,阻止第一意圖指令信息;若否,則進行下一步。
[0044]在本步驟中,若該發(fā)起應(yīng)用程序在應(yīng)用禁行名單中,則攔截其發(fā)送的第一意圖指令信息,以防范其攻擊行為;若該發(fā)起應(yīng)用程序不在應(yīng)用禁行名單中,則需要進一步判斷是否應(yīng)當(dāng)攔截該第一意圖指令信息。
[0045]S205,獲取目標(biāo)組件的應(yīng)用通行名單。
[0046]在本步驟中,當(dāng)發(fā)起應(yīng)用程序的包名不存在于目標(biāo)組件的應(yīng)用禁行名單之中,則進一步獲取該目標(biāo)組件的應(yīng)用通行名單。在本實施例中,應(yīng)用通行名單可由服務(wù)器設(shè)定或分析獲得,并發(fā)放至移動終端本地。該應(yīng)用通行名單可以包括同一出品方的應(yīng)用程序包名以及其他可能不存在攻擊行為的應(yīng)用程序包名。
[0047]S206,根據(jù)發(fā)起應(yīng)用程序的包名信息和應(yīng)用通行名單,判斷發(fā)起應(yīng)用程序是否在應(yīng)用通行名單中。
[0048]在本步驟中,比對發(fā)起應(yīng)用程序的包名信息是否存在于該應(yīng)用通行名單中。
[0049]S207,若是,放行第一意圖指令信息;若否,則進行下一步。
[0050]在本步驟中,若該發(fā)起應(yīng)用程序在應(yīng)用通行名單中,則該發(fā)起應(yīng)用程序默認(rèn)為友好的應(yīng)用程序,放行其發(fā)送的第一意圖指令信息;若該發(fā)起應(yīng)用程序不在應(yīng)用通行名單中,則需要進一步判斷是否應(yīng)當(dāng)攔截該第一意圖指令信息。
[0051]S208,解析第一意圖指令信息,得到目標(biāo)組件所屬的目標(biāo)應(yīng)用程序的包名信息。
[0052]在本步驟中,通過解析該第一意圖指令信息可以得到其目標(biāo)組件的目標(biāo)應(yīng)用程序的包名信息。具體地,沒有明確指定目標(biāo)組件名的Intent為隱式意圖(Implicit Intents),此時需要根據(jù)隱式意圖中設(shè)置的動作(act1n)、類別(category)、數(shù)據(jù)URI等來匹配最合適的組件作為目標(biāo)組件。已知地,Intent的Compent屬性指定Intent的的目標(biāo)組件的類名稱。通常Android會根據(jù)Intent中包含的其它屬性的信息,比如act 1n、data/type、category進行查找,最終找到與之匹配的目標(biāo)組件和給目標(biāo)組件所屬的目標(biāo)應(yīng)用程序的包名信息。
[0053]S209,比對發(fā)起應(yīng)用程序的包名信息和目標(biāo)應(yīng)用程序的包名信息,若發(fā)起應(yīng)用程序的包名信息和目標(biāo)應(yīng)用程序的包名信息相同,放行第一意圖指令信息。
[0054]在本步驟中,由于應(yīng)用程序的包名具有唯一性,通過比對發(fā)起應(yīng)用程序的包名信息和目標(biāo)應(yīng)用程序的包名信息,由兩者的包名信息是否相同可以判斷目標(biāo)組件是不是發(fā)起應(yīng)用的內(nèi)部組件。例如:發(fā)起方:com.app.0ffice(包名)、MainActivity(組件名);目標(biāo)方:com.app.0ffice(包名),OpenFileActivity(組件名),包名相同,所以是內(nèi)部組件間的啟動過程。
[0055]如果發(fā)起應(yīng)用程序的包名信息和目標(biāo)應(yīng)用程序的包名信息相同,可斷定該目標(biāo)組件為該發(fā)起應(yīng)用程序的內(nèi)部組件,則該第一意圖指令信息用于應(yīng)用程序的內(nèi)部通信,應(yīng)放行該第一意圖指令信息。
[0056]S210,若目標(biāo)組件不是發(fā)起應(yīng)用程序的內(nèi)部組件,獲取發(fā)起應(yīng)用程序發(fā)送第一意圖指令信息和發(fā)送第二意圖指令信息的時間間隔。
[0057]在本步驟中,若判斷出該目標(biāo)組件不屬于該發(fā)起應(yīng)用程序的內(nèi)部組件,則需要進一步檢測該發(fā)起應(yīng)用程序?qū)υ撃繕?biāo)組件發(fā)送意圖指令的時間間隔,具體為獲取發(fā)起應(yīng)用程序發(fā)送第一意圖指令信息和發(fā)送第二意圖指令信息的時間間隔。
[0058]本實施例中,“第一”和“第二”不作為發(fā)生先后次序的區(qū)分。
[0059]為方便該時間間隔的獲取,優(yōu)選地,第二意圖指令信息可以是第一意圖指令信息的前一條意圖指令信息。
[0060]S211,比對所述時間間隔和預(yù)設(shè)時間閾值,若所述時間間隔大于所述預(yù)設(shè)時間閾值,放行所述第一意圖指令信息。
[0061]在本步驟中,獲取到發(fā)起應(yīng)用程序發(fā)送第一意圖指令信息和第二意圖指令信息的時間間隔后,則將該時間間隔和預(yù)設(shè)時間閾值進行對比。該預(yù)設(shè)時間閾值可由存在攻擊行為的應(yīng)用程序的攻擊頻率得到,也可根據(jù)目標(biāo)組件的處理速度得到,以確保目標(biāo)組件不因無法響應(yīng)過多的意圖指令而令其所在的應(yīng)用程序出現(xiàn)崩潰的情況。如可將該時間間隔設(shè)定為3S,作為保護目標(biāo)組件的底線。如果發(fā)起應(yīng)用程序發(fā)送第一意圖指令信息和第二意圖指令信息的時間間隔大于預(yù)設(shè)時間閾值,比如該時間間隔超過3S,則可判斷出該發(fā)起應(yīng)用程序?qū)δ繕?biāo)組件不存在攻擊行為,放行其發(fā)送的第一意圖指令信息。
[0062]S212,若所述時間間隔小于所述預(yù)設(shè)時間閾值,則發(fā)出是否放行所述第一意圖指令信息的提示。
[0063]在本步驟中,如果發(fā)起應(yīng)用程序發(fā)送第一意圖指令信息和第二意圖指令信息的時間間隔小于預(yù)設(shè)時間閾值,如該時間間隔小于3S,則可判斷出該發(fā)起應(yīng)用程序?qū)δ繕?biāo)組件可能存在攻擊行為,此時需要發(fā)出是否放行第一意圖指令信息的提示,使用戶收到該提示后下達是否放行該第一意圖指令信息的操作指令。如用戶確實在利用發(fā)起應(yīng)用程序?qū)δ繕?biāo)組件進行調(diào)用,則可下達放行的操作指令,使系統(tǒng)可以順利通過意圖指令調(diào)用目標(biāo)組件;反之亦然。
[0064]S213,將發(fā)起應(yīng)用程序的信息發(fā)送至服務(wù)器,以使服務(wù)器分析發(fā)起應(yīng)用程序的信息,并根據(jù)分析結(jié)果更新應(yīng)用通行名單或應(yīng)用禁行名單。
[0065]在本實施例中,當(dāng)判斷出是否攔截該第一意圖指令信息后,還可將該發(fā)起應(yīng)用程序的信息發(fā)送至服務(wù)器,該服務(wù)器可綜合各個移動終端的數(shù)據(jù),通過分析這些發(fā)起應(yīng)用程序的包名和發(fā)送意圖指令的時間間隔來判定是否需要更新應(yīng)用通行名單或應(yīng)用禁行名單。如當(dāng)分析出同一包名的發(fā)起應(yīng)用程序發(fā)送意圖指令的時間間隔過短,則可在應(yīng)用禁行名單中添加該包名,或者從應(yīng)用通行名單中將該包名刪除。
[0066]本發(fā)明實施例提供的意圖指令的處理方法,通過以應(yīng)用禁行名單攔截已知的存在攻擊行為的發(fā)起應(yīng)用程序,以應(yīng)用通行名單放行已知的友好的發(fā)起應(yīng)用程序,在進行內(nèi)部組件判斷和時間間隔判斷之前先對該第一意圖指令信息進行簡單過濾,進一步減輕了系統(tǒng)負(fù)荷和提高了攔截判斷的準(zhǔn)確度;通過比對目標(biāo)應(yīng)用程序的包名和發(fā)起應(yīng)用程序的包名可快速判斷出目標(biāo)組件是否為發(fā)起應(yīng)用程序的內(nèi)部組件;通過獲取該發(fā)起應(yīng)用程序?qū)υ撃繕?biāo)組件發(fā)送的相鄰兩次意圖指令的時間間隔,并以該時間間隔和預(yù)設(shè)時間閾值對比來判斷發(fā)起應(yīng)用程序?qū)δ繕?biāo)組件是否存在攻擊行為,實現(xiàn)在消耗少量資源的前提下起到有效防御的作用,可防止應(yīng)用程序因Intent攻擊發(fā)生異常而使用戶遭受不必要的損失,同時還起到節(jié)省電量和提高用戶體驗的作用。
[0067]上文對本發(fā)明移動終端的意圖信息的處理方法的實施例作了詳細(xì)介紹。下面將相應(yīng)于上述方法的裝置(即移動終端)作進一步闡述。其中,移動終端可以是帶有安卓系統(tǒng)的手機、平板電腦、可穿戴設(shè)備、MP3或MP4等。
[0068]如圖3所示,是本發(fā)明的移動終端的第一實施例的結(jié)構(gòu)示意圖。用于實現(xiàn)上述方法的第一實施例中的意圖指令的處理方法。移動終端100包括第一獲取模塊101、第一判斷模塊102和第二判斷模塊103。
[0069]其中,第一獲取模塊101,與第一判斷模塊102連接,用于獲取第一意圖指令信息和發(fā)送第一意圖指令信息的發(fā)起應(yīng)用程序的信息。
[0070]在本實施例中,當(dāng)接收到應(yīng)用程序中StartActivity(啟動活動),SendBroadcast(發(fā)送一個廣播),StartService(啟動服務(wù))等組件的第一意圖指令信息時,第一獲取模塊101獲取該第一意圖指令信息和發(fā)送該第一意圖指令信息的發(fā)起應(yīng)用程序的信息。其中,第一意圖指令信息包括操作的動作、動作涉及數(shù)據(jù)和附加數(shù)據(jù)的描述信息;發(fā)起應(yīng)用程序的信息包括該發(fā)起應(yīng)用程序的包名等信息。
[0071]第一判斷模塊102,與第二判斷模塊103連接,用于根據(jù)第一意圖指令信息和發(fā)起應(yīng)用程序的信息,判斷執(zhí)行第一意圖指令的目標(biāo)組件是否為發(fā)起應(yīng)用程序的內(nèi)部組件;若是,放行第一意圖指令信息。
[0072]在本實施例中,由于第一意圖指令信息中包含目標(biāo)組件的信息,第一判斷模塊102通過比對發(fā)起應(yīng)用程序的包名等信息和執(zhí)行第一意圖指令的目標(biāo)組件的信息,便可判斷該目標(biāo)組件是不是該發(fā)起應(yīng)用程序的內(nèi)部組件。如果該目標(biāo)組件是該發(fā)起應(yīng)用程序的內(nèi)部組件,即該第一意圖指令信息用于應(yīng)用程序的內(nèi)部組件調(diào)用,不存在Intent攻擊的可能,此時放行該第一意圖指令信息。
[0073]其中,明確指定目標(biāo)組件名的Intent為顯式意圖(Explicit Intents),顯式意圖的目標(biāo)組件不需要解析即可得到;而沒有明確指定目標(biāo)組件名的Intent為隱式意圖(Implicit Intents),隱式意圖需要進一步解析才能得到其目標(biāo)組件。
[0074]第二判斷模塊103,用于若第一判斷模塊判斷出目標(biāo)組件不是發(fā)起應(yīng)用程序的內(nèi)部組件,則根據(jù)發(fā)起應(yīng)用程序?qū)δ繕?biāo)組件發(fā)送意圖指令的時間間隔,判斷發(fā)起應(yīng)用程序?qū)δ繕?biāo)組件是否存在攻擊行為;若否,放行第一意圖指令信息。
[0075]在本實施例中,當(dāng)該目標(biāo)組件不是該發(fā)起應(yīng)用程序的內(nèi)部組件,則通過發(fā)起應(yīng)用程序?qū)δ繕?biāo)組件發(fā)送意圖指令的時間間隔,來判斷該發(fā)起應(yīng)用程序?qū)υ撃繕?biāo)組件是否存在攻擊行為。發(fā)起應(yīng)用程序?qū)δ繕?biāo)組件發(fā)送意圖指令的時間間隔短,則存在攻擊的可能性,且其頻繁發(fā)送到指令可能會導(dǎo)致目標(biāo)組件所在的應(yīng)用程序崩潰。因此也可以通過檢測在一段時間內(nèi)同一發(fā)起應(yīng)用程序調(diào)用另一應(yīng)用程序的組件(包括StartActivity(啟動活動),sendBroadcast(發(fā)送一個廣播),startService (啟動服務(wù)))的次數(shù),來主動識別該發(fā)起應(yīng)用程序是否存在攻擊行為,當(dāng)該發(fā)起應(yīng)用程序發(fā)送意圖指令的時間間隔過短(如小于預(yù)設(shè)值等),則阻止該發(fā)起應(yīng)用程序的發(fā)送到意圖指令信息,起到防范Intent攻擊的作用。
[0076]本發(fā)明實施例提供的移動終端,通過獲取第一意圖指令信息和發(fā)送第一意圖指令信息的發(fā)起應(yīng)用程序的信息,根據(jù)第一意圖指令信息和發(fā)起應(yīng)用程序的信息,判斷執(zhí)行第一意圖指令的目標(biāo)組件是否為發(fā)起應(yīng)用程序的內(nèi)部組件,若目標(biāo)組件不是發(fā)起應(yīng)用程序的內(nèi)部組件,則根據(jù)發(fā)起應(yīng)用程序?qū)δ繕?biāo)組件發(fā)送意圖指令的時間間隔,判斷發(fā)起應(yīng)用程序?qū)δ繕?biāo)組件是否存在攻擊行為,實現(xiàn)在消耗少量資源的前提下起到有效防御的作用,可防止應(yīng)用程序因Intent攻擊發(fā)生異常而使用戶遭受不必要的損失,同時還起到節(jié)省電量和提高用戶體驗的作用。
[0077]如圖4所示,是本發(fā)明的移動終端的第二實施例的結(jié)構(gòu)示意圖。用于實現(xiàn)上述方法的第二實施例中的意圖指令的處理方法。移動終端200包括第一獲取模塊201、第三獲取模塊202、第四判斷模塊203、阻止模塊204、第二獲取模塊205、第三判斷模塊206、放行模塊207、第一判斷模塊208、第二判斷模塊209和發(fā)送模塊210。
[0078]第一獲取模塊201,與第三獲取模塊202連接,用于獲取第一意圖指令信息和發(fā)送第一意圖指令信息的發(fā)起應(yīng)用程序的信息。
[0079]第一獲取模塊201與本發(fā)明實施例的移動終端的第一實施例的相應(yīng)模塊相同,此處不再贅述。
[0080]第三獲取模塊202,與第四判斷模塊203連接,用于通過服務(wù)器獲取目標(biāo)組件的應(yīng)用禁行名單。
[0081]在本實施例中,應(yīng)用禁行名單可由服務(wù)器設(shè)定或分析獲得,并發(fā)放至移動終端本地。該應(yīng)用禁行名單可以包括競爭方的應(yīng)用程序包名以及其他可能存在攻擊行為的應(yīng)用程序包名。
[0082]第四判斷模塊203,與阻止模塊204、第二獲取模塊205連接,用于根據(jù)發(fā)起應(yīng)用程序的包名信息和應(yīng)用通行名單,判斷發(fā)起應(yīng)用程序是否在應(yīng)用禁行名單中。
[0083]在本實施例中,第四判斷模塊203比對發(fā)起應(yīng)用程序的包名信息是否存在于該應(yīng)用禁行名單中。
[0084]阻止模塊204,用于阻止第一意圖指令信息。
[0085]在本實施例中,若該發(fā)起應(yīng)用程序在應(yīng)用禁行名單中,阻止模塊204則攔截其發(fā)送的第一意圖指令信息,以防范其攻擊行為;若該發(fā)起應(yīng)用程序不在應(yīng)用禁行名單中,則需要進一步判斷是否應(yīng)當(dāng)攔截該第一意圖指令信息。
[0086]第二獲取模塊205,與第三判斷模塊206連接,用于通過服務(wù)器獲取目標(biāo)組件的應(yīng)用通行名單。
[0087]在本實施例中,當(dāng)發(fā)起應(yīng)用程序的包名不存在于目標(biāo)組件的應(yīng)用禁行名單之中,第二獲取模塊205獲取該目標(biāo)組件的應(yīng)用通行名單。在本實施例中,應(yīng)用通行名單可由服務(wù)器設(shè)定或分析獲得,并發(fā)放至移動終端本地。該應(yīng)用通行名單可以包括同一出品方的應(yīng)用程序包名以及其他可能不存在攻擊行為的應(yīng)用程序包名。
[0088]第三判斷模塊206,與放行模塊207、第一判斷模塊208連接,用于根據(jù)發(fā)起應(yīng)用程序的包名信息和應(yīng)用通行名單,判斷發(fā)起應(yīng)用程序是否在應(yīng)用通行名單中。
[0089]在本實施例中,第三判斷模塊206比對發(fā)起應(yīng)用程序的包名信息是否存在于該應(yīng)用通行名單中。
[0090]放行模塊207,用于若發(fā)起應(yīng)用程序在應(yīng)用通行名單中,放行第一意圖指令信息。
[0091]在本實施例中,若該發(fā)起應(yīng)用程序在應(yīng)用通行名單中,則該發(fā)起應(yīng)用程序默認(rèn)為友好的應(yīng)用程序,放行模塊207放行其發(fā)送的第一意圖指令信息;若該發(fā)起應(yīng)用程序不在應(yīng)用通行名單中,則需要進一步判斷是否應(yīng)當(dāng)攔截該第一意圖指令信息。
[0092]第一判斷模塊208,與第二判斷模塊209連接,用于根據(jù)第一意圖指令信息和發(fā)起應(yīng)用程序的信息,判斷目標(biāo)組件是否為發(fā)起應(yīng)用程序的內(nèi)部組件;若是,放行第一意圖指令?目息O
[0093]其中,第一判斷模塊208包括以下單元:
[0094]解析單元2081,與第一比對單元2082連接,用于解析第一意圖指令信息,得到目標(biāo)組件所屬的目標(biāo)應(yīng)用程序的包名信息。
[0095]在本實施例中,解析單元2081通過解析該第一意圖指令信息可以得到其目標(biāo)組件的目標(biāo)應(yīng)用程序的包名信息。具體地,沒有明確指定目標(biāo)組件名的Intent為隱式意圖(Implicit Intents),此時需要根據(jù)隱式意圖中設(shè)置的動作(act1n)、類別(category)、數(shù)據(jù)URI等來匹配最合適的組件作為目標(biāo)組件。已知地,Intent的Compent屬性指定Intent的的目標(biāo)組件的類名稱。通常Android會根據(jù)Intent中包含的其它屬性的信息,比如act1n、data/type、category進行查找,最終找到與之匹配的目標(biāo)組件和給目標(biāo)組件所屬的目標(biāo)應(yīng)用程序的包名信息。
[0096]第一比對單元2082,用于比對發(fā)起應(yīng)用程序的包名信息和目標(biāo)應(yīng)用程序的包名信息,若發(fā)起應(yīng)用程序的包名信息和目標(biāo)應(yīng)用程序的包名信息相同,放行第一意圖指令信息。
[0097]在本實施例中,由于應(yīng)用程序的包名具有唯一性,第一比對單元2082通過比對發(fā)起應(yīng)用程序的包名信息和目標(biāo)應(yīng)用程序的包名信息,由兩者的包名信息是否相同可以判斷目標(biāo)組件是不是發(fā)起應(yīng)用的內(nèi)部組件。例如:發(fā)起方:com.app.0ffice(包名)、MainActivity(組件名);目標(biāo)方:com.app.0ffice(包名),OpenFileActivity(組件名),包名相同,所以是內(nèi)部組件間的啟動過程。
[0098]在本實施例中,如果比對出該發(fā)起應(yīng)用程序的包名信息和目標(biāo)應(yīng)用程序的包名信息相同,可斷定該目標(biāo)組件為該發(fā)起應(yīng)用程序的內(nèi)部組件,則該第一意圖指令信息用于應(yīng)用程序的內(nèi)部通信,則放行該第一意圖指令信息。
[0099]第二判斷模塊209,與發(fā)送模塊210連接,用于若第一判斷模塊208判斷出目標(biāo)組件不是發(fā)起應(yīng)用程序的內(nèi)部組件,則根據(jù)發(fā)起應(yīng)用程序?qū)δ繕?biāo)組件發(fā)送意圖指令的時間間隔,判斷發(fā)起應(yīng)用程序?qū)δ繕?biāo)組件是否存在攻擊行為;若否,放行第一意圖指令信息。
[0100]其中,第二判斷模塊209包括以下單元:
[0101 ]獲取單元2091,與第二比對單元2092連接,用于若目標(biāo)組件不是發(fā)起應(yīng)用程序的內(nèi)部組件,獲取發(fā)起應(yīng)用程序發(fā)送第一意圖指令信息和發(fā)送第二意圖指令信息的時間間隔。
[0102]在本實施例中,若第一判斷模塊208判斷出該目標(biāo)組件不屬于該發(fā)起應(yīng)用程序的內(nèi)部組件,則需要進一步檢測該發(fā)起應(yīng)用程序?qū)υ撃繕?biāo)組件發(fā)送意圖指令的時間間隔,此時,獲取單元2091獲取發(fā)起應(yīng)用程序發(fā)送第一意圖指令信息和發(fā)送第二意圖指令信息的時間間隔。
[0103]本實施例中,“第一”和“第二”不作為發(fā)生先后次序的區(qū)分。
[0104]為方便該時間間隔的獲取,優(yōu)選地,第二意圖指令信息可以是第一意圖指令信息的前一條意圖指令信息。
[0105]第二比對單元2092,與提示單元2093連接,用于判斷時間間隔是否小于預(yù)設(shè)時間閾值。
[0106]在本實施例中,獲取單元2091獲取到發(fā)起應(yīng)用程序發(fā)送第一意圖指令信息和第二意圖指令信息的時間間隔后,第二比對單元2092則將該時間間隔和預(yù)設(shè)時間閾值進行比對。該預(yù)設(shè)時間閾值可由存在攻擊行為的應(yīng)用程序的攻擊頻率得到,也可根據(jù)目標(biāo)組件的處理速度得到,以確保目標(biāo)組件不因無法響應(yīng)過多的意圖指令而令其所在的應(yīng)用程序出現(xiàn)崩潰的情況。如可將該時間間隔設(shè)定為3S,作為保護目標(biāo)組件的底線。如果發(fā)起應(yīng)用程序發(fā)送第一意圖指令信息和第二意圖指令信息的時間間隔大于預(yù)設(shè)時間閾值,如該時間間隔超過3S,則可判斷出該發(fā)起應(yīng)用程序?qū)δ繕?biāo)組件不存在攻擊行為,進而放行其發(fā)送的第一意圖指令信息。
[0107]提示單元2093,用于發(fā)出是否放行第一意圖指令信息的提示。
[0108]在本實施例中,如果發(fā)起應(yīng)用程序發(fā)送第一意圖指令信息和第二意圖指令信息的時間間隔小于預(yù)設(shè)時間閾值,如該時間間隔小于3S,則第二比對單元2092可判斷出該發(fā)起應(yīng)用程序?qū)δ繕?biāo)組件可能存在攻擊行為,此時發(fā)出是否放行第一意圖指令信息的提示,使用戶收到該提示后下達是否放行該第一意圖指令信息的操作指令。如用戶確實在利用發(fā)起應(yīng)用程序?qū)δ繕?biāo)組件進行調(diào)用,則可下達放行的操作指令,使系統(tǒng)可以順利通過意圖指令調(diào)用目標(biāo)組件;反之亦然。
[0109]發(fā)送模塊210,用于將發(fā)起應(yīng)用程序的信息發(fā)送至服務(wù)器,以使服務(wù)器分析發(fā)起應(yīng)用程序的信息,并根據(jù)分析結(jié)果更新應(yīng)用通行名單或應(yīng)用禁行名單。
[0110]在本實施例中,當(dāng)判斷出是否攔截該第一意圖指令信息后,發(fā)送模塊210將該發(fā)起應(yīng)用程序的信息發(fā)送至服務(wù)器,該服務(wù)器可綜合各個移動終端的數(shù)據(jù),通過分析這些發(fā)起應(yīng)用程序的包名和發(fā)送意圖指令的時間間隔來判定是否需要更新應(yīng)用通行名單或應(yīng)用禁行名單。如當(dāng)分析出同一包名的發(fā)起應(yīng)用程序發(fā)送意圖指令的時間間隔過短,則可在應(yīng)用禁行名單中添加該包名,或者從應(yīng)用通行名單中將該包名刪除。
[0111]本發(fā)明實施例提供的移動終端,通過以應(yīng)用禁行名單攔截已知的存在攻擊行為的發(fā)起應(yīng)用程序,以應(yīng)用通行名單放行已知的友好的發(fā)起應(yīng)用程序,在進行內(nèi)部組件判斷和時間間隔判斷之前先對該第一意圖指令信息進行簡單過濾,進一步減輕了系統(tǒng)負(fù)荷和提高了攔截判斷的準(zhǔn)確度;通過比對目標(biāo)應(yīng)用程序的包名和發(fā)起應(yīng)用程序的包名可快速判斷出目標(biāo)組件是否為發(fā)起應(yīng)用程序的內(nèi)部組件;通過獲取該發(fā)起應(yīng)用程序?qū)υ撃繕?biāo)組件發(fā)送的相鄰兩次意圖指令的時間間隔,并以該時間間隔和預(yù)設(shè)時間閾值對比來判斷發(fā)起應(yīng)用程序?qū)δ繕?biāo)組件是否存在攻擊行為,實現(xiàn)在消耗少量資源的前提下起到有效防御的作用,可防止應(yīng)用程序因Intent攻擊發(fā)生異常而使用戶遭受不必要的損失,同時還起到節(jié)省電量和提高用戶體驗的作用。
[0112]圖5是本發(fā)明移動終端的第三實施例的結(jié)構(gòu)框圖。圖5所示的移動終端700包括:至少一個處理器701、存儲器702、至少一個網(wǎng)絡(luò)接口 704和用戶接口 703。移動終端700中的各個組件通過總線系統(tǒng)705耦合在一起??衫斫?,總線系統(tǒng)705用于實現(xiàn)這些組件之間的連接通信??偩€系統(tǒng)705除包括數(shù)據(jù)總線之外,還包括電源總線、控制總線和狀態(tài)信號總線。但是為了清楚說明起見,在圖5中將各種總線都標(biāo)為總線系統(tǒng)705。
[0113]其中,用戶接口 703可以包括顯示器、鍵盤或者點擊設(shè)備(例如,鼠標(biāo),軌跡球(trackball)、觸感板或者觸摸屏等。
[0114]可以理解,本發(fā)明實施例中的存儲器702可以是易失性存儲器或非易失性存儲器,或可包括易失性和非易失性存儲器兩者。其中,非易失性存儲器可以是只讀存儲器(Read-OnlyMemory, ROM)、可編程只讀存儲器(ProgrammabI eROM,PROM)、可擦除可編程只讀存儲器(ErasablePR0M,EPR0M)、電可擦除可編程只讀存儲器(ElectricallyEPROM,EEPROM)或閃存。易失性存儲器可以是隨機存取存儲器(RandomAccessMemory’RAM),其用作外部高速緩存。通過示例性但不是限制性說明,許多形式的RAM可用,例如靜態(tài)隨機存取存儲器(3七&〖化!^1,31^10、動態(tài)隨機存取存儲器(0711&1^^^1,01^10、同步動態(tài)隨機存取存儲器(SynchronousDRAM,SDRAM)、雙倍數(shù)據(jù)速率同步動態(tài)隨機存取存儲器(DoubleDataRateSDRAM,DDRSDRAM)、增強型同步動態(tài)隨機存取存儲器(Enhanced SDRAM,ESDRAM)、同步連接動態(tài)隨機存取存儲器(Synchl inkDRAM,SLDRAM)和直接內(nèi)存總線隨機存取存儲器(DirectRambuSRAM,DRRAM)。本發(fā)明實施例描述的系統(tǒng)和方法的存儲器702旨在包括但不限于這些和任意其它適合類型的存儲器。
[0115]在一些實施方式中,存儲器702存儲了如下的元素,可執(zhí)行模塊或者數(shù)據(jù)結(jié)構(gòu),或者他們的子集,或者他們的擴展集:操作系統(tǒng)7021和應(yīng)用程序7022。
[0116]其中,操作系統(tǒng)7021,包含各種系統(tǒng)程序,例如框架層、核心庫層、驅(qū)動層等,用于實現(xiàn)各種基礎(chǔ)業(yè)務(wù)以及處理基于硬件的任務(wù)。應(yīng)用程序7022,包含各種應(yīng)用程序,例如媒體播放器(MediaPlayer)、瀏覽器(Browser)等,用于實現(xiàn)各種應(yīng)用業(yè)務(wù)。實現(xiàn)本發(fā)明實施例方法的程序可以包含在應(yīng)用程序7022中。
[0117]在本發(fā)明實施例中,通過調(diào)用存儲器702存儲的程序或指令,具體的,可以是應(yīng)用程序7022中存儲的程序或指令,處理器701用于獲取第一意圖指令信息和發(fā)送第一意圖指令信息的發(fā)起應(yīng)用程序的信息;根據(jù)第一意圖指令信息和發(fā)起應(yīng)用程序的信息,判斷執(zhí)行第一意圖指令的目標(biāo)組件是否為發(fā)起應(yīng)用程序的內(nèi)部組件;若是,放行第一意圖指令信息;若目標(biāo)組件不是發(fā)起應(yīng)用程序的內(nèi)部組件,則根據(jù)發(fā)起應(yīng)用程序?qū)δ繕?biāo)組件發(fā)送意圖指令的時間間隔,判斷發(fā)起應(yīng)用程序?qū)δ繕?biāo)組件是否存在攻擊行為;若否,放行第一意圖指令信息。
[0118]上述本發(fā)明實施例揭示的方法可以應(yīng)用于處理器701中,或者由處理器701實現(xiàn)。處理器701可能是一種集成電路芯片,具有信號的處理能力。在實現(xiàn)過程中,上述方法的各步驟可以通過處理器701中的硬件的集成邏輯電路或者軟件形式的指令完成。上述的處理器701可以是通用處理器、數(shù)字信號處理器(DigitalSignalProcessor,DSP)、專用集成電路(Applicat1nSpecific IntegratedCircuit ,ASIC)、現(xiàn)成可編程門陣列(FieldProgrammableGateArray,F(xiàn)PGA)或者其他可編程邏輯器件、分立門或者晶體管邏輯器件、分立硬件組件。可以實現(xiàn)或者執(zhí)行本發(fā)明實施例中的公開的各方法、步驟及邏輯框圖。通用處理器可以是微處理器或者該處理器也可以是任何常規(guī)的處理器等。結(jié)合本發(fā)明實施例所公開的方法的步驟可以直接體現(xiàn)為硬件譯碼處理器執(zhí)行完成,或者用譯碼處理器中的硬件及軟件模塊組合執(zhí)行完成。軟件模塊可以位于隨機存儲器,閃存、只讀存儲器,可編程只讀存儲器或者電可擦寫可編程存儲器、寄存器等本領(lǐng)域成熟的存儲介質(zhì)中。該存儲介質(zhì)位于存儲器702,處理器701讀取存儲器702中的信息,結(jié)合其硬件完成上述方法的步驟。
[0119]可以理解的是,本發(fā)明實施例描述的這些實施例可以用硬件、軟件、固件、中間件、微碼或其組合來實現(xiàn)。對于硬件實現(xiàn),處理單元可以實現(xiàn)在一個或多個專用集成電路(Applicat1nSpecificIntegratedCircuits,ASIC)、數(shù)字信號處理器(DigitalSignalProcessing,DSP)、數(shù)字信號處理設(shè)備(DSPDevice,DSPD)、可編程邏輯設(shè)備(ProgrammableLogicDevice ,PLD)、現(xiàn)場可編程門陣列(Field-ProgrammableGateArray,F(xiàn)PGA)、通用處理器、控制器、微控制器、微處理器、用于執(zhí)行本申請功能的其它電子單元或其組合中。
[0120]對于軟件實現(xiàn),可通過執(zhí)行本發(fā)明實施例功能的模塊(例如過程、函數(shù)等)來實現(xiàn)本發(fā)明實施例的技術(shù)。軟件代碼可存儲在存儲器中并通過處理器執(zhí)行。存儲器可以在處理器中或在處理器外部實現(xiàn)。
[0121]可選地,處理器701還用于:解析第一意圖指令信息,得到目標(biāo)組件所屬的目標(biāo)應(yīng)用程序的包名信息;比對發(fā)起應(yīng)用程序的包名信息和目標(biāo)應(yīng)用程序的包名信息,若發(fā)起應(yīng)用程序的包名信息和目標(biāo)應(yīng)用程序的包名信息相同,放行第一意圖指令信息。
[0122]可選地,處理器701還用于:若目標(biāo)組件不是發(fā)起應(yīng)用程序的內(nèi)部組件,獲取發(fā)起應(yīng)用程序發(fā)送第一意圖指令信息和發(fā)送第二意圖指令信息的時間間隔;比對所述時間間隔和預(yù)設(shè)時間閾值,若所述時間間隔大于所述預(yù)設(shè)時間閾值,放行所述第一意圖指令信息;若所述時間間隔小于所述預(yù)設(shè)時間閾值,則發(fā)出是否放行所述第一意圖指令信息的提示。
[0123]可選地,處理器701還用于:獲取目標(biāo)組件的應(yīng)用通行名單;根據(jù)發(fā)起應(yīng)用程序的包名信息和應(yīng)用通行名單,判斷發(fā)起應(yīng)用程序是否在應(yīng)用通行名單中;若是,放行第一意圖指令信息;若否,則進行下一步。
[0124]可選地,處理器701還用于:獲取目標(biāo)組件的應(yīng)用禁行名單;根據(jù)發(fā)起應(yīng)用程序的包名信息和應(yīng)用通行名單,判斷發(fā)起應(yīng)用程序是否在應(yīng)用禁行名單中;若是,阻止第一意圖指令信息;若否,則進行下一步。
[0125]可選地,處理器701還用于:將發(fā)起應(yīng)用程序的信息發(fā)送至服務(wù)器,以使服務(wù)器分析發(fā)起應(yīng)用程序的信息,并根據(jù)分析結(jié)果更新應(yīng)用通行名單或應(yīng)用禁行名單。
[0126]移動終端700能夠?qū)崿F(xiàn)前述實施例中移動終端實現(xiàn)的各個過程,為避免重復(fù),這里不再贅述。移動終端700通過以應(yīng)用禁行名單攔截已知的存在攻擊行為的發(fā)起應(yīng)用程序,以應(yīng)用通行名單放行已知的友好的發(fā)起應(yīng)用程序,在進行內(nèi)部組件判斷和時間間隔判斷之前先對該第一意圖指令信息進行簡單過濾,進一步減輕了系統(tǒng)負(fù)荷和提高了攔截判斷的準(zhǔn)確度;通過比對目標(biāo)應(yīng)用程序的包名和發(fā)起應(yīng)用程序的包名可快速判斷出目標(biāo)組件是否為發(fā)起應(yīng)用程序的內(nèi)部組件;通過獲取該發(fā)起應(yīng)用程序?qū)υ撃繕?biāo)組件發(fā)送的相鄰兩次意圖指令的時間間隔,并以該時間間隔和預(yù)設(shè)時間閾值對比來判斷發(fā)起應(yīng)用程序?qū)δ繕?biāo)組件是否存在攻擊行為,實現(xiàn)在消耗少量資源的前提下起到有效防御的作用,可防止應(yīng)用程序因Intent攻擊發(fā)生異常而使用戶遭受不必要的損失,同時還起到節(jié)省電量和提高用戶體驗的作用。
[0127]本領(lǐng)域普通技術(shù)人員可以意識到,結(jié)合本發(fā)明實施例中所公開的實施例描述的各示例的單元及算法步驟,能夠以電子硬件、或者計算機軟件和電子硬件的結(jié)合來實現(xiàn)。這些功能究竟以硬件還是軟件方式來執(zhí)行,取決于技術(shù)方案的特定應(yīng)用和設(shè)計約束條件。專業(yè)技術(shù)人員可以對每個特定的應(yīng)用來使用不同方法來實現(xiàn)所描述的功能,但是這種實現(xiàn)不應(yīng)認(rèn)為超出本發(fā)明的范圍。
[0128]所屬領(lǐng)域的技術(shù)人員可以清楚地了解到,為描述的方便和簡潔,上述描述的系統(tǒng)、裝置和單元的具體工作過程,可以參考前述方法實施例中的對應(yīng)過程,在此不再贅述。
[0129]在本申請所提供的實施例中,應(yīng)該理解到,所揭露的裝置和方法,可以通過其它的方式實現(xiàn)。例如,以上所描述的裝置實施例僅僅是示意性的,例如,所述單元的劃分,僅僅為一種邏輯功能劃分,實際實現(xiàn)時可以有另外的劃分方式,例如多個單元或組件可以結(jié)合或者可以集成到另一個系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點,所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些接口,裝置或單元的間接耦合或通信連接,可以是電性,機械或其它的形式。
[0130]所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網(wǎng)絡(luò)單元上。可以根據(jù)實際的需要選擇其中的部分或者全部單元來實現(xiàn)本實施例方案的目的。
[0131]另外,在本發(fā)明各個實施例中的各功能單元可以集成在一個處理單元中,也可以是各個單元單獨物理存在,也可以兩個或兩個以上單元集成在一個單元中。
[0132]所述功能如果以軟件功能單元的形式實現(xiàn)并作為獨立的產(chǎn)品銷售或使用時,可以存儲在一個計算機可讀取存儲介質(zhì)中?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻的部分或者該技術(shù)方案的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機軟件產(chǎn)品存儲在一個存儲介質(zhì)中,包括若干指令用以使得一臺計算機設(shè)備(可以是個人計算機,服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個實施例所述方法的全部或部分步驟。而前述的存儲介質(zhì)包括:U盤、移動硬盤、R0M、RAM、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。
[0133]以上所述,僅為本發(fā)明的【具體實施方式】,但本發(fā)明的保護范圍并不局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到變化或替換,都應(yīng)涵蓋在本發(fā)明的保護范圍之內(nèi)。因此,本發(fā)明的保護范圍應(yīng)以權(quán)利要求的保護范圍為準(zhǔn)。
【主權(quán)項】
1.一種意圖指令的處理方法,應(yīng)用于移動終端,其特征在于,包括: 獲取第一意圖指令信息和發(fā)送所述第一意圖指令信息的發(fā)起應(yīng)用程序的信息; 根據(jù)所述第一意圖指令信息和所述發(fā)起應(yīng)用程序的信息,判斷執(zhí)行所述第一意圖指令的目標(biāo)組件是否為所述發(fā)起應(yīng)用程序的內(nèi)部組件;若是,放行所述第一意圖指令信息;若所述目標(biāo)組件不是所述發(fā)起應(yīng)用程序的內(nèi)部組件,則根據(jù)所述發(fā)起應(yīng)用程序?qū)λ瞿繕?biāo)組件發(fā)送意圖指令的時間間隔,判斷所述發(fā)起應(yīng)用程序?qū)λ瞿繕?biāo)組件是否存在攻擊行為;若否,放行所述第一意圖指令信息。2.如權(quán)利要求1所述的方法,其特征在于,所述根據(jù)所述第一意圖指令信息和所述發(fā)起應(yīng)用程序的信息,判斷執(zhí)行所述第一意圖指令的目標(biāo)組件是否為所述發(fā)起應(yīng)用程序的內(nèi)部組件;若是,放行所述第一意圖指令信息的步驟,包括: 解析所述第一意圖指令信息,得到所述目標(biāo)組件所屬的目標(biāo)應(yīng)用程序的包名信息; 比對所述發(fā)起應(yīng)用程序的包名信息和所述目標(biāo)應(yīng)用程序的包名信息,若所述發(fā)起應(yīng)用程序的包名信息和所述目標(biāo)應(yīng)用程序的包名信息相同,放行所述第一意圖指令信息。3.如權(quán)利要求1所述的方法,其特征在于,所述若所述目標(biāo)組件不是所述發(fā)起應(yīng)用程序的內(nèi)部組件,則根據(jù)所述發(fā)起應(yīng)用程序?qū)λ瞿繕?biāo)組件發(fā)送意圖指令的時間間隔,判斷所述發(fā)起應(yīng)用程序?qū)λ瞿繕?biāo)組件是否存在攻擊行為;若否,放行所述第一意圖指令信息的步驟,包括: 若所述目標(biāo)組件不是所述發(fā)起應(yīng)用程序的內(nèi)部組件,獲取所述發(fā)起應(yīng)用程序發(fā)送所述第一意圖指令信息和發(fā)送第二意圖指令信息的時間間隔; 比對所述時間間隔和預(yù)設(shè)時間閾值,若所述時間間隔大于所述預(yù)設(shè)時間閾值,放行所述第一意圖指令信息; 若所述時間間隔小于所述預(yù)設(shè)時間閾值,則發(fā)出是否放行所述第一意圖指令信息的提不O4.如權(quán)利要求1所述的方法,其特征在于,在所述根據(jù)所述第一意圖指令信息和所述發(fā)起應(yīng)用程序的信息,判斷執(zhí)行所述第一意圖指令的目標(biāo)組件是否為所述發(fā)起應(yīng)用程序的內(nèi)部組件;若是,放行所述第一意圖指令信息的步驟之前,還包括: 獲取所述目標(biāo)組件的應(yīng)用通行名單; 根據(jù)所述發(fā)起應(yīng)用程序的包名信息和所述應(yīng)用通行名單,判斷所述發(fā)起應(yīng)用程序是否在所述應(yīng)用通行名單中; 若是,放行所述第一意圖指令信息;若否,則進行下一步。5.如權(quán)利要求4所述的方法,其特征在于,在所述通過服務(wù)器獲取所述目標(biāo)組件的應(yīng)用通行名單的步驟之前,還包括: 獲取所述目標(biāo)組件的應(yīng)用禁行名單; 根據(jù)所述發(fā)起應(yīng)用程序的包名信息和所述應(yīng)用通行名單,判斷所述發(fā)起應(yīng)用程序是否在所述應(yīng)用禁行名單中; 若是,阻止所述第一意圖指令信息;若否,則進行下一步。6.如權(quán)利要求5所述的方法,其特征在于,在所述若所述目標(biāo)組件不是所述發(fā)起應(yīng)用程序的內(nèi)部組件,則根據(jù)所述發(fā)起應(yīng)用程序?qū)λ瞿繕?biāo)組件發(fā)送意圖指令的時間間隔,判斷所述發(fā)起應(yīng)用程序?qū)λ瞿繕?biāo)組件是否存在攻擊行為;若否,放行所述第一意圖指令信息的步驟之后,還包括: 將所述發(fā)起應(yīng)用程序的信息發(fā)送至服務(wù)器,以使所述服務(wù)器分析所述發(fā)起應(yīng)用程序的信息,并根據(jù)分析結(jié)果更新所述應(yīng)用通行名單或所述應(yīng)用禁行名單。7.一種移動終端,其特征在于,包括: 第一獲取模塊,用于獲取第一意圖指令信息和發(fā)送所述第一意圖指令信息的發(fā)起應(yīng)用程序的信息; 第一判斷模塊,用于根據(jù)所述第一意圖指令信息和所述發(fā)起應(yīng)用程序的信息,判斷執(zhí)行所述第一意圖指令的目標(biāo)組件是否為所述發(fā)起應(yīng)用程序的內(nèi)部組件;若是,放行所述第一意圖指令信息; 第二判斷模塊,用于若所述目標(biāo)組件不是所述發(fā)起應(yīng)用程序的內(nèi)部組件,則根據(jù)所述發(fā)起應(yīng)用程序?qū)λ瞿繕?biāo)組件發(fā)送意圖指令的時間間隔,判斷所述發(fā)起應(yīng)用程序?qū)λ瞿繕?biāo)組件是否存在攻擊行為;若否,放行所述第一意圖指令信息。8.如權(quán)利要求7所述的移動終端,其特征在于,所述第一判斷模塊包括: 解析單元,用于解析所述第一意圖指令信息,得到所述目標(biāo)組件所屬的目標(biāo)應(yīng)用程序的包名信息; 第一比對單元,用于比對所述發(fā)起應(yīng)用程序的包名信息和所述目標(biāo)應(yīng)用程序的包名信息,若所述發(fā)起應(yīng)用程序的包名信息和所述目標(biāo)應(yīng)用程序的包名信息相同,放行所述第一意圖指令信息。9.如權(quán)利要求7所述的移動終端,其特征在于,所述第二判斷模塊包括: 獲取單元,用于若所述目標(biāo)組件不是所述發(fā)起應(yīng)用程序的內(nèi)部組件,獲取所述發(fā)起應(yīng)用程序發(fā)送所述第一意圖指令信息和發(fā)送第二意圖指令信息的時間間隔; 第二比對單元,用于比對所述時間間隔和預(yù)設(shè)時間閾值,若所述時間間隔大于所述預(yù)設(shè)時間閾值,放行所述第一意圖指令信息; 提示單元,用于若所述時間間隔小于所述預(yù)設(shè)時間閾值,則發(fā)出是否放行所述第一意圖指令信息的提示。10.如權(quán)利要求7所述的移動終端,其特征在于,還包括: 第二獲取模塊,用于獲取所述目標(biāo)組件的應(yīng)用通行名單; 第三判斷模塊,用于根據(jù)所述發(fā)起應(yīng)用程序的包名信息和所述應(yīng)用通行名單,判斷所述發(fā)起應(yīng)用程序是否在所述應(yīng)用通行名單中; 放行模塊,用于若所述發(fā)起應(yīng)用程序在所述應(yīng)用通行名單中,放行所述第一意圖指令?目息O11.如權(quán)利要求10所述的移動終端,其特征在于,還包括: 第三獲取模塊,用于獲取所述目標(biāo)組件的應(yīng)用禁行名單; 第四判斷模塊,用于根據(jù)所述發(fā)起應(yīng)用程序的包名信息和所述應(yīng)用通行名單,判斷所述發(fā)起應(yīng)用程序是否在所述應(yīng)用禁行名單中; 阻止模塊,用于阻止所述第一意圖指令信息。12.如權(quán)利要求11所述的移動終端,其特征在于,還包括: 發(fā)送模塊,用于將所述發(fā)起應(yīng)用程序的信息發(fā)送至服務(wù)器,以使所述服務(wù)器分析所述發(fā)起應(yīng)用程序的信息,并根據(jù)分析結(jié)果更新所述應(yīng)用通行名單或所述應(yīng)用禁行名單。
【文檔編號】G06F9/54GK105912928SQ201610188905
【公開日】2016年8月31日
【申請日】2016年3月29日
【發(fā)明人】顧衛(wèi)華
【申請人】維沃移動通信有限公司