国产欧美日韩第一页|日本一二三不卡视频|在线精品小视频,亚洲第一免费播放区,metcn人体亚洲一区,亚洲精品午夜视频

淺談Android App漏洞

2021-05-17 10:22:40 4503

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


1.jpg

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


一、 敏感信息泄露

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

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

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

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

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

二、Content Provider的SQL注入

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

解決方案如下。

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

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

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

4.完備的SQL注入語句檢測邏輯。

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

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

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

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

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

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


2.jpg

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


四、中間人攻擊

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

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


image.png


五、動態(tài)注冊廣播組件暴露風(fēng)險

Android可以在配置文件中聲明一個Receiver或動態(tài)注冊一個Receiver來接收廣播信息,攻擊者假冒App構(gòu)造廣播發(fā)送給被攻擊的Receiver,是被攻擊的App執(zhí)行某些敏感行為或返回敏感信息等,如果Receiver接收到有害的數(shù)據(jù)或命令時,可能泄露數(shù)據(jù)或做一些不當(dāng)?shù)牟僮鳎瑫斐捎脩舻男畔⑿孤渡踔霖敭a(chǎn)損失。

六、WebView密碼明文保存漏洞

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

七、加密算法漏洞

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

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

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

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

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











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

這條文檔是否有幫助解決問題?

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

在文檔使用中是否遇到以下問題: