一種Android系統的非法root檢測方法及系統的制作方法
【技術領域】
[0001]本發明涉及移動終端安全領域,特別涉及一種Android系統的非法root檢測方法及系統。
【背景技術】
[0002]在Android系統中,超級用戶一般命名為root,其具有系統中的所有權限,如啟動或停止一個進程,增加或刪除用戶等,現有Android系統一般不為用戶提供root權限,以保證系統安全,但其限制了一些用戶功能,因此現有提供了大量的“一鍵root”工具,為用戶提供root功能,使用戶獲得更多的功能及權限,但現有的root方法,一般均是利用系統漏洞,通過非法手段繞過系統檢測,非法獲取root權限,或通過第三方手段強制解除系統鎖,或改變系統原廠設置,以達到獲取root的目的等。綜上的幾種root方法,均是通過非法手段獲取Android系統的最高權限,破壞了系統的自我保護機制,且一旦root權限被惡意軟件取得,則會帶來隱私泄露等問題。系統root后,一旦用戶誤操作,則可能導致惡意程序獲得到root權限。如果通過第三方軟件獲得root權限,一旦第三方安全軟件存在安全漏洞,也將導致root權限被惡意程序所利用。因此用戶應當及時了解所使用的Android系統是否已被非法root。
【發明內容】
[0003]本發明提供了一種Android系統的非法root檢測方法及系統,通過多方向檢測,確定系統是否存在非法root風險,并將風險提示用戶。
[0004]一種Android系統的非法root檢測方法,包括:
步驟a,利用常規方法對Android系統檢測,初次判斷Android系統是否已被root,如果是,則判定系統危險,執行步驟f ;否則執行步驟b ;
步驟b,檢測Android系統是否已加鎖,如果是,執彳了步驟c ;否則執彳了步驟e ;
步驟C,檢測Android系統是否被非法解鎖,如果是,則執行步驟e ;否則執行步驟d ;步驟d,檢測Android系統是否存在提權漏洞,如果是,則執行步驟f ;否則執行步驟e ;步驟e,檢測Android系統是否被刷入第三方recovery模式,如果是,則執行步驟f ;否則判定系統不存在非法root風險;第三方recovery是指替換了系統自帶的recovery程序的第三方程序,雖然第三方recovery在功能上與系統自帶的recovery程序類似,但是由于其具有修改系統的權限,如果被惡意利用,則會對系統造成嚴重的危害;
步驟f,檢測Android系統中的所有應用程序,判斷是否存在非法請求root權限的行為,如果存在,則提示用戶系統存在非法root風險,并提示非法請求root權限行為的應用程序;否則,提示用戶系統存在非法root風險。
[0005]所述的方法中,所述步驟b,檢測Android系統是否已加鎖具體為:獲取用戶設備的信息,識別當前用戶設備Android系統加鎖狀態;
所述的方法中,所述步驟c,檢測Android系統是否被非法解鎖具體為:根據獲取的用戶設備信息,獲取云端查找對應用戶設備的出廠加鎖狀態,并與當前用戶設備Android系統加鎖狀態比對,如果一致,則Android系統未被非法解鎖,否則,Android系統被非法解鎖。
[0006]所述的方法中,所述步驟d,檢測Android系統是否存在提權漏洞具體為:通過云端下載漏洞檢測腳本,對Android系統進行提權漏洞檢測。
[0007]所述的方法中,所述步驟f,檢測Android系統中的所有應用程序,判斷是否存在非法請求root權限的行為具體為:判斷應用程序是否以root權限運行,或包含root所需文件,如果是,則存在非法請求root權限的行為,否則不存在。
[0008]本發明還提供了一種Android系統的非法root檢測系統,包括:
常規檢測模塊,用于利用常規方法對Android系統檢測,初次判斷Android系統是否已被root,如果是,則判定系統危險,轉入root行為檢測模塊;否則進入加鎖檢測模塊;
加鎖檢測模塊,用于檢測Android系統是否已加鎖,如果是,進入非法解鎖檢測模塊;否則轉入工程模式檢測模塊;
非法解鎖檢測模塊,用于檢測Android系統是否被非法解鎖,如果是,則轉入工程模式檢測模塊;否則進入漏洞檢測模塊;
漏洞檢測模塊,檢測Android系統是否存在提權漏洞,如果是,則轉入root行為檢測模塊;否則進入工程模式檢測模塊;
工程模式檢測模塊,檢測Android系統是否被刷入第三方recovery模式,如果是,則進入root行為檢測模塊;否則判定系統不存在非法root風險;
root行為檢測模塊,檢測Android系統中的所有應用程序,判斷是否存在非法請求root權限的行為,如果存在,則提示用戶系統存在非法root風險,并提示非法請求root權限行為的應用程序;否則,提示用戶系統存在非法root風險。
[0009]所述的系統中,所述加鎖檢測模塊,檢測Android系統是否已加鎖具體為:獲取用戶設備的信息,識別當前用戶設備Android系統加鎖狀態;
所述的系統中,所述非法解鎖檢測模塊,檢測Android系統是否被非法解鎖具體為:根據獲取的用戶設備信息,獲取云端查找對應用戶設備的出廠加鎖狀態,并與當前用戶設備Android系統加鎖狀態比對,如果一致,則Android系統未被非法解鎖,否則,Android系統被非法解鎖。
[0010]所述的系統中,所述漏洞檢測模塊,云端檢測引擎檢測Android系統是否存在提權漏洞具體為:通過云端下載漏洞檢測腳本,對Android系統進行提權漏洞檢測。
[0011 ] 所述的系統中,所述10t行為檢測模塊,檢測Android系統中的所有應用程序,判斷是否存在非法請求root權限的行為具體為:判斷應用程序是否以root權限運行,或包含root所需文件,如果是,則存在非法請求root權限的行為,否則不存在。
[0012]本發明的優勢在于:通過多方向對系統進行檢測,能夠確保準確檢測出系統是否被root,檢測范圍更廣;通過主動查看和被動從系統中獲取信息兩種方式進行驗證,極大的提高了檢測的準確率;通過本發明的方法,能夠對系統中尚未被發現的風險進行檢測并提示用戶,發現未知風險;并且通過檢測系統內核和底層api調用等多種技術,對root風險進行深入檢測。本發明保證了用戶在未造成損失之前,最快了解當前Android系統是否存在重大安全隱患。
[0013]本發明提供了一種Android系統的非法root檢測方法及系統,通過對系統進行常規root檢測及利用云端信息檢測系統是否加鎖,是否被非法解鎖,以及是否存在提權漏洞、刷入第三方recovery模式,判斷系統是否被非法root,并檢測系統中存在非法root行為的應用程序,提示用戶。本發明還給出了相應系統,通過本
【發明內容】
,能夠多方面檢測系統是否被root,是否存在非法root風險,并通過主動查看和被動從系統中獲取等多種方式進行檢測,提高了準確率,能夠發現系統中隱藏的未知風險。
【附圖說明】
[0014]為了更清楚地說明本發明或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發明中記載的一些實施例,對于本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據這些附圖獲得其他的附圖。
[0015]圖1為本發明一種Android系統的非法root檢測方法流程圖;
圖2為本發明一種Android系統的非法root檢測系統結構示意圖。
【具體實施方式】
[0016]為了使本技術領域的人員更好地理解本發明實施例中的技術方案,并使本發明的上述目的、特征和優點能夠更加明顯易懂,下面結合附圖對本發明中技術方案作進一步詳細的說明。
[0017]本發明提供了一種Android系統的非法root檢測方法及系統,通過多方向檢測,確定系統是否存在非法root風險,并將風險提示用戶。
[0018]一種Android系統的非法root檢測方法,如圖1所示,包括:
SlOI,利用常規方法對Android系統檢測,初次判斷Android系統是否已被root,如果是,則判定系統危險,執行S106 ;否則執行S102 ;
常規檢測方法有:
(1)執行Runtime.getRuntime 0.exec(〃su〃),查看返回結果,可以判定是否root ;
(2)檢測目錄system/bin/^, "/system/xbin/","/system/sbin/","/sbin/",7vendor/bin/"下是否存在su文件,且是否具有可執行權限可以判斷是否root ;
(3)調用execRootCmdSilentO方法,根據返回值可以判斷是否root。
[0019]S102,檢測Android系統是否已加鎖,如果是,執行S103 ;否則執行S105 ;
S103,檢測Android系統是否被非法解鎖,如果是,則執行S105 ;否則執行S104 ;
S104,檢測Android系統是否存在提權漏洞,如果是,則執行S106 ;否則執行S105 ; S105,檢測Android系統是否被刷入第三方recovery模式,如果是,則執行S106 ;否則判定系統不存在非法root風險;第三方recovery是指替換了系統自帶的recovery程序的第三方程序,雖然第三方recovery在功能上與系統自帶的recovery程序類似,但是由于其具有修改系統的權限,如果被惡意利用,則會對系統造成嚴重的危害;
S106,檢測Android系統中的所有應用程序,判斷是否存在非法請求root權限的行為,如果存在,則提示用戶系統存在非法root風險,并提示非法請求root權限行為的應用程序;否則,提示用戶系統存在非法root風險。
[0020]所述的方法中,所述S102,檢測Android系統是否已加鎖具體為:獲取用戶設備的信息,識別當前用戶設備Android系統加鎖狀態;如S-ON表示處于加鎖狀態,S-OFF表