你不知道的Android SDK安全測試

原文地址:

http://wetest.qq.com/lab/view/138.html?from=ads_test2_qqtips&sessionUserType=BFT.PARAMS.196734.TASKID&ADUIN=286513245&ADSESSION=1470806885&ADTAG=CLIENT.QQ.5485_.0&ADPUBNO=26602

本文由騰訊WeTest授權(quán)發(fā)布嘹屯,禁止任何形式轉(zhuǎn)載捏膨!

作者:anglia仰坦,騰訊資深系統(tǒng)測試工程師

引言

作為Android手機用戶中的一枚殘粉灵妨,假如突然手機掉了,腦電波蹦出的第一個念想是見鬼术羔,還是您的支付寶或者微信上的錢不安全呢苹支?

假如最新下載的app,進去時不僅彈出各種無聊廣告宣渗,而且通知欄還會冒出意想不到的推送,您會想到這可能是釣魚推送梨州,馬上卸載app痕囱?

假如百度全家桶事件,您卸載了所有的百度app暴匠,但烏云暴漏的百度WormHole事件鞍恢,無論是wifi或3G/4G蜂窩網(wǎng)絡(luò),只要手機在聯(lián)網(wǎng)狀態(tài)都有可能受到攻擊每窖,你是否會考慮換掉Android手機呢帮掉?

Mi粉狂熱已經(jīng)冷卻,華為手機開始跟著Android生態(tài)發(fā)展攻陷全球窒典,物美價廉的Android手機走入尋常百姓家蟆炊。面對Android安全漏洞認知不足的用戶,如何保證我們的app給用戶安心的體驗瀑志?Android生態(tài)安全漏洞有哪些涩搓?Android安全測試技術(shù)探新在哪兒?如何將安全常規(guī)測試流程化劈猪?

Android常見安全漏洞匯總

首先昧甘,Android操作系統(tǒng)擁有開源的開發(fā)紅利,也暗藏著后天發(fā)展的安全畸形战得,如:Android系統(tǒng)設(shè)計了沙箱系統(tǒng)(即虛擬機)充边,但是底層卻出現(xiàn)一個又一個漏洞讓惡意程序(或工具)獲取root權(quán)限以打破沙箱的限制。如同pc時代贡避,沒有絕對安全的pc操作系統(tǒng)痛黎,移動互聯(lián)網(wǎng)時代予弧,也沒有有絕對安全的移動操作系統(tǒng)刮吧。Android開源生態(tài)的安全隱患,就像染血的警鐘掖蛤,敲擊在每位Android開發(fā)者的心里杀捻。

其次,Android APP/SDK開發(fā)過程中的安全隱患就像未知黑洞蚓庭,永遠都不知道安全對抗的終點在哪致讥,攻擊者是誰仅仆,終結(jié)者又是誰,如何防御垢袱。

最后墓拜,用戶層面,常見的请契、可識別的安全行為漏洞有哪些表現(xiàn)咳榜。

以上三個維度的已知安全漏洞總結(jié)如下:

無論是Android App,還是SDK,或多或少都有安全漏洞的死角。說不定某天你的應(yīng)用就遭到以上的某種安全漏洞呢浪箭。恰巧到腥,前段時間測試一款A(yù)ndroid版SDK時,發(fā)現(xiàn)一種跟Android應(yīng)用組件相關(guān)的安全漏洞拧廊。借此實例化地總結(jié)了Android?SDK安全測試方法、技術(shù)和流程。

應(yīng)用Android版安全測試實例

漏洞原因概述

某款應(yīng)用(后面簡稱應(yīng)用)Android版SDK的一個可選組件雇毫,在本地開啟了一個隨機端口踩蔚,用于監(jiān)控java層service是否存活,但java層跟組件通訊時寂纪,未對輸入?yún)?shù)做嚴(yán)格檢驗,導(dǎo)致在調(diào)用linux系統(tǒng)“system()”函數(shù)時捞蛋,有被填充攻擊代碼孝冒,惡意攻擊的可能性。

如下截圖是模擬端口被攻擊后庄涡,在應(yīng)用組件intent進行通信過程中搬设,修改了url內(nèi)容穴店,webview顯示亂碼的情況:

漏洞潛在安全危害

Android APP的四大應(yīng)用組件:Activity、Receiver拿穴、Service和Content?provider泣洞,以及應(yīng)用組件通過intent進行IPC通信等安全角色默色,暫不發(fā)散詳述。借助于上述案例中應(yīng)用的組件相關(guān)漏洞,展示終端APP側(cè)相關(guān)的攻擊維度如下圖:

