本發(fā)明涉及安全控制技術領域,尤其涉及一種對應用程序進行安全檢測的方法及裝置。
背景技術:
據(jù)統(tǒng)計android手機在全球手機出貨量要遠遠超出ios手機的出貨量,但是android系統(tǒng)的開源性以及系統(tǒng)廠商的多樣性,給黑客編寫惡意病毒程序帶來了極大的便利。相應的給用戶的正常使用帶來了極大的安全隱患。雖然目前市面上已有愛加密、騰訊加固、360加固、梆梆安全等安全加固軟件,但這些軟件均需要開發(fā)者上傳自己的安裝包到服務商的云環(huán)境進行檢測或加固,加固時間較慢,加固方案無法靈活選擇。
技術實現(xiàn)要素:
為解決上述技術問題,本發(fā)明提供了一種對應用程序進行安全檢測的方法及裝置。
第一方面,本發(fā)明提供了一種對應用程序進行安全檢測的方法,該方法包括:
獲取與應用程序的安裝包對應的簽名證書;
并對簽名證書進行驗證;
當驗證成功時,判斷安裝包是否已經(jīng)進行封裝處理;
當確定安裝包未被進行封裝處理時,向用戶發(fā)出提示消息,提示消息用于指示安裝包存在安全風險,以便用戶對其進行封裝處理;
或者,當確定安裝包已經(jīng)被進行封裝處理時,結(jié)束操作。
本發(fā)明的有益效果是:通過不同角度檢測應用程序是否安全,當檢測應用程序存在危險因素時,及時采取相應的措施。通過對應用程序加固,還可以間接實現(xiàn)保證數(shù)據(jù)的安全性、完整性和有效性。
進一步,當確定安裝包未被進行封裝處理時,方法還包括:
當檢測源代碼被啟動運行,且存在對源代碼進行非法調(diào)試的情況發(fā)生時,阻止源代碼的運行。
采用上述進一步的方案的有益技術效果在于,當應用程序的源代碼被啟動時,可以檢測是否有非法分子對源代碼進行非法調(diào)試,如果存在則直接阻止源代碼的運行。以保證代碼運行過程不被非法分子所熟知。
進一步,當確定安裝包未被進行封裝處理時,方法還包括:
判斷應用程序的界面是否被劫持;
當確定應用程序的界面被劫持時,及時提醒用戶做相應的防護處理。
采用上述進一步的技術方案的有益技術效果在于,當監(jiān)測到應用程序的界面被非法調(diào)用時,則提醒用戶做相應的防護處理。
進一步的,對簽名證書進行驗證,具體包括:采用哈希算法計算簽名證書對應的md5碼,當簽名證書對應的md5碼與預設的md5碼相同時,確定對安裝包對應的簽名證書驗證成功,否則驗證失敗。
采用上述進一步的技術方案的有益技術效果在于:采用哈希算法,首先計算出當前的安裝包對應的簽名證書對應的md5碼,如果計算出的md5碼是和預設的md5碼相同,則說明簽名證書是有效的,否則認為簽名證書為非法證書,禁止用戶使用該應用程序。
進一步的,判斷安裝包是否已經(jīng)進行封裝處理,具體包括:對安裝包中的源程序代碼進行反編譯,如果反編譯成功時,則確定安裝包未被進行封裝處理;否則確定安裝包已經(jīng)被進行封裝處理。
采用上述進一步的技術方案的有益技術效果在于:通過對安裝包中的源程序代碼進行反編譯,如果反編譯成功,則說明安裝包未進行封裝處理,需要提醒用戶采取相應的防護措施,否則,則認為已經(jīng)進行封裝處理了,不做任何處理。
第二方面,本發(fā)明提供了一種對應用程序進行安全檢測的裝置,該裝置包括:
獲取單元,用于獲取與應用程序的安裝包對應的簽名證書;
驗證單元,用于對簽名證書進行驗證;
處理單元,用于當驗證單元對簽名證書驗證成功時,判斷安裝包是否已經(jīng)進行封裝處理;
當確定安裝包未被進行封裝處理時,向用戶發(fā)出提示消息,提示消息用于指示安裝包存在安全風險,以便用戶對其進行封裝處理;
或者,當確定安裝包已經(jīng)被進行封裝處理時,結(jié)束操作。
上述方案的有益技術效果在于,通過不同角度檢測應用程序是否安全,當檢測應用程序存在危險因素時,及時采取相應的措施。通過對應用程序加固,還可以間接實現(xiàn)保證數(shù)據(jù)的安全性、完整性和有效性。
進一步的,處理單元還用于,當檢測源代碼被啟動運行,且存在對源代碼進行非法調(diào)試的情況發(fā)生時,阻止源代碼的運行。
采用上述進一步的方案的有益技術效果在于,當應用程序的源代碼被啟動時,可以檢測是否有非法分子對源代碼進行非法調(diào)試,如果存在則直接阻止源代碼的運行。以保證代碼運行過程不被非法分子所熟知。
進一步的,處理單元還用于,判斷應用程序的界面是否被劫持;
當確定應用程序的界面被劫持時,及時提醒用戶做相應的防護處理。
采用上述進一步的技術方案的有益技術效果在于,當監(jiān)測到應用程序的界面被非法調(diào)用時,則提醒用戶做相應的防護處理。
進一步的,認證單元具體用于,采用哈希算法計算簽名證書對應的md5碼,當簽名證書對應的md5碼與預設的md5碼相同時,確定對安裝包對應的簽名證書驗證成功,否則驗證失敗。
采用上述進一步的技術方案的有益技術效果在于,采用哈希算法,首先計算出當前的安裝包對應的簽名證書對應的md5碼,如果計算出的md5碼是和預設的md5碼相同,則說明簽名證書是有效的,否則認為簽名證書為非法證書,禁止用戶使用該應用程序。
進一步的,處理單元具體用于,對安裝包中的源程序代碼進行反編譯,如果反編譯成功時,則確定安裝包未被進行封裝處理;否則確定安裝包已經(jīng)被進行封裝處理。
采用上述進一步的技術方案的有益技術效果在于,通過對安裝包中的源程序代碼進行反編譯,如果反編譯成功,則說明安裝包未進行封裝處理,需要提醒用戶采取相應的防護措施,否則,則認為已經(jīng)進行封裝處理了,不做任何處理。
附圖說明
圖1為本發(fā)明實施例提供的一種對應用程序進行安全檢測的方法流程示意圖;
圖2為本發(fā)明實施例提供的一種對應用程序進行安全檢測的裝置結(jié)構示意圖。
具體實施方式
以下描述中,為了說明而不是為了限定,提出了諸如特定系統(tǒng)結(jié)構、接口、技術之類的具體細節(jié),以便透切理解本發(fā)明。然而,本領域的技術人員應當清楚,在沒有這些具體細節(jié)的其它實施例中也可以實現(xiàn)本發(fā)明。在其它情況中,省略對眾所周知的裝置、電路以及方法的詳細說明,以免不必要的細節(jié)妨礙本發(fā)明的描述。
圖1為本發(fā)明實施例提供的一種對應用程序進行安全檢測的方法流程示意圖。具體如圖1所示,該方法包括:
步驟110,獲取與應用程序的安裝包對應的簽名證書,并對簽名證書進行驗證。
具體的,獲取到應用程序的安裝包對應的簽名證書后,需要對簽名證書進行驗證。以保證應用程序的安裝包為“正版”安裝包。這里的簽名證書,其實是利用jarsigner命令重新對安裝包進行簽名。
進行驗證的方法可以包括多種,在本實施例中所采用的為:利用哈希算法計算簽名證書對應的md5碼,當簽名證書對應的md5碼與預設的md5碼相同時,確定對安裝包對應的簽名證書驗證成功,否則驗證失敗。而預設的md5碼正是“正版”簽名證書所對應的md5碼。
步驟120,當驗證成功時,判斷安裝包是否已經(jīng)進行封裝處理。
具體的,當步驟110中對簽名證書驗證成功時,可以使用apktool工具,對安裝包中的源程序代碼進行反編譯,如果反編譯成功,則說明安裝包未進行封裝處理,否則,則可以確定安裝包已經(jīng)被進行封裝處理。一般而言,是對安裝包中的dass.dex文件中的程序代碼進行反編譯,判斷是否能夠生成jar文件。如果能生成,則說明安裝包未被進行封裝處理。否則,已經(jīng)進行了封裝處理。
步驟130,當確定安裝包未被進行封裝處理時,向用戶發(fā)出提示消息,提示消息用于指示安裝包存在安全風險,以便用戶對其進行封裝處理。
具體的,當在步驟120中確定安裝包未被進行封裝處理時,則可以向用戶發(fā)出提示消息,以便用戶對安裝包進行封裝處理。
優(yōu)選的,在確定安裝包未被進行封裝處理時,該方法還可以包括步驟140:接收用戶輸入的指示信息,該指示信息用于指示源程序代碼無誤,或者為對源程序代碼進行修改的內(nèi)容。
首先用戶確定源代碼是否完全正確,或者存在混淆代碼。如果完全正確的情況下,則可以輸入指示信息,用于指示源程序代碼無誤,可以直接對安裝包進行封裝;否則,用戶對代碼進行修改,也即是系統(tǒng)接收用戶輸入的對源代碼進行修改的內(nèi)容,然后再進行封裝。
進一步優(yōu)選的,在確定安裝包未被進行封裝時,該方法還可以包括步驟150:在源代碼啟動運行時,如果檢測存在非法用戶對源代碼進行非法調(diào)試,則阻止源代碼的運行。該方式主要是為了防止非法用戶以下載應用程序使用為名,非法獲取本應用程序的源代碼的運行過程,并進行加以修改,獲取其他產(chǎn)品的現(xiàn)象發(fā)生。
進一步優(yōu)選的,在確定安裝包未被進行封裝時,該方法還可以包括步驟160:判斷應用程序的界面是否被劫持,當確定應用程序的界面被劫持時,及時提醒用戶做相應的防護處理。
具體的,用戶可以自己測試,判斷應用程序的界面能否被劫持,具體可以采用drozer工具,檢測應用程序的界面是否可以被未被允許的其他非法用戶劫持。
進入dz安裝包后,執(zhí)行命令:runapp.package.attacksurfacepackagename,命令執(zhí)行結(jié)果中若包含有activityexported,則表示有界面未進行防護,可以被其他程序調(diào)用啟動。
那么,則需要采取有效措施防止這種情況的發(fā)生;或者將該問題已經(jīng)具體的防護建議提供給客戶,供客戶選擇是否需要防止這種情況的發(fā)生。然后,再對安裝包進行封裝處理。
應理解的是,上述步驟140至160,可以在安裝包未被封裝前,全部執(zhí)行一遍,也可以僅執(zhí)行其中的一個步驟或兩個步驟。這里不做限定。本文中所指的用戶是指測試人員時,如果發(fā)現(xiàn)上述問題,可以直接采取防護措施,也可以將問題和策略反饋給客戶,由客戶自己決定是否采取防護措施。
步驟170,在上述步驟130-160任意步驟執(zhí)行之后,如果確定安裝包已經(jīng)被封裝處理時,則結(jié)束操作。
進一步的,除了上述防護措施外,保護應用程序安全的方式還可以包括其他方面,例如在本地數(shù)據(jù)安全方面,可以對本地數(shù)據(jù)進行加密存儲。對日志信息、文檔信息進行“沙箱”式存儲。對應用數(shù)據(jù)庫進行加密,以防止數(shù)據(jù)泄露,以及對核心功能和重要數(shù)據(jù)等使用jni方式調(diào)用等。
而數(shù)據(jù)傳輸過程中,網(wǎng)絡請求使用https協(xié)議傳輸,來保證數(shù)據(jù)傳輸安全。在傳輸報文時,可以對報文進行過濾校驗,以及攔截非平臺允許的接口調(diào)用等。
而在訪問控制安全過程中,可以將數(shù)據(jù)接入入口進行統(tǒng)一安排,統(tǒng)一管理。按照應用或用戶對服務調(diào)用進行攔截或統(tǒng)計等處理。
本發(fā)明實施例提供的一種對應用程序進行安全檢測的方法,通過不同角度檢測應用程序是否安全,當檢測應用程序存在危險因素時,及時采取相應的措施。通過對應用程序加固,還可以間接實現(xiàn)保證數(shù)據(jù)的安全性、完整性和有效性。通過上述方案,可以從服務管理層面、系統(tǒng)層面、接口層面以及管理層面四個層次對應用程序進行全方位的加固,有效提供應用的安全性。
相應地,本發(fā)明實施例還提供了一種對應用程序進行安全檢測的裝置。圖2為本發(fā)明實施例提供的一種對應用程序進行安全檢測的裝置結(jié)構示意圖。如圖2所示,該裝置包括:獲取單元201,驗證單元202,處理單元203。
獲取單元201,用于獲取與應用程序的安裝包對應的簽名證書。
驗證單元202,用于對簽名證書進行驗證。
具體的,驗證單元202用于,采用哈希算法計算簽名證書對應的md5碼,當簽名證書對應的md5碼與預設的md5碼相同時,確定對安裝包對應的簽名證書驗證成功,否則驗證失敗。
處理單元203,用于當驗證單元202對簽名證書驗證成功時,判斷安裝包是否已經(jīng)進行封裝處理。
具體的,處理單元203對安裝包中的源程序代碼進行反編譯,如果反編譯成功時,則確定安裝包未被進行封裝處理;否則確定安裝包已經(jīng)被進行封裝處理。
當確定安裝包未被進行封裝處理時,向用戶發(fā)出提示消息,提示消息用于指示安裝包存在安全風險,以便用戶對其進行封裝處理;或者,當確定安裝包已經(jīng)被進行封裝處理時,結(jié)束操作。
優(yōu)選的,處理單元203還用于,當檢測源代碼被啟動運行,且存在對源代碼進行非法調(diào)試的情況發(fā)生時,阻止源代碼的運行。
進一步優(yōu)選的,處理單元203還用于,判斷應用程序的界面是否被劫持,當確定應用程序的界面被劫持時,及時提醒用戶做相應的防護處理。
本發(fā)明實施例提供的一種對應用程序進行安全檢測的裝置,通過不同角度檢測應用程序是否安全,當檢測應用程序存在危險因素時,及時采取相應的措施。通過對應用程序加固,還可以間接實現(xiàn)保證數(shù)據(jù)的安全性、完整性和有效性。通過上述方案,可以從服務管理層面、系統(tǒng)層面、接口層面以及管理層面四個層次對應用程序進行全方位的加固,有效提供應用的安全性。
讀者應理解,在本說明書的描述中,參考術語“一個實施例”、“一些實施例”、“示例”、“具體示例”、或“一些示例”等的描述意指結(jié)合該實施例或示例描述的具體特征、結(jié)構、材料或者特點包含于本發(fā)明的至少一個實施例或示例中。在本說明書中,對上述術語的示意性表述不必針對的是相同的實施例或示例。而且,描述的具體特征、結(jié)構、材料或者特點可以在任一個或多個實施例或示例中以合適的方式結(jié)合。此外,在不相互矛盾的情況下,本領域的技術人員可以將本說明書中描述的不同實施例或示例以及不同實施例或示例的特征進行結(jié)合和組合。
盡管上面已經(jīng)示出和描述了本發(fā)明的實施例,可以理解的是,上述實施例是示例性的,不能理解為對本發(fā)明的限制,本領域的普通技術人員在本發(fā)明的范圍內(nèi)可以對上述實施例進行變化、修改、替換和變型。