日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【干货】移动APP安全测试要点解析

發(fā)布時間:2025/6/16 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【干货】移动APP安全测试要点解析 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

隨著運營商新技術(shù)新業(yè)務(wù)的發(fā)展,運營商集團層面對安全的要求有所變化,滲透測試工作將會面臨內(nèi)容安全、計費安全、客戶信息安全、業(yè)務(wù)邏輯及APP等方面的挑戰(zhàn)。隨著運營商自主開發(fā)的移動APP越來越多,這些APP可能并不會通過應(yīng)用市場審核及發(fā)布,其中的安全性將面臨越來越多的挑戰(zhàn)。

這個問題也引起了運營商的足夠重視,已經(jīng)自主開發(fā)了自動化檢測工具及定期的APP安全測試評估工作。在此,綠盟科技博客特別邀請到移動APP安全測試專家,讓他們結(jié)合一次Android APP安全測試實例,為大家講解評估特點,并將評估檢查點、評估細節(jié)和整改建議一一列出,給大家提供移動終端APP安全測試的思路。

評估思路

移動APP面臨的威脅

風(fēng)起云涌的高科技時代,隨著智能手機和iPad等移動終端設(shè)備的普及,人們逐漸習(xí)慣了使用應(yīng)用客戶端上網(wǎng)的方式,而智能終端的普及不僅推動了移動互聯(lián)網(wǎng)的發(fā)展,也帶來了移動應(yīng)用的爆炸式增長。在海量的應(yīng)用中,APP可能會面臨如下威脅:

新技術(shù)新業(yè)務(wù)移動APP評估思路

在這次的移動APP安全測試實例中,工作小組主要通過如下7個方向,進行移動終端APP安全評估:

運營商自動化APP測評思路

運營商自主開發(fā)的自動化APP安全檢測工具,通過”地、集、省”三級機構(gòu)協(xié)作的方式,來完成移動終端APP安全檢測與評估。APP測試思路如下:

安全檢測要點

Allowbackup漏洞

AndroidManifest.xml文件中allowBackup屬性值被設(shè)置為true。當(dāng)allowBackup標(biāo)志為true時,用戶可通過adb backup來進行對應(yīng)用數(shù)據(jù)的備份,在無root的情況下可以導(dǎo)出應(yīng)用中存儲的所有數(shù)據(jù),造成用戶數(shù)據(jù)的嚴(yán)重泄露。

整改建議:

將參數(shù)android:allowBackup屬性設(shè)置為false,不能對應(yīng)用數(shù)據(jù)備份。

WebView漏洞

應(yīng)用中存在WebView漏洞,沒有對注冊JAVA類的方法調(diào)用進行限制,導(dǎo)致攻擊者可以利用反射機制調(diào)用未注冊的其他任何JAVA類,最終導(dǎo)致javascript代碼對設(shè)備進行任意攻擊。

整改建議:

通過在Java的遠程方法上面聲明一個@JavascriptInterface 來代替addjavascriptInterface;

在使用js2java的bridge時候,需要對每個傳入的參數(shù)進行驗證,屏蔽攻擊代碼;

Note :控制相關(guān)權(quán)限或者盡可能不要使用js2java 的bridge 。

關(guān)鍵數(shù)據(jù)明文傳輸

應(yīng)用程序在登錄過程中,使用http協(xié)議明文傳輸用戶名和密碼,并未對用戶名和密碼進行加密處理。通過監(jiān)控網(wǎng)絡(luò)數(shù)據(jù)就可以截獲到用戶名和用戶密碼數(shù)據(jù),導(dǎo)致用戶信息泄露,給用戶帶來安全風(fēng)險。

整改建議:

在傳輸敏感信息時應(yīng)對敏感信息進行加密處理。

任意賬號注冊

使用手機號133*****887注冊某個APP,獲取驗證碼46908;

在確認提交時,攔截請求,修改注冊的手機號碼,即可注冊任意賬號,這里修改為1338*****678(任意手機號);


分別使用133**887和133**678(任意手機號)登錄,均可以通過驗證登錄,看到最終結(jié)果。


整改建議:

注冊過程最后的確認提交時,服務(wù)器應(yīng)驗證提交的賬號是否是下發(fā)驗證碼的手機號。

登錄界面可被釣魚劫持

應(yīng)用存在釣魚劫持風(fēng)險。應(yīng)用程序沒有做防釣魚劫持措施,通過劫持應(yīng)用程序的登錄界面,可以獲取用戶的賬號和密碼,可能導(dǎo)致用戶賬號信息的泄露。

整改建議:

應(yīng)用程序自身通過獲取棧頂activity,判斷系統(tǒng)當(dāng)前運行的程序,一旦發(fā)現(xiàn)應(yīng)用切換(可能被劫持),給予用戶提示以防范釣魚程序的欺詐。

獲取棧頂activity(如下圖),當(dāng)涉及敏感activity(登錄、交易等)切換時,判斷當(dāng)前是否仍留在原程序,若不是則通過Toast給予用戶提示。

使用HTML5架構(gòu)或android+HTML5混合開發(fā),實現(xiàn)登陸、支付等關(guān)鍵頁面,降低被劫持的風(fēng)險。

