首先消防電話分機(jī)故障怎么屏蔽,說到 Android 應(yīng)用常被黑客利用的安全漏洞消防電話分機(jī)故障怎么屏蔽,如果拋開系統(tǒng)設(shè)計(jì)問題,其主要原因是開發(fā)過程當(dāng)中疏漏引起的。但其實(shí)也并不能把這些責(zé)任都怪在程序猿頭上。所以在這里也將由鼎源科技的安全工程師對 Android 系統(tǒng)設(shè)計(jì)以及生態(tài)環(huán)境做一些闡述。
1. 應(yīng)用反編譯
漏洞:APK 包非常容易被反編譯成可讀文件,稍加修改就能重新打包成新的 APK。
利用:軟件破解,內(nèi)購破解,軟件邏輯修改,插入惡意代碼,替換廣告商 ID。
建議:使用 ProGuard 等工具混淆代碼,重要邏輯用 NDK 實(shí)現(xiàn)。
例子:反編譯重打包 FlappyBird,把廣告商 ID 換了,游戲改加插一段惡意代碼等等。
2. 數(shù)據(jù)的存儲與傳輸
漏洞:外部存儲(SD 卡)上的文件沒有權(quán)限管理,所有應(yīng)用都可讀可寫。開發(fā)者把敏感信息明文存在 SD 卡上,或者動態(tài)加載的 payload 放在 SD 卡上。
利用:竊取敏感信息,篡改配置文件,修改 payload 邏輯并重打包。
建議:不要把敏感信息放在外部存儲上面;在動態(tài)加載外部資源的時候驗(yàn)證文件完整性。
漏洞:使用全局可讀寫(MODE_WORLD_READABLE,MODE_WORLD_WRITEABLE)的內(nèi)部存儲方式,或明文存儲敏感信息(用戶賬號密碼等)。
利用:全局讀寫敏感信息,或 root 后讀取明文信息。
建議:不適用全局可讀寫的內(nèi)部存儲方式,不明文存儲用戶賬號密碼。
3. 密碼泄露
漏洞:密碼明文存儲,傳輸。
利用:
root 后可讀寫內(nèi)部存儲。
SD 卡全局可讀寫。
公共 WiFi 抓包獲取賬號密碼。
建議:實(shí)用成熟的加密方案。不要把密碼明文存儲在 SD 卡上。
4. 組件暴露 (Activity, Service, Broadcast Receiver, Content Provider)
漏洞:
組件在被調(diào)用時未做驗(yàn)證。
在調(diào)用其他組件時未做驗(yàn)證。
利用:
調(diào)用暴露的組件,達(dá)到某種效果,獲取某些信息,構(gòu)造某些數(shù)據(jù)。(比如:調(diào)用暴露的組件發(fā)短信、微博等)。
監(jiān)聽暴露組件,讀取數(shù)據(jù)。
建議:驗(yàn)證輸入信息、驗(yàn)證組件調(diào)用等。android:exported 設(shè)置為 false。使用 android:protectionLevel="signature" 驗(yàn)證調(diào)用來源。
5. WebView
漏洞:
惡意 App 可以注入 Java 代碼進(jìn)入 WebView 中的網(wǎng)頁,網(wǎng)頁未作驗(yàn)證。
惡意網(wǎng)頁可以執(zhí)行 Java 反過來調(diào)用 App 中注冊過的方法,或者使用資源。
利用:
惡意程序嵌入 Web App,然后竊取用戶信息。
惡意網(wǎng)頁遠(yuǎn)程調(diào)用 App 代碼。更有甚者,通過 Java Reflection 調(diào)用 Runtime 執(zhí)行任意代碼。
建議:不使用 WebView 中的 setJavaEnabled(true),或者使用時對輸入進(jìn)行驗(yàn)證。
6. 其他漏洞
ROOT 后的手機(jī)可以修改 App 的內(nèi)購,或者安裝外掛 App 等。
Logcat 泄露用戶敏感信息。
惡意的廣告包。
利用 next Intent。
7. 總結(jié)
Android 應(yīng)用的漏洞大部分都是因?yàn)殚_發(fā)人員沒有對輸入信息做驗(yàn)證造成的,另外因?yàn)?Intent 這種特殊的機(jī)制,需要過濾外部的各種惡意行為。再加上 Android 應(yīng)用市場混亂,開發(fā)人員水平參差不齊。導(dǎo)致現(xiàn)在 Android 應(yīng)用被黑客們通過漏洞散發(fā)惡意軟件,釣魚等行為還在不斷增多。還有就是現(xiàn)在安卓機(jī)非常普遍的 root 對于 App 沙箱的破壞和Android 升級的限制。國內(nèi)的 Android 環(huán)境一片混亂,慘不忍睹。
評論列表
還沒有評論,快來說點(diǎn)什么吧~