劉艷 江蘇蘇測軟件檢測技術(shù)有限公司
移動應(yīng)用軟件安全性測試研究
劉艷 江蘇蘇測軟件檢測技術(shù)有限公司
隨著智能終端的快速崛起,移動應(yīng)用軟件呈現(xiàn)爆發(fā)式增長,尤其在社交、移動支付、移動電子商務(wù)和移動辦公等領(lǐng)域的應(yīng)用量相當大。伴隨著移動應(yīng)用的快速增長,安全問題也日益凸顯。本文分析了移動應(yīng)用軟件存在的安全風(fēng)險,從移動應(yīng)用軟件安全性測試策略及測試重點兩方面進行闡述,為移動應(yīng)用軟件的安全測評提供一定的借鑒。
移動應(yīng)用軟件 安全 測試
隨著4G手機、平板電腦等移動智能終端的迅速發(fā)展與普及,移動智能終端正逐漸發(fā)展成為一個巨大的新興市場,逐步改變著人類的生活習(xí)慣和傳統(tǒng)觀念,為個人和企業(yè)帶來了便利和效率,其安全問題也日益凸顯。一方面,互聯(lián)網(wǎng)上原有的惡意程序傳播、遠程控制、網(wǎng)絡(luò)攻擊等傳統(tǒng)網(wǎng)絡(luò)安全威脅向移動互聯(lián)網(wǎng)快速蔓延,導(dǎo)致智能終端面臨著安全威脅。另一方面,智能終端和用戶個人利益關(guān)系更加密切,惡意吸費、用戶信息竊取、誘騙欺詐也隨之出現(xiàn)。
因此,對移動應(yīng)用軟件的安全測試方法進行研究,是國家信息化發(fā)展戰(zhàn)略的重要組成部分,也是用戶放心體驗新技術(shù)的技術(shù)保障。
移動應(yīng)用風(fēng)險一般來說是代碼編寫過程中出現(xiàn)的安全漏洞、編碼隱患、甚至業(yè)務(wù)邏輯上的缺陷。移動應(yīng)用風(fēng)險往往帶來很多危害,諸如應(yīng)用內(nèi)信息泄露、遠程代碼執(zhí)行、本地拒絕服務(wù)等多種安全問題,嚴重的可能影響應(yīng)用正常運行,更為嚴重的是導(dǎo)致系統(tǒng)的權(quán)限淪陷,終端被控制監(jiān)聽。結(jié)合移動應(yīng)用軟件自身特點,主要存在以下風(fēng)險:
(1)權(quán)限濫用:開放過多或權(quán)限限制不嚴格,導(dǎo)致攻擊者可以通過直接或間接調(diào)用的方式達到攻擊效果。
(2)https驗證類漏洞:該漏洞會導(dǎo)致中間人攻擊,通過移動應(yīng)用軟件的流量、界面進行截取或篡改。
(3)Log敏感信息泄露:用戶的敏感信息被存儲在操作系統(tǒng)中,易被其他程序非法讀取。
(4)WebView遠程代碼執(zhí)行:攻擊者可以向頁面植入Javascript,通過反射在客戶端中執(zhí)行任意惡意代碼。
(5)sql注入漏洞:該漏洞可能導(dǎo)致用戶數(shù)據(jù)庫中的信息泄露或者篡改。
根據(jù)移動智能終端應(yīng)用軟件存在的風(fēng)險特點,主要從安裝與卸載的安全性、手機應(yīng)用程序權(quán)限管理、數(shù)據(jù)安全性、通訊安全性和人機接口安全性等方面進行測試和驗證,具體測試策略可包括:
(1)驗證被測試收集應(yīng)用軟件是否滿足預(yù)定的安全準則和要求,檢查軟件的防止災(zāi)難故障能力。
(2)硬件和軟件在各種故障模式下的測試,對硬件和軟件在降級配置時的處理和保護能力測試。
(3)各種保護能力測試,包括容錯操作能力測試、操作數(shù)據(jù)安全性保護測試、通訊數(shù)據(jù)安全性保護測試、對重要數(shù)據(jù)抗非法訪問能力測試、權(quán)限管理保護測試。
(4)多系統(tǒng)、多平臺上運行的軟件人機接口的安全性測試。
(5)測試過程中嚴格執(zhí)行JAVA安全域的劃分, 并進行相應(yīng)的簽名或測試。
(6)注重安裝測試的重要性,嚴格按照安裝及卸載的安全性要求,設(shè)計測試用例。
反編譯:從保護公司的知識產(chǎn)權(quán)和安全方面考慮,移動應(yīng)用開發(fā)人員會在源碼中硬編碼一些敏感信息,一旦源碼泄漏,安全隱患巨大。為了避免這些問題,除了代碼審核外,可以對代碼進行混淆,混淆后源代碼通過反軟件生成的源代碼很難讀懂。測試中,可以直接使用反編譯工具查看源代碼,判斷是否進行了代碼混淆。
簽名:發(fā)布前應(yīng)校驗一下簽名使用的key是否正確,以防被惡意第三方應(yīng)用覆蓋安裝。
完整性校驗:為確保安裝包不會在測試完成到最終交付過程中發(fā)生文件損壞,需要對安裝包進行完整性校驗,可以通過自動化校驗文件的MD5值。
權(quán)限設(shè)置檢查:檢查manifest文件來讀取應(yīng)用所需要的全部權(quán)限,并結(jié)合需求進行校驗此權(quán)限是否為必須的。manifest文件的修改也需要關(guān)注,在增加新權(quán)限前需要進行評估。
部分移動應(yīng)用軟件會把cookie類數(shù)據(jù)保存在數(shù)據(jù)庫中,日志和配置文件也會記錄敏感信息,這些數(shù)據(jù)一旦被非法獲取,可能造成用戶賬戶被盜用等嚴重問題。測試過程中主要檢查數(shù)據(jù)庫、日志和配置文件是否存在敏感信息。
重點測試密碼是否明文存儲在后臺數(shù)據(jù)庫;密碼是否被明文傳輸;對于用戶輸入錯誤密碼次數(shù)過多的情況,是否會將賬戶臨時鎖定,避免被暴力破解;在客戶端注銷后,驗證任何的來自該用戶的,需要身份驗證的接口調(diào)用都不能成功。
重點測試關(guān)鍵數(shù)據(jù)是否散列或加密;關(guān)鍵連接是否使用安全通信;是否對數(shù)字證書合法性進行驗證;是否校驗數(shù)據(jù)合法性。
重點測試Android平臺各個組件是否能被外部應(yīng)用惡意調(diào)用。
測試過程中重點檢查服務(wù)端接口是否存在SQL注入、XSS跨站腳本攻擊、CSRF跨站請求偽造、越權(quán)訪問等問題。
重點測試移動應(yīng)用軟件卸載時是否有卸載提示,是否能安全完全卸載,卸載后是否會影響其他軟件功能。
本標準通過研究移動應(yīng)用軟件的安全性測試策略及測試重點,以期能夠規(guī)范移動應(yīng)用軟件涉及的設(shè)計、開發(fā)、測試、評估工作,提高移動應(yīng)用軟件的安全水準,降低移動應(yīng)用軟件存在的風(fēng)險,保護用戶個人安全以及國家安全,進而推動整個互聯(lián)網(wǎng)的健康發(fā)展。