有爭議的整改建議

在實施整改過程中,運營商、APP廠商及安全廠商之間就如下幾點存在爭議:

關(guān)鍵數(shù)據(jù)明文傳輸

根據(jù)客戶測評結(jié)果以及移動終端APP廠商理解,目前的數(shù)據(jù)安全問題可為:

客戶端安全(數(shù)據(jù)錄入) 客戶端到服務(wù)器安全(數(shù)據(jù)傳輸) 服務(wù)器端安全(數(shù)據(jù)存儲)

而關(guān)鍵數(shù)據(jù)明文傳輸屬于客戶端數(shù)據(jù)錄入安全,針對此部分,目前不僅是移動終端APP,包括Web安全方面,對此部分要求也是不一而分,具體可以體現(xiàn)為:

具有現(xiàn)金流的交易平臺:此類業(yè)務(wù)安全級別要求最高,在數(shù)據(jù)傳輸方面也是目前做得最好的。主要代表是:淘寶、京東、各大銀行網(wǎng)銀等。

具有較大社會影響力的平臺:此類業(yè)務(wù)安全級別低于上述業(yè)務(wù),但由于賬戶數(shù)據(jù)丟失以后,對其自身以及社會影響較大,所以在傳輸上也不會采取明文傳輸。如:百度、騰訊等。

數(shù)據(jù)丟失本身不會造成較大的影響的平臺:此類業(yè)務(wù)賬戶數(shù)據(jù)本身價值不大,丟失以后也不會造成影響,或者本身不會受到太大關(guān)注,一般都不會對傳輸數(shù)據(jù)進行加密。這樣的例子比比皆是。

當(dāng)然也有廠商提出,明文傳輸在某些專業(yè)的漏洞檢測和通報的網(wǎng)站上,是不屬于安全漏洞的,為了驗證此異議,在某平臺上提交了一份關(guān)于明文傳輸?shù)穆┒?#xff0c;得到的結(jié)果請看下圖:

登錄界面釣魚劫持

APP應(yīng)用存在釣魚劫持風(fēng)險。應(yīng)用程序沒有做防釣魚劫持措施,通過劫持應(yīng)用程序的登錄界面,可以獲取用戶的賬號和密碼,可能導(dǎo)致用戶賬號信息的泄露。

這一條檢測結(jié)果,最大的爭議在于按照整改建議整改以后,對一般用戶來說,沒有任何作用。首先,我們了解一下釣魚劫持如何產(chǎn)生。

Android釣魚原理

需要理解,Android啟動一個Activity時,是這樣設(shè)計的,給Activity加入一個標(biāo)志位FLAG_ACTIVITY_NEW_TASK,就能使它置于棧頂并立馬呈現(xiàn)給用戶。但是這樣的設(shè)計卻有一個缺陷。如果這個Activity是用于盜號的偽裝Activity呢?這種現(xiàn)象在XcodeGhost事件中,已經(jīng)被證實是可以實現(xiàn)的。

在Android系統(tǒng)當(dāng)中,程序可以枚舉當(dāng)前運行的進程而不需要聲明其他權(quán)限,這樣的話,就可以編寫一個程序,啟動一個后臺的服務(wù),這個服務(wù)不斷地掃描當(dāng)前運行的進程,當(dāng)發(fā)現(xiàn)目標(biāo)進程啟動時,就啟動一個偽裝的Activity。如果這個Activity是登錄界面,那么就可以從中獲取用戶的賬號密碼,具體的過程如下圖:

檢測原理描述清楚以后,就需要給出讓軟件廠商能夠明白的整改建議以及漏洞情景重現(xiàn)。

Android釣魚情景演示

以小米手機為例:

1.當(dāng)打開3個APP時,最后一個打開的APP”語音助手”,切換至手機桌面,長按HOME鍵查看進程,”語音助手”會顯示在進程的第一個。

2.點擊”微信”以后,切換至”微信”,再查看進程,可以看到,進程中由于”微信”已切換至當(dāng)前窗口,故進程中不存在。

3.可以從第1步看到,當(dāng)切換至手機桌面時,無論是語音助手、手機令牌、還是微信,都是默認后臺運行,而且切換出來以后無任何提示。這樣,當(dāng)惡意activity收到微信登錄界面或者其他敏感界面的時候,就會搶先推送至客戶,從而讓客戶輕易的輸入了帳號,并獲取了客戶的信息,但此時微信不會做任何提示。

4.再來觀看一下某行手機APP,當(dāng)切換至手機桌面時,會對客戶做出提示。如下圖:

假設(shè)一下頁面是惡意推送的activity,那么在惡意推送的APP頁面,應(yīng)該會顯示出此類提示,告知客戶,此頁面并非正常APP的頁面。

用戶打開正常頁面 vs 用戶打開了惡意頁面:











本文轉(zhuǎn)自 小強測試幫 51CTO博客,原文鏈接:http://blog.51cto.com/xqtesting/1706184,如需轉(zhuǎn)載請自行聯(lián)系原作者

總結(jié)

以上是生活随笔為你收集整理的【干货】移动APP安全测试要点解析的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。