一種提高移動(dòng)終端應(yīng)用加載安全性的方法和裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本申請(qǐng)涉及電數(shù)字?jǐn)?shù)據(jù)處理領(lǐng)域,尤其涉及一種在移動(dòng)終端中加載應(yīng)用程序時(shí)提高系統(tǒng)安全性的方法和/或裝置。
【背景技術(shù)】
[0002]在Linux系統(tǒng)中,支持進(jìn)程采用dlopen技術(shù)來(lái)動(dòng)態(tài)加載動(dòng)態(tài)庫(kù)。這種方式方便了軟件的開(kāi)發(fā),但同時(shí)也帶來(lái)了安全性問(wèn)題。
[0003]在應(yīng)用導(dǎo)入系統(tǒng)之前,廠家一般會(huì)對(duì)應(yīng)用進(jìn)行安全性檢測(cè),其手段包括二進(jìn)制代碼分析以及軟件行為檢測(cè)。
[0004]由于進(jìn)程可以實(shí)際部署后,將具有惡意的代碼下載到本地,然后再采用dlopen的技術(shù)進(jìn)行加載,那么其完全可以躲過(guò)二進(jìn)制分析的階段,從而產(chǎn)生安全性風(fēng)險(xiǎn)。
【發(fā)明內(nèi)容】
[0005]本申請(qǐng)的目標(biāo)在于提供一種能在加載應(yīng)用程序時(shí)提高系統(tǒng)安全性的方法和/或裝置。
[0006]本申請(qǐng)的目標(biāo)由一種提高移動(dòng)終端應(yīng)用加載安全性的方法實(shí)現(xiàn),其中加載應(yīng)用程序時(shí)加載動(dòng)態(tài)庫(kù),該方法包括:
[0007]在將動(dòng)態(tài)庫(kù)文件映射到內(nèi)存空間時(shí)確定所述動(dòng)態(tài)庫(kù)文件是否被設(shè)為執(zhí)行權(quán)限;
[0008]在確定所述動(dòng)態(tài)庫(kù)文件被設(shè)為執(zhí)行權(quán)限時(shí),檢測(cè)所述動(dòng)態(tài)庫(kù)文件是否安全;
[0009]僅在確定所述動(dòng)態(tài)庫(kù)文件安全時(shí)允許所述動(dòng)態(tài)庫(kù)文件映射到內(nèi)存空間。
[0010]本申請(qǐng)的目標(biāo)還由一種提高移動(dòng)終端應(yīng)用加載安全性的裝置實(shí)現(xiàn),其中加載應(yīng)用程序時(shí)加載動(dòng)態(tài)庫(kù),該裝置包括:
[0011 ]映射目標(biāo)檢查模塊,用于在將動(dòng)態(tài)庫(kù)文件映射到內(nèi)存空間時(shí)確定所述動(dòng)態(tài)庫(kù)文件是否被設(shè)為執(zhí)行權(quán)限;
[0012]安全檢測(cè)模塊,用于在確定所述動(dòng)態(tài)庫(kù)文件被設(shè)為執(zhí)行權(quán)限時(shí)檢測(cè)所述動(dòng)態(tài)庫(kù)文件是否安全;
[0013]映射許可模塊,用于僅在確定所述動(dòng)態(tài)庫(kù)文件安全時(shí)允許所述動(dòng)態(tài)庫(kù)文件映射到內(nèi)存空間。
[0014]本發(fā)明通過(guò)限制進(jìn)程加載動(dòng)態(tài)庫(kù)的能力,從而使應(yīng)用在上架前檢測(cè)的二進(jìn)制代碼與應(yīng)用安裝后實(shí)際運(yùn)行時(shí)保持一致,從而使對(duì)應(yīng)用的二進(jìn)制分析更加有效,從而提高系統(tǒng)的安全性。
[0015]除非明確指出,在此所用的單數(shù)形式“一”、“該”均包括復(fù)數(shù)含義(即具有“至少一”的意思)。應(yīng)當(dāng)進(jìn)一步理解,說(shuō)明書(shū)中使用的術(shù)語(yǔ)“具有”、“包括”和/或“包含”表明存在所述的特征、步驟、操作、元件和/或部件,但不排除存在或增加一個(gè)或多個(gè)其他特征、步驟、操作、元件、部件和/或其組合。如在此所用的術(shù)語(yǔ)“和/或”包括一個(gè)或多個(gè)列舉的相關(guān)項(xiàng)目的任何及所有組合。除非明確指出,在此公開(kāi)的任何方法的步驟不必精確按照所公開(kāi)的順序執(zhí)行。
【附圖說(shuō)明】
[0016]本發(fā)明將在下面參考附圖并結(jié)合優(yōu)選實(shí)施例進(jìn)行更完全地說(shuō)明。
[0017]圖1為根據(jù)本發(fā)明方法的一實(shí)施例的流程圖。
[0018]圖2為根據(jù)本發(fā)明方法的另一實(shí)施例的流程圖。
[0019]圖3為根據(jù)本發(fā)明裝置的一實(shí)施例的結(jié)構(gòu)示意圖。
[0020]為清晰起見(jiàn),這些附圖均為示意性及簡(jiǎn)化的圖,它們只給出了對(duì)于理解本發(fā)明所必要的細(xì)節(jié),而省略其他細(xì)節(jié)。
【具體實(shí)施方式】
[0021]通過(guò)下面給出的詳細(xì)描述,本發(fā)明的適用范圍將顯而易見(jiàn)。然而,應(yīng)當(dāng)理解,在詳細(xì)描述和具體例子表明本發(fā)明優(yōu)選實(shí)施例的同時(shí),它們僅為說(shuō)明目的給出。
[0022]圖1示出了本發(fā)明方法的一實(shí)施例,該方法用于在移動(dòng)終端中加載應(yīng)用程序時(shí)提高系統(tǒng)的安全性。通過(guò)dlopen的方式加載動(dòng)態(tài)庫(kù),必然涉及到將動(dòng)態(tài)庫(kù)文件使用mmap系統(tǒng)調(diào)用映射到進(jìn)程的內(nèi)存空間,該方法通過(guò)在Linux內(nèi)核中的mmap系統(tǒng)調(diào)用中檢測(cè)動(dòng)態(tài)庫(kù)文件的安全性來(lái)提高系統(tǒng)的安全性。該實(shí)施例的方法開(kāi)始于步驟S20,在將動(dòng)態(tài)庫(kù)文件映射到內(nèi)存空間時(shí)內(nèi)核確定所述動(dòng)態(tài)庫(kù)文件是否被設(shè)為執(zhí)行權(quán)限。所謂“執(zhí)行”指CPU會(huì)將其作為指令代碼進(jìn)行運(yùn)行。執(zhí)行文件在映射到內(nèi)存空間中時(shí),會(huì)以這樣的形式存在:b6e58000-b6eb0000r-xp/usr/liblog.so,其中r_xp為內(nèi)存空間的權(quán)限,x:代表了執(zhí)行。在確定所述動(dòng)態(tài)庫(kù)文件被設(shè)為執(zhí)行權(quán)限時(shí),處理進(jìn)行到步驟S30,在移動(dòng)終端設(shè)備中,應(yīng)用的安裝目錄固定在某一特定目錄,應(yīng)用的可寫目錄主要包括:應(yīng)用的數(shù)據(jù)目錄、SD卡目錄。應(yīng)用的可寫數(shù)據(jù)目錄與安裝目錄會(huì)有對(duì)應(yīng)關(guān)系。進(jìn)程啟動(dòng)后,其進(jìn)程的cmdline會(huì)指向應(yīng)用的安裝目錄。在該情形下,檢查動(dòng)態(tài)庫(kù)文件路徑,看其是否屬于系統(tǒng)分區(qū);和/或檢查動(dòng)態(tài)庫(kù)文件是否位于應(yīng)用的安裝目錄,這可以通過(guò)cmdline信息來(lái)獲得。之后,在動(dòng)態(tài)庫(kù)文件屬于系統(tǒng)分區(qū)或者動(dòng)態(tài)庫(kù)文件位于應(yīng)用的安裝目錄時(shí),處理進(jìn)行到步驟S40,允許所述動(dòng)態(tài)庫(kù)文件映射到內(nèi)存空間。否則,如果不屬于上述兩種情況,則處理進(jìn)行到步驟S50,拒絕該動(dòng)態(tài)庫(kù)文件的映射。
[0023]通過(guò)區(qū)分出進(jìn)行映射的動(dòng)態(tài)庫(kù)文件是系統(tǒng)動(dòng)態(tài)庫(kù)還是應(yīng)用自己下載的文件應(yīng)用,設(shè)定通過(guò)dlopen的方式打開(kāi)系統(tǒng)動(dòng)態(tài)庫(kù)是合法的,而打開(kāi)應(yīng)用自己下載的文件是非法的,確保應(yīng)用自己下載的文件無(wú)法躲過(guò)安全性檢測(cè),提高了系統(tǒng)的安全性。
[0024]圖2示出了本發(fā)明方法的另一實(shí)施例,該實(shí)施例的方法開(kāi)始于步驟S10,使應(yīng)用程序的安裝目錄下的所有文件可設(shè)置可執(zhí)行權(quán)限。之后,處理進(jìn)行到步驟S15,使所述安裝目錄之外的其它位置的任何文件不能加入執(zhí)行權(quán)限。之后,處理進(jìn)行到步驟S20,在將動(dòng)態(tài)庫(kù)文件映射到內(nèi)存空間時(shí)內(nèi)核確定所述動(dòng)態(tài)庫(kù)文件是否被設(shè)為執(zhí)行權(quán)限。在確定所述動(dòng)態(tài)庫(kù)文件被設(shè)為執(zhí)行權(quán)限時(shí),處理進(jìn)行到步驟S30’,檢查動(dòng)態(tài)庫(kù)文件是否具有可執(zhí)行權(quán)限,如果有執(zhí)行權(quán)限,則處理進(jìn)行到步驟S40,允許所述動(dòng)態(tài)庫(kù)文件映射到內(nèi)存空間。否則,處理進(jìn)行到步驟S50,拒絕該動(dòng)態(tài)庫(kù)文件的映射。
[0025]圖3示出了本發(fā)明裝置的一實(shí)施例,該裝置用于提高移動(dòng)終端應(yīng)用加載安全性,其中加載應(yīng)用程序時(shí)加載動(dòng)態(tài)庫(kù),該裝置包括:映射目標(biāo)檢查模塊20,用于在將動(dòng)態(tài)庫(kù)文件映射到內(nèi)存空間時(shí)確定所述動(dòng)態(tài)庫(kù)文件是否被設(shè)為執(zhí)行權(quán)限;安全檢測(cè)模塊30,用于在確定所述動(dòng)態(tài)庫(kù)文件被設(shè)為執(zhí)行權(quán)限時(shí)檢測(cè)所述動(dòng)態(tài)庫(kù)文件是否安全。在該實(shí)施例中,安全檢測(cè)模塊30包括:文件路徑檢查子模塊31,用于檢查所述動(dòng)態(tài)庫(kù)文件的文件路徑;安全確定子模塊32,用于根據(jù)所述文件路徑確定所述動(dòng)態(tài)庫(kù)文件屬于系統(tǒng)分區(qū)時(shí)確定其安全,或者在所述動(dòng)態(tài)庫(kù)文件位于加載其的應(yīng)用程序的安裝目錄時(shí)確定其安全。該實(shí)施例的裝置還包括映射許可模塊40,用于僅在確定所述動(dòng)態(tài)庫(kù)文件安全時(shí)允許所述動(dòng)態(tài)庫(kù)文件映射到內(nèi)存空間。
[0026]在其它實(shí)施例中,安全確定子模塊32還可以用于在所述動(dòng)態(tài)庫(kù)文件具有可執(zhí)行權(quán)限時(shí)確定其安全。
[0027]—些優(yōu)選實(shí)施例已經(jīng)在前面進(jìn)行了說(shuō)明,但是應(yīng)當(dāng)強(qiáng)調(diào)的是,本發(fā)明不局限于這些實(shí)施例,而是可以本發(fā)明主題范圍內(nèi)的其它方式實(shí)現(xiàn)。
【主權(quán)項(xiàng)】
1.一種提高移動(dòng)終端應(yīng)用加載安全性的方法,其中加載應(yīng)用程序時(shí)加載動(dòng)態(tài)庫(kù),其特征在于,所述方法包括: 在將動(dòng)態(tài)庫(kù)文件映射到內(nèi)存空間時(shí)確定所述動(dòng)態(tài)庫(kù)文件是否被設(shè)為執(zhí)行權(quán)限; 在確定所述動(dòng)態(tài)庫(kù)文件被設(shè)為執(zhí)行權(quán)限時(shí),檢測(cè)所述動(dòng)態(tài)庫(kù)文件是否安全; 僅在確定所述動(dòng)態(tài)庫(kù)文件安全時(shí)允許所述動(dòng)態(tài)庫(kù)文件映射到內(nèi)存空間。2.根據(jù)權(quán)利要求1所述的方法,其特征在于,檢測(cè)所述動(dòng)態(tài)庫(kù)文件是否安全包括: 檢查所述動(dòng)態(tài)庫(kù)文件的文件路徑; 根據(jù)所述文件路徑確定所述動(dòng)態(tài)庫(kù)文件屬于系統(tǒng)分區(qū)時(shí)確定其安全。3.根據(jù)權(quán)利要求1所述的方法,其特征在于,檢測(cè)所述動(dòng)態(tài)庫(kù)文件是否安全包括: 在所述動(dòng)態(tài)庫(kù)文件位于加載其的應(yīng)用程序的安裝目錄時(shí)確定其安全。4.根據(jù)權(quán)利要求3所述的方法,其特征在于,通過(guò)解析內(nèi)核配置文件中的cmdlind^確定所述動(dòng)態(tài)庫(kù)文件是否位于所述安裝目錄。5.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述方法還包括: 使應(yīng)用程序的安裝目錄下的所有文件可設(shè)置可執(zhí)行權(quán)限; 使所述安裝目錄之外的其它位置的任何文件不能加入執(zhí)行權(quán)限。6.根據(jù)權(quán)利要求5所述的方法,其特征在于,檢測(cè)所述動(dòng)態(tài)庫(kù)文件是否安全包括: 在所述動(dòng)態(tài)庫(kù)文件具有可執(zhí)行權(quán)限時(shí)確定其安全。7.—種提高移動(dòng)終端應(yīng)用加載安全性的裝置,其中加載應(yīng)用程序時(shí)加載動(dòng)態(tài)庫(kù),其特征在于,所述裝置包括: 映射目標(biāo)檢查模塊,用于在將動(dòng)態(tài)庫(kù)文件映射到內(nèi)存空間時(shí)確定所述動(dòng)態(tài)庫(kù)文件是否被設(shè)為執(zhí)行權(quán)限; 安全檢測(cè)模塊,用于在確定所述動(dòng)態(tài)庫(kù)文件被設(shè)為執(zhí)行權(quán)限時(shí)檢測(cè)所述動(dòng)態(tài)庫(kù)文件是否安全; 映射許可模塊,用于僅在確定所述動(dòng)態(tài)庫(kù)文件安全時(shí)允許所述動(dòng)態(tài)庫(kù)文件映射到內(nèi)存空間。8.根據(jù)權(quán)利要求7所述的裝置,其特征在于,所述安全檢測(cè)模塊包括: 文件路徑檢查子模塊,用于檢查所述動(dòng)態(tài)庫(kù)文件的文件路徑; 安全確定子模塊,用于根據(jù)所述文件路徑確定所述動(dòng)態(tài)庫(kù)文件屬于系統(tǒng)分區(qū)時(shí)確定其安全。9.根據(jù)權(quán)利要求7所述的裝置,其特征在于,所述安全檢測(cè)模塊包括: 安全確定子模塊,用于在所述動(dòng)態(tài)庫(kù)文件位于加載其的應(yīng)用程序的安裝目錄時(shí)確定其安全。10.根據(jù)權(quán)利要求7所述的裝置,其特征在于,所述安全檢測(cè)模塊包括: 安全確定子模塊,用于在所述動(dòng)態(tài)庫(kù)文件具有可執(zhí)行權(quán)限時(shí)確定其安全。
【專利摘要】本申請(qǐng)公開(kāi)了一種提高移動(dòng)終端應(yīng)用加載安全性的方法和裝置,其中加載應(yīng)用程序時(shí)加載動(dòng)態(tài)庫(kù),所述方法包括:在將動(dòng)態(tài)庫(kù)文件映射到內(nèi)存空間時(shí)確定所述動(dòng)態(tài)庫(kù)文件是否被設(shè)為執(zhí)行權(quán)限;在確定所述動(dòng)態(tài)庫(kù)文件被設(shè)為執(zhí)行權(quán)限時(shí),檢測(cè)所述動(dòng)態(tài)庫(kù)文件是否安全;僅在確定所述動(dòng)態(tài)庫(kù)文件安全時(shí)允許所述動(dòng)態(tài)庫(kù)文件映射到內(nèi)存空間。本申請(qǐng)的方法和裝置能在加載應(yīng)用程序時(shí)提高系統(tǒng)的安全性。
【IPC分類】G06F21/57, G06F21/51
【公開(kāi)號(hào)】CN105653961
【申請(qǐng)?zhí)枴?br>【發(fā)明人】史子旺
【申請(qǐng)人】北京元心科技有限公司
【公開(kāi)日】2016年6月8日
【申請(qǐng)日】2015年12月31日