1. 程式人生 > >關於Android應用程序漏洞的防護措施

關於Android應用程序漏洞的防護措施

android 應用程序 移動應用 開發者

目前,Android應用程序市場的發展速度飛快,不少開發者為了追求開發速度而忽應用程序的安全由於Android系統的開源性及其Java編寫的特殊性,各類Android App經常被爆出漏洞,有的Android開發者只是對App進行混淆代碼或是防二次打包,對於源碼的保護並不到位,同時也不清楚其中所隱藏的漏洞。


技術分享


騰訊禦安全作為一個專註於為個人和企業移動應用開發者提供全面的應用安全服務的平臺,其豐富的漏洞特征庫,能夠全面覆蓋已知漏洞,可對99%的安卓APP進行漏洞風險掃描。同時,基於廣大用戶的漏洞掃描案例,總結出以下幾點常見的漏洞


門戶大開:常見漏洞攻擊的3入口


1)導出組件

導出組件,是Android上最常見,門檻最低的攻擊入口,如manifest中組件設置不當的話,就存在被任意調用的可能,最常見的是拒絕服務攻擊。


示例:

技術分享

防護措施對外暴露的組件要做到“最小化”輸出發布前做好安全檢測分析,提前發現風險。


2)端口開放

應用通過監聽固定接口,使用socket來實現本地IPC、遠程網絡通信。這種監聽固定端口的方式很容易被局域網內攻擊程序探測到,這些暴露的socket如果沒有協議加密、沒有權限控制的話,就很容被利用,作為攻擊入口,輕者拒絕服務,重者遠程代碼執行


示例固定端口的監控掃描

技術分享

Socket實現,如果不做訪問控制,協議安全性又比較弱,那後果就嚴重了。

技術分享

防護措施端口隨機化,訪問要控制,協議要加密。


3)插件加載

插件加載設計很普遍, so加載、dex加…..但因為插件存儲不安全,很容易被人篡改和替換,如果沒有在加載過程做校驗的話,那就有可能人用偽造的插件來進行任意代碼執行


示例公共目錄存儲的插件

技術分享

Dex加載沒校驗,存在任意代碼執行的風險

技術分享

用System.load來進行so加載,如無校驗,存在被替換、篡改的風險。

技術分享

防護措施存儲要安全,別讓別人碰。加載要校驗,我的地盤我做主。


、偷梁換柱:常見漏洞攻擊2手段


1)偽造通信

常見偽造通信類型有:進程內組件間的Intent通信、遠程Service通信、Socket的IPC通信等如果沒有嚴格的通信校驗,攻擊者通過偽造通信數據,達到不可告人的目的。


示例:通過暴露的遠程service,偽造通信數據,實現應用程序遠程下載和安裝。

技術分享

偽造socket通信數據,實現應用特定指令執行,盜取敏感數據。

技術分享

防護措施協議數據要加密,通信訪問要驗證。


2)偽造文件

文件權限和校驗的失控,讓攻擊者有機可乘代碼文件存放在公共目錄,程序沒有對文件進行完整性校驗,就很容易造成應用的代碼被劫持,從而進行註入


示例sdcard公共目錄下的so文件

技術分享

應用程序的進程信息:

技術分享

代碼註入:

技術分享

防護措施註意插件存儲安全,盡量避免公目錄存儲插件加載要校驗,免被劫持註入。


APP作為通向海量用戶信息的入口,涉及到直接的金錢交易或個人隱私相關的應用的重要性是不言而喻的。而Android應用市場對app的審核相對iOS來說也比較寬泛,為很多漏洞提供了可乘之機。


所以安卓應用程序要做好自身的防護措施,同時借助專業安全服務平臺,如騰訊禦安全,除了擁有專業級加固解決方案之外,還提供APP漏洞掃描服務,開發者可發現常見的漏洞及風險,完美避開大規模工具攻擊。有需求的團隊可以登錄騰訊禦安全官網試用,或聯系我們(郵箱[email protected])。


本文出自 “騰訊手機管家” 博客,請務必保留此出處http://10812547.blog.51cto.com/10802547/1922521

關於Android應用程序漏洞的防護措施