由于Android APP本地應(yīng)用環(huán)境缘厢,網(wǎng)絡(luò)socket先天缺乏細粒度的認證授權(quán)機制甩挫,因此,如果把Android客戶端當(dāng)做服務(wù)器伊者,利用逆向代碼搜索應(yīng)用的本地隨機端口號删壮,主動向端口發(fā)送攻擊,就潛伏著如下安全危害:

1.本地命令執(zhí)行:當(dāng)嵌入應(yīng)用的Packagename指定為應(yīng)用自身央碟,Componentname指定為應(yīng)用的activity時,可以啟動該應(yīng)用的任意activity菱涤,包括受保護的未導(dǎo)出activity洛勉,從而造成安全危害。如收毫,通過HTTP請求,逐一啟動若干未導(dǎo)出的activity昔搂,可以發(fā)現(xiàn)拒絕服務(wù)漏洞输拇。

2.命令控制修改應(yīng)用權(quán)限:通過開放socket端口傳入啟動Android應(yīng)用組件的intent,然后以被攻擊應(yīng)用的權(quán)限執(zhí)行啟動activity逛裤、發(fā)送廣播等操作猴抹。由于通過socket傳入的intent,無法對發(fā)送者的身份和權(quán)限進行細粒度檢查洽糟,繞過了Android提供的對應(yīng)用組件的權(quán)限保護坤溃,能啟動未導(dǎo)出的和受權(quán)限保護的應(yīng)用組件,對安全造成危害

3.敏感信息泄露薪介,控制手機:本地某service打開UDP的端口監(jiān)聽,接收特定的命令字后道偷,可返回手機的敏感信息记劈。如百度手機管家,遠程管理手機的secretKey目木,進而未授權(quán)的攻擊者可通過網(wǎng)絡(luò)完全管理手機刽射。

應(yīng)用Android安全測試執(zhí)行

應(yīng)用Android安全加固版本優(yōu)化點

1.Native層和Java層增加對系統(tǒng)命令檢查,特殊字符檢查過濾

2.JNI Watchdog守護進程 socket通信加密

3.本地通知功能誓禁,添加url、intent辫继、activity的特性驗證俗慈,防止點擊通知后,跳轉(zhuǎn)到惡意鏈接

4.修改Packagename在應(yīng)用本地的存儲位置

5.增加在線配置功能

以上是此次安全加固優(yōu)化的重要需求點低千。

專項安全點測試

如果按照常規(guī)的系統(tǒng)測試或者性能測試馏颂,只需要根據(jù)變動需求,進行正向的測試便可救拉,但對于安全測試亿絮,保證SDK安全的健壯性需要進行逆向?qū)m棞y試麸拄,模擬各種安全攻擊手段黔姜,針對修改點發(fā)散測試用例。

Android常規(guī)的安全流程回歸測試

1.隱私數(shù)據(jù):外部存儲安全和內(nèi)部存儲安全淮椰;用戶名纳寂、密碼、聊天記錄毙芜、配置信息等隱私信息是否被保存在本地,是否加密保存猾浦;使用數(shù)據(jù)前都判斷信息是否被篡改灯抛;

2.權(quán)限攻擊:檢查App所在的目錄,其權(quán)限必須為不允許其他組成員讀寫夹抗;檢查系統(tǒng)權(quán)限是否收到攻擊纵竖;

3.Android組件權(quán)限保護:禁止App內(nèi)部組件被任意第三方程序調(diào)用:禁止Activity被任意第三方程序調(diào)用,禁止Activity劫持靡砌;Broadcast的接收和發(fā)送安全通殃,只能接收本程序發(fā)出的廣播,發(fā)送的內(nèi)容不想讓第三方獲得画舌;禁止惡意的啟動或者停止service;Content ?provider的操作權(quán)限霹购;若需要供外部調(diào)用的組件朋腋,應(yīng)檢查對調(diào)用者是否做了簽名限制膜楷;

4.升級:檢查是否對升級包的完整性贞奋、合法性進行了校驗,避免升級包被劫持察蹲;

5.3rd庫:如果使用了第三方庫催训,需要跟進第三方庫的更新并且檢查第三方庫的安全性宗收;

6.ROM安全:使用官方ROM或者權(quán)威團隊提供的ROM,避免ROM中被添加了植入廣告采驻、木馬等匈勋;

