Android應用程序漏洞防禦措施打開的正確方式!

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

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

1、門戶大開:常見漏洞攻擊的3個入口app

1)導出組件
導出組件,是Android上最多見,門檻最低的攻擊入口,如manifest中組件設置不當的話,就存在被任意調用的可能,最多見的是拒絕服務攻擊。
示例:
圖片描述socket

防禦措施:對外暴露的組件要作到「最小化」輸出,發佈前作好安全檢測分析,提早發現風險。工具

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

示例:
固定端口的監控掃描
圖片描述spa

Socket實現,若是不作訪問控制,協議安全性又比較弱,那後果就嚴重了
圖片描述插件

防禦措施:端口隨機化,訪問要控制,協議要加密。設計

3)插件加載
插件加載設計很廣泛, so加載、dex加載…..但由於插件存儲不安全,很容易被人篡改和替換,若是沒有在加載過程作校驗的話,那就有可能被人用僞造的插件來進行任意代碼執行。移動應用開發

示例:
公共目錄存儲的插件
圖片描述

Dex加載沒校驗,存在任意代碼執行的風險…
圖片描述

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

防禦措施:存儲要安全,別讓別人碰。加載要校驗,個人地盤我作主。

2、偷樑換柱:常見漏洞攻擊的2種手段

1)僞造通訊
常見僞造通訊類型有:進程內組件間的Intent通訊、遠程Service通訊、Socket的IPC通訊等,若是沒有嚴格的通訊校驗,攻擊者經過僞造通訊數據,達到不可告人的目的。

示例:
經過暴露的遠程service,僞造通訊數據,實現應用程序遠程下載和安裝
圖片描述

僞造socket通訊數據,實現應用特定指令執行,盜取敏感數據
圖片描述

防禦措施:協議數據要加密,通訊訪問要驗證。

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

示例:
sdcard公共目錄下的so文件
圖片描述

應用程序的進程信息
圖片描述

代碼注入
圖片描述

防禦措施:注意插件存儲安全,儘可能避免公共目錄存儲;同時插件加載要校驗,以避免被劫持注入。

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

因此安卓應用程序要作好自身的防禦措施,同時藉助專業的安全服務平臺,如騰訊御安全,除了擁有專業級加固解決方案以外,還提供APP漏洞掃描服務,開發者可發現常見的漏洞及風險,完美避開大規模工具攻擊。

(騰訊御安全原創,轉載請註明來源)

相關文章
相關標籤/搜索