目前手機(jī)App測試還是以發(fā)現(xiàn)bug為主祝辣,主要測試流程就是服務(wù)器接口測試贴妻,客戶端功能性覆蓋,以及自動化配合的性能蝙斜,適配名惩,壓測等,對于App安全性測試貌似沒有系統(tǒng)全面統(tǒng)一的標(biāo)準(zhǔn)和流程孕荠,其實安全性bug也可以是bug的一種娩鹉,只不過更加隱秘,難以發(fā)現(xiàn)稚伍,尤其針對于手機(jī)App弯予。近期時間比較充裕,研究了一下安全性相關(guān)的東西个曙,并對于我們自身的產(chǎn)品測試了一下(更主要的目的是游戲作弊刷分)锈嫩,發(fā)現(xiàn)了不少問題,總結(jié)一下困檩。
我的理解祠挫,包括以webview為主體的app因俐,站在入侵或者攻擊的角度來講董朝,安全隱患在于http抓包丧叽,逆向工程。談這之前先講講webview相關(guān)的app糟趾,前一段時間有個曝工資的軟件很火,但有查詢次數(shù)的限制甚牲,抓包研究了一下义郑,發(fā)現(xiàn)其主要還是webview,通過抓包詳細(xì)分析丈钙,才明白他記錄查詢次數(shù)的手段非驮,每一個用戶都會分配一個id,以及一個代表查詢次數(shù)count以cookie的形式保存到本地雏赦,通過維護(hù)cookie達(dá)到限制查詢次數(shù)的目的劫笙,所以清除cookie就可以無限制的查詢了芙扎,個人覺得,webview相關(guān)的app安全性測試應(yīng)該還是web測試那一套填大,xss攻擊戒洼,sql注入等(沒搞過web安全測試,僅推測)允华。
大部分app還是走的http或者h(yuǎn)ttps圈浇,所以防http抓包泄露用戶信息以及系統(tǒng)自身漏洞是必要的,畢竟像騰訊那種通過自身通信協(xié)議增加安全性的還是少數(shù)的(抓過微信和qq的沒抓著靴寂,不知道有沒有相關(guān)工具可以抓手機(jī)tcp的包)磷蜀。既然有接口測試為什么還需要單獨(dú)對客戶端進(jìn)行抓包驗證安全性呢?這么說吧百炬,接口測試其實最主要的驗證接口邏輯蠕搜,可用性,邊界值收壕,異常檢查妓灌,但并不能預(yù)先保證客戶端調(diào)用不出問題,一個針對多個app抓包都發(fā)現(xiàn)的問題可以說明:抓了好多社交性app蜜宪,發(fā)現(xiàn)對于用戶資料隱私泄露還是很嚴(yán)重的虫埂,當(dāng)你查看一個陌生用戶信息時,一些手機(jī)號圃验,qq等信息頁面上應(yīng)該不顯示的掉伏,但這些信息不顯示并不代表服務(wù)器沒有下發(fā),好多都是客戶端限制的澳窑,通過抓包斧散,完全可以查看到陌生用戶的app。再如好多發(fā)帖摊聋,push消息的應(yīng)用鸡捐,如果沒有消息有效性的驗證,抓到包之后篡改消息麻裁,服務(wù)器一點反應(yīng)都沒箍镜,這就會留有極大的隱患。
至于逆向工程這點煎源,對于android就很好理解了色迂,反編譯,修改或者插入自己的代碼手销,以達(dá)到相應(yīng)目的歇僧。真見過幾個沒有代碼混淆的app,包括我們自己的以及大名鼎鼎snapchat锋拖,記得有個游戲特搞笑诈悍,游戲主題是C#寫得埂淮,結(jié)果java的代碼混淆了,C#的代碼沒有写隶,修改了幾個參數(shù)值倔撞,插了幾段自己的代碼,就作弊成功了慕趴。尤其好多開放平臺的游戲痪蝇,通過開放平臺sdk文檔,再加上反編譯后些許信息冕房,即使代碼混淆了躏啰,也能推測出好多東西。這些都是安全性隱患耙册。
以上這些只是最近一段時間對于手機(jī)app安全性測試的一點認(rèn)識给僵,很膚淺,安全性測試對于測試人員素質(zhì)要求還是很高的详拙,尤其好多都是經(jīng)驗性的東西帝际,只有通過不斷增加經(jīng)驗,才能更好的做好測試饶辙。