7.對抗反破解:對抗反編譯,即無法通過反編譯工具對其進行反編譯洽洁,或者反編譯之后無法得到正確的反匯編代碼;對抗靜態(tài)分析汰翠,采用代碼混淆技術(shù)昭雌,代碼加密;對抗動態(tài)調(diào)試佛纫,在軟件中加入檢測調(diào)試器和模擬器的代碼总放;防止重編譯,檢查簽名攒盈、校驗編譯之后dex文件的Hash值哎榴。

安全專項測試和常規(guī)流程測試完后僵蛛,針對應(yīng)用現(xiàn)有的功能迎变、新舊版本兼容性、以及不同Android操作系統(tǒng)版本的兼容性驼侠,進行滾動回歸測試谆吴。

Android安全測試總結(jié)

相對于普通的性能和系統(tǒng)功能測試用例,安全測試用例需要更全面的理解Android生態(tài)系統(tǒng)笋熬,如:用例需要覆蓋到用戶安全表象層面腻菇、應(yīng)用系統(tǒng)本地和遠程攻擊層面、以及操作系統(tǒng)本身漏洞層面筹吐,且更多的需要設(shè)計逆向攻擊思維的測試用例丘薛。

如果說開發(fā)的出發(fā)點是安全對抗防御,那么測試的出發(fā)點卻是黑客攻擊的思維榔袋,如何設(shè)計攻擊場景的測試用例,攻擊測試的技術(shù)如何實現(xiàn)妥粟,決定了SDK安全的健壯性吏够。

相關(guān)參考文獻和案例

淺談Android開放網(wǎng)絡(luò)端口的安全風(fēng)險

app安全測試入門

百度系應(yīng)用WormHole漏洞細節(jié)分析

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末锅知,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子桩警,更是在濱河造成了極大的恐慌昌妹,老刑警劉巖握截,帶你破解...
    沈念sama閱讀 218,941評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件烂叔,死亡現(xiàn)場離奇詭異蒜鸡,居然都是意外死亡,警方通過查閱死者的電腦和手機逢防,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,397評論 3 395
  • 文/潘曉璐 我一進店門胞四,熙熙樓的掌柜王于貴愁眉苦臉地迎上來伶椿,“玉大人,你說我怎么就攤上這事导狡≠送矗” “怎么了?”我有些...
    開封第一講書人閱讀 165,345評論 0 356
  • 文/不壞的土叔 我叫張陵枚赡,是天一觀的道長谓谦。 經(jīng)常有香客問我,道長卢肃,這世上最難降的妖魔是什么才顿? 我笑而不...
    開封第一講書人閱讀 58,851評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮幅垮,結(jié)果婚禮上尾组,老公的妹妹穿的比我還像新娘巩螃。我一直安慰自己匕争,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,868評論 6 392
  • 文/花漫 我一把揭開白布拍皮。 她就那樣靜靜地躺著跑杭,像睡著了一般。 火紅的嫁衣襯著肌膚如雪爹橱。 梳的紋絲不亂的頭發(fā)上窄做,一...
    開封第一講書人閱讀 51,688評論 1 305
  • 那天椭盏,我揣著相機與錄音,去河邊找鬼掏颊。 笑死乌叶,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的准浴。 我是一名探鬼主播,決...
    沈念sama閱讀 40,414評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼句旱,長吁一口氣:“原來是場噩夢啊……” “哼晰奖!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起啃匿,我...
    開封第一講書人閱讀 39,319評論 0 276
  • 序言:老撾萬榮一對情侶失蹤溯乒,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后裆悄,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,775評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡或南,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,945評論 3 336
  • 正文 我和宋清朗相戀三年采够,在試婚紗的時候發(fā)現(xiàn)自己被綠了冰垄。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,096評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡逝薪,死狀恐怖写烤,靈堂內(nèi)的尸體忽然破棺而出拾徙,到底是詐尸還是另有隱情,我是刑警寧澤暂衡,帶...
    沈念sama閱讀 35,789評論 5 346
  • 正文 年R本政府宣布崖瞭,位于F島的核電站书聚,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏雌续。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,437評論 3 331
  • 文/蒙蒙 一受啥、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧居暖,春花似錦藤肢、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,993評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至略贮,卻和暖如春仗岖,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背轧拄。 一陣腳步聲響...
    開封第一講書人閱讀 33,107評論 1 271
  • 我被黑心中介騙來泰國打工檩电, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人俐末。 一個月前我還...
    沈念sama閱讀 48,308評論 3 372
  • 正文 我出身青樓卓箫,卻偏偏與公主長得像,于是被迫代替她去往敵國和親烹卒。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,037評論 2 355

推薦閱讀更多精彩內(nèi)容