久久久久亚洲AV色欲av,国产一区二区18禁止观看,91情侣在线精品国产,久久综合激情网,亚洲毛片99基地性色大全

<nav id="rhu4c"><video id="rhu4c"><span id="rhu4c"></span></video></nav>
      1. <th id="rhu4c"></th>

          <code id="rhu4c"></code><code id="rhu4c"><menu id="rhu4c"><optgroup id="rhu4c"></optgroup></menu></code>

          <pre id="rhu4c"></pre>

          湖北企業(yè)新聞網(wǎng),歡迎您!

          幫助中心 廣告聯(lián)系

          網(wǎng)站關(guān)鍵詞: 湖北企業(yè)新聞網(wǎng)

          Android應(yīng)用安全之外部動(dòng)態(tài)加載DEX文件安全風(fēng)險(xiǎn)!

          來源:時(shí)間:2021-03-01 06:45:23 閱讀:-

          1. 外部動(dòng)態(tài)加載DEX文件風(fēng)險(xiǎn)描述

          Android 系統(tǒng)提供了一種類加載器DexClassLoader,其可以在運(yùn)行時(shí)動(dòng)態(tài)加載并解釋執(zhí)行包含在JAR或APK文件內(nèi)的DEX文件。外部動(dòng)態(tài)加載DEX文件的安全風(fēng)險(xiǎn)源于:Anroid4.1之前的系統(tǒng)版本容許Android應(yīng)用將動(dòng)態(tài)加載的DEX文件存儲(chǔ)在被其他應(yīng)用任意讀寫的目錄中(如sdcard),因此不能夠保護(hù)應(yīng)用免遭惡意代碼的注入;所加載的DEX易被惡意應(yīng)用所替換或者代碼注入,如果沒有對(duì)外部所加載的DEX文件做完整性校驗(yàn),應(yīng)用將會(huì)被惡意代碼注入,從而執(zhí)行的是惡意代碼;

          如果應(yīng)用沒有正確的動(dòng)態(tài)加載DEX文件,將會(huì)導(dǎo)致攻擊者的任意代碼被自動(dòng)執(zhí)行,進(jìn)一步實(shí)施欺詐、獲取賬號(hào)密碼或其他惡意行為等危害,如在烏云漏洞平臺(tái)上的類似漏洞:QQ游戲Android客戶端漏洞導(dǎo)致任意代碼執(zhí)行和密碼泄漏[1]。

          2. 外部動(dòng)態(tài)加載DEX文件影響范圍

          Android 系統(tǒng)

          3.外部動(dòng)態(tài)加載DEX文件風(fēng)險(xiǎn)詳情1) 風(fēng)險(xiǎn)位置:

          public DexClassLoader (String dexPath, String optimizedDirectory, String libraryPath, ClassLoader parent)[2]

          2) 風(fēng)險(xiǎn)觸發(fā)前提條件: 動(dòng)態(tài)加載的DEX文件存儲(chǔ)在被其他應(yīng)用讀寫的目錄中,如sdcard; 沒有對(duì)外部所加載的DEX文件做完整性校驗(yàn);3) 風(fēng)險(xiǎn)原理:

          動(dòng)態(tài)加載的DEX文件存儲(chǔ)在被其他應(yīng)用任意讀寫的目錄中(如sdcard),如果沒有對(duì)外部所加載的DEX文件做完整性校驗(yàn),應(yīng)用將會(huì)被惡意代碼注入,從而執(zhí)行的是惡意代碼;

          4. 外部動(dòng)態(tài)加載DEX文件風(fēng)險(xiǎn)證明

          利用DexClassLoader運(yùn)行時(shí)加載JAR/DEX文件,該將惡意代碼替換掉被加載的DEX文件,或向該被加載的DEX文件注入惡意代碼。

          被替換的所加載的JAR/DEX class的惡意代碼如下:

          Android應(yīng)用安全之外部動(dòng)態(tài)加載DEX文件安全風(fēng)險(xiǎn)

          動(dòng)態(tài)加載JAR/DEX的調(diào)用代碼:

          Android應(yīng)用安全之外部動(dòng)態(tài)加載DEX文件安全風(fēng)險(xiǎn)

          Android 4.1之前系統(tǒng)版本,結(jié)果顯示成功動(dòng)態(tài)加載JAR/DEX如下圖所示:

          Android 4.1之后系統(tǒng)版本,結(jié)果拋出異常“Optimized data directory /mnt/sdcard is not owned by the current user. Shared storage cannot protectyour application from code injection attacks.”:

          Android應(yīng)用安全之外部動(dòng)態(tài)加載DEX文件安全風(fēng)險(xiǎn)

          由于Android 4.1之后Android版本增加了對(duì)JAR/DEX存放目錄文件的user_id 和動(dòng)態(tài)加載JAR/DEX的進(jìn)程的user_id是否一致的判斷,如果不一致將拋出異常導(dǎo)致加載失敗,如下圖所示:

          4.1之前版本的Android系統(tǒng)DexFile.java代碼片段[3]:

          Android應(yīng)用安全之外部動(dòng)態(tài)加載DEX文件安全風(fēng)險(xiǎn)

          4.1及其之后版本的Android系統(tǒng)DexFile.java代碼片段[4]:

          Android應(yīng)用安全之外部動(dòng)態(tài)加載DEX文件安全風(fēng)險(xiǎn)

          5. 外部動(dòng)態(tài)加載DEX文件安全建議1. 將所需要?jiǎng)討B(tài)加載的DEX/APK文件放置在APK內(nèi)部或應(yīng)用私有目錄中[5]

          為了所加載的DEX/APK不被惡意代碼注入,阿里聚安全建議將要?jiǎng)討B(tài)加載的DEX/APK放置在APK內(nèi)部;

          2. 使用加密網(wǎng)絡(luò)協(xié)議進(jìn)行下載加載的DEX/APK文件并將其放置在應(yīng)用私有目錄中[5]

          阿里聚安全建議使用加密網(wǎng)絡(luò)協(xié)議進(jìn)行下載并將下載的DEX或APK放置在應(yīng)用的私有目錄;

          3. 對(duì)不可信的加載來源進(jìn)行完整性校驗(yàn)

          如果應(yīng)用必須將所加載的DEX或APK放置在能被其他應(yīng)用人意讀寫的目錄中(如sdcard)或使用沒有加密的網(wǎng)絡(luò)協(xié)議進(jìn)行下載加載源,阿里聚安全建議對(duì)這些不可信的加載源進(jìn)行完整性校驗(yàn)和白名單處理,以保證不被惡意代碼注入。

          推薦閱讀:南方都市網(wǎng)