手机看片精品高清国产日韩,色先锋资源综合网,国产哺乳奶水91在线播放,乱伦小说亚洲色图欧洲电影

淺談Android App漏洞

2021-05-17 10:22:40 9776

圖1是對(duì)某應(yīng)用市場(chǎng)的Android App產(chǎn)品中近50款應(yīng)用定期監(jiān)控的漏洞統(tǒng)計(jì)數(shù)據(jù)分布。


1.jpg

圖1  某應(yīng)用市場(chǎng)近50款應(yīng)用漏洞統(tǒng)計(jì)數(shù)據(jù)


一、 敏感信息泄露

敏感信息可分為產(chǎn)品敏感信息和用戶敏感信息兩類。

泄露后直接對(duì)企業(yè)安全造成重大損失或有助于幫助攻擊者獲取企業(yè)內(nèi)部信息,并可能幫助攻擊者嘗試更多的攻擊路徑的信息,如登錄密碼、后臺(tái)登錄及數(shù)據(jù)庫(kù)地址、服務(wù)器部署的絕對(duì)路徑、內(nèi)部IP、地址分配規(guī)則、網(wǎng)絡(luò)拓?fù)?、?yè)面注釋信息(開(kāi)發(fā)者姓名或工號(hào)、程序源代碼)。

用戶隱私保護(hù)主要考慮直接通過(guò)該數(shù)據(jù)或結(jié)合該數(shù)據(jù)與其他的信息,可以識(shí)別出自然人的信息。一旦發(fā)生數(shù)據(jù)泄露事件,可以被惡意人員利用并獲取不當(dāng)利潤(rùn)。

用戶敏感信息是例如在App的開(kāi)發(fā)過(guò)程中,為了方便調(diào)試,通常會(huì)使用log函數(shù)輸出一些關(guān)鍵流程的信息,這些信息中通常會(huì)包含敏感內(nèi)容,如執(zhí)行流程、明文的用戶名密碼等,這會(huì)讓攻擊者更加容易地了解App內(nèi)部結(jié)構(gòu)方便破解和攻擊,甚至直接獲取到有價(jià)值的敏感信息。

所以要在產(chǎn)品的線上版本中關(guān)閉調(diào)試接口,禁止輸出敏感信息。

二、Content Provider的SQL注入

在使用Content Provider時(shí),將組件導(dǎo)出,提供了Query接口。由于Query接口傳入的參數(shù)直接或間接由接口調(diào)用者傳入,攻擊者構(gòu)造SQL注入語(yǔ)句,造成信息的泄露甚至是應(yīng)用私有數(shù)據(jù)的惡意改寫和刪除。

解決方案如下。

1.Provider不需要導(dǎo)出,請(qǐng)將export屬性設(shè)置為False。

2.若導(dǎo)出僅為內(nèi)部通信使用,則設(shè)置protectionLevel=Signature。

3.不直接使用傳入的查詢語(yǔ)句用于 projection和selection,使用由 Query 綁定的參數(shù)selectionArgs。

4.完備的SQL注入語(yǔ)句檢測(cè)邏輯。

三、 利用可調(diào)試的App

說(shuō)到任意調(diào)試漏洞,就要提到AndroidManifest.xml,它是每個(gè)Android程序中必需的文件。它位于整個(gè)項(xiàng)目的根目錄,描述了package中暴露的組件(Activities、Services等)、它們各自的實(shí)現(xiàn)類、各種能被處理的數(shù)據(jù)和啟動(dòng)位置。除了能聲明程序中的 Activities、ContentProviders、Services和Intent Receivers,還能指定permissions和instrumentation(安全控制和測(cè)試)。

而在AndroidManifest.xml文件中,debuggable屬性值被設(shè)置為True時(shí)(默認(rèn)為false),該程序可被任意調(diào)試,這就產(chǎn)生了任意調(diào)試漏洞。

可被動(dòng)態(tài)調(diào)試,增加了APK被破解、分析的風(fēng)險(xiǎn)。

目前動(dòng)態(tài)調(diào)試器的功能都很強(qiáng)大,如果debuggable屬性為True,則可輕易被調(diào)試,通常用于重要代碼邏輯分析、破解付費(fèi)功能等。

圖2是IDA的調(diào)試界面,可以下斷點(diǎn)、單步執(zhí)行,調(diào)試過(guò)程中可以看到變量?jī)?nèi)容,即使沒(méi)有Java代碼,反編譯后的Smali代碼也比較容易閱讀,加上動(dòng)態(tài)調(diào)試,對(duì)App的逆向分析將變得很容易。


2.jpg

圖2  IDA調(diào)試界面


四、中間人攻擊

HTTPS 中間人攻擊漏洞的來(lái)源有:沒(méi)有對(duì) SSL 證書進(jìn)行校驗(yàn)、沒(méi)有對(duì)域名進(jìn)行校驗(yàn)、證書頒發(fā)機(jī)構(gòu)(Certification Authority)被攻擊導(dǎo)致私鑰泄露等。

實(shí)現(xiàn)的X509TrustManager接口的Java代碼片段如下。其中的checkServerTrusted()方法實(shí)現(xiàn)為空,即不檢查服務(wù)器是否可信。


image.png


五、動(dòng)態(tài)注冊(cè)廣播組件暴露風(fēng)險(xiǎn)

Android可以在配置文件中聲明一個(gè)Receiver或動(dòng)態(tài)注冊(cè)一個(gè)Receiver來(lái)接收廣播信息,攻擊者假冒App構(gòu)造廣播發(fā)送給被攻擊的Receiver,是被攻擊的App執(zhí)行某些敏感行為或返回敏感信息等,如果Receiver接收到有害的數(shù)據(jù)或命令時(shí),可能泄露數(shù)據(jù)或做一些不當(dāng)?shù)牟僮鳎瑫?huì)造成用戶的信息泄露甚至財(cái)產(chǎn)損失。

六、WebView密碼明文保存漏洞

在使用WebView的過(guò)程中忽略了WebView setSavePassword,當(dāng)用戶選擇保存在WebView中輸入的用戶名和密碼,則會(huì)被明文保存到應(yīng)用數(shù)據(jù)目錄的databases/webview.db中。如果手機(jī)被Root就可以獲取明文保存的密碼,造成用戶的個(gè)人敏感數(shù)據(jù)泄露。

七、加密算法漏洞

以下幾種行為會(huì)有產(chǎn)生加密算法漏洞的危險(xiǎn)。

(1)使用 AES/DES/DESede 加密算法時(shí),如果使用ECB 模式,容易受到攻擊風(fēng)險(xiǎn),造成信息泄露。

(2)代碼中生成秘鑰時(shí)使用明文硬編碼,易被輕易破解。

(3)使用不安全的散列算法(MD5/SHA-1)加密信息,易被破解。

(4)生成的隨機(jī)數(shù)具有確定性,存在被破解的風(fēng)險(xiǎn)。











提交成功!非常感謝您的反饋,我們會(huì)繼續(xù)努力做到更好!

這條文檔是否有幫助解決問(wèn)題?

非常抱歉未能幫助到您。為了給您提供更好的服務(wù),我們很需要您進(jìn)一步的反饋信息:

在文檔使用中是否遇到以下問(wèn)題: