◆連麗紅
(廈門大學(xué)嘉庚學(xué)院(漳州校區(qū)) 福建 363105)
移動安全測試方案
◆連麗紅
(廈門大學(xué)嘉庚學(xué)院(漳州校區(qū)) 福建 363105)
本文通過對目前國內(nèi)移動安全現(xiàn)狀和測試經(jīng)驗的梳理,分析了移動安全測試的關(guān)注要點,并提出一個比較完整、高效的移動安全測試解決方案,能夠大幅提高測試人員的測試效率及安全測試的覆蓋面。
移動安全;測試方案;安全現(xiàn)狀;密碼;權(quán)限
當(dāng)前隨著移動智能終端的普及,越來越多的公司都在將其業(yè)務(wù)從傳統(tǒng)PC互聯(lián)網(wǎng)模式向移動終端模式發(fā)展和遷移。企業(yè)在快速開發(fā)和推廣APP應(yīng)用系統(tǒng)的同時,不可避免地引入了大量新的安全問題,移動終端安全面臨著技術(shù)、管理和法律等幾個方面的挑戰(zhàn),主要包括終端竊取和假冒、無線網(wǎng)的竊聽、交易抵賴、移動終端遺失和設(shè)備的不安全等。因此為了提高移動業(yè)務(wù)系統(tǒng)和關(guān)聯(lián)數(shù)據(jù)的安全性,保證企業(yè)移動業(yè)務(wù)系統(tǒng)的安全、快速發(fā)展,必須在針對移動應(yīng)用系統(tǒng)展開有效的安全檢測。但目前對于移動安全的研究主要集中在各項防御技術(shù)的突破上,如文獻(xiàn)[1]提出以地址為驅(qū)動的網(wǎng)絡(luò)體系,充分利用IP地址的多重屬性,解決互聯(lián)網(wǎng)的規(guī)模擴(kuò)展、安全可信等問題;文獻(xiàn)[2]特別為電力企業(yè)設(shè)計的移動安全接入平臺等。相反關(guān)于移動安全測試方面的研究較少,如文獻(xiàn)[3]提出針對移動銀行信息安全進(jìn)行加密等技術(shù)防范;文獻(xiàn)[4]提出包括靜態(tài)行為和動態(tài)行為的檢測方式,解決了靜態(tài)行為檢測缺乏對未知樣本的檢出能力問題,但都不夠全面。本文旨在提出一套簡單而系統(tǒng)的移動安全測試方案。
本方案從應(yīng)用程序安全、密碼和安全策略、權(quán)限與界面安全、隱私與存儲安全、通信安全等方面對移動應(yīng)用進(jìn)行全方位的安全測試。
1.1 應(yīng)用程序安全
移動應(yīng)用程序安全測試可以從以下幾個方面進(jìn)行驗證[5]:(1)源代碼保護(hù)
加密系統(tǒng)核心代碼,保證代碼在靜態(tài)或者運行時均不可見、具備反調(diào)試機(jī)制,防止被破譯或者反編譯。
(2)反動態(tài)攻擊
客戶端對關(guān)鍵操作應(yīng)采取反劫持攻擊防御;盡力避免在內(nèi)存中保留關(guān)鍵數(shù)據(jù),減少非加密信息存在的時間;在讀取利用任何數(shù)據(jù)的時候,考慮數(shù)據(jù)被篡改的可能性;應(yīng)針對內(nèi)存中臨時存在的關(guān)鍵信息做加密或者映射處理。
(3)異常處理
當(dāng)軟件發(fā)生系統(tǒng)故障時,保證系統(tǒng)能夠保存重要數(shù)據(jù)并正常結(jié)束。拒絕在異常處理過程中直接把異常信息返回給用戶,以防有經(jīng)驗的攻擊者據(jù)此分析程序邏輯。
(4)軟件更新檢查
移動客戶端應(yīng)用程序應(yīng)該提供安全更新接口,同時檢查更新程序的合法性防止惡意程序偽裝成合法的應(yīng)用程序。
1.2 密碼與安全策略
密碼安全重要性是不言而喻的,制定驗證密碼安全策略是一個移動測試方案的重要組成部分,主要可以從以下幾個方面進(jìn)行:
(1)身份鑒定
標(biāo)識:用戶注冊時,采用用戶名和用戶標(biāo)識符標(biāo)識用戶身份,確保系統(tǒng)整個生存周期用戶標(biāo)識的唯一性。
鑒別機(jī)制:每次用戶登錄和重新連接系統(tǒng)時,應(yīng)采用受控制的口令、基于生物特征的數(shù)據(jù)、數(shù)字證書以及其他具有安全強(qiáng)度的兩種或兩種以上的組合機(jī)制進(jìn)行用戶身份鑒別,而且其中一種鑒別數(shù)據(jù)是不可偽造。
認(rèn)證方式:用戶身份鑒別強(qiáng)度選擇應(yīng)該依據(jù)重要的程度,對高價值、可能造成風(fēng)險的操作使用高強(qiáng)度的身份鑒別。
此外,對鑒別數(shù)據(jù)進(jìn)行保密性和完整性保護(hù);驗證必須在可信系統(tǒng)上進(jìn)行:包括HASH計算,避免向客戶端透露更多的計算信息。
(2)二次身份鑒別
對高價值交易、系統(tǒng)和業(yè)務(wù)關(guān)鍵功能重新進(jìn)行身份鑒別。如:修改密碼、業(yè)務(wù)交易關(guān)鍵流程、系統(tǒng)配置信息。
(3)認(rèn)證失敗后的處理方式
連續(xù)失敗后鎖定賬號:鎖定后可由系統(tǒng)維護(hù)人員解鎖,或者一定時間后自動解鎖,鎖定的時間應(yīng)該足夠長,但不能長到允許執(zhí)行拒絕服務(wù)攻擊。
安全報錯信息:用戶認(rèn)證失敗的提示應(yīng)該模糊處理,不應(yīng)該使用“用戶不存在”或者“密碼錯誤”這類可以逆推業(yè)務(wù)邏輯的提示。
(4)口令策略
口令強(qiáng)度:限制口令設(shè)置的最小長度,大小寫字母、數(shù)字、特殊字符混淆的口令強(qiáng)度。
雙因素認(rèn)證:如果使用手機(jī)短信或動態(tài)令牌雙因素認(rèn)證,應(yīng)該設(shè)置口令的有效生命周期。
(5)圖片驗證碼
圖片驗證碼可以抵御自動識別軟件的暴力登錄攻擊,一般在服務(wù)端進(jìn)行,先驗證圖片驗證碼,再驗證用戶名和密碼。圖片驗證碼的實現(xiàn)應(yīng)該最低4位,并且使用字符隨機(jī)扭曲、字符顏色和背景色隨機(jī)、大小隨機(jī)等多種防自動識別機(jī)制。
(6)密碼重設(shè)
重設(shè)問題應(yīng)支持盡可能的隨機(jī),或者讓用戶選擇重設(shè)問題;重置密碼發(fā)送郵箱避免完整的顯示給用戶時,設(shè)置郵件的有效生命周期;重設(shè)后應(yīng)該強(qiáng)制用戶修改密碼,修改完應(yīng)通知用戶。
(7)常規(guī)登錄控制
登錄驗證碼技術(shù):使用圖形驗證碼進(jìn)行系統(tǒng)注冊等關(guān)鍵操作,可以有效防止惡意程序的試探和暴力破解。
超時控制:登錄后超過N分鐘未使用,服務(wù)器端設(shè)置用戶鏈接超時,重新登錄等。
登錄控制:登錄時,連續(xù)超過N次輸入密碼或圖形驗證碼錯誤,則鎖定賬戶,用戶需親昨臨柜面辦理解鎖業(yè)務(wù)或通過其它方式驗證身份來修改密碼。
1.3 權(quán)限與界面管理
(1)權(quán)限界面原則
通過權(quán)限的管理,確定已通過驗證用戶的訪問和操作權(quán)限。防止錯誤的授權(quán)或弱授權(quán)導(dǎo)致應(yīng)用程序信息和用戶敏感信息被非法訪問或篡改。
①縱向越權(quán):一個低權(quán)限的用戶訪問高權(quán)限用戶的資源或功能。
②橫向越權(quán):用戶嘗試訪問與其同級權(quán)限用戶的資源或功能。
(2)APP權(quán)限最小化
程序本身可以在安裝或運行時被授予很多權(quán)限和功能,如發(fā)送短信,手機(jī)定位,訪問其他應(yīng)用程序等,這些權(quán)限和功能在特定環(huán)境下可能被惡意代碼所利用。根據(jù)軟件設(shè)計的基本原則——最小特權(quán)原則,在設(shè)計應(yīng)用程序的功能和權(quán)限時,只賦予完成操作的必備權(quán)限和最少功能。
(3)APP權(quán)限管理
創(chuàng)建基于角色的授權(quán):制定創(chuàng)建基于角色授權(quán)的訪問控制方法,同時對所有系統(tǒng)用戶分析訪問角色,當(dāng)用戶嘗試訪問受限制資源時,驗證其角色。
代碼執(zhí)行權(quán)限最小化:用戶不能做的事情,代碼也不能做,以防止某些情況代碼權(quán)限被濫用。
使用可信系統(tǒng)對資源進(jìn)行授權(quán)和驗證。
(4)對下列資源進(jìn)行訪問授權(quán)控制
制定文件、受保護(hù)的URL、應(yīng)用程序、數(shù)據(jù)、用戶、數(shù)據(jù)屬性的訪問控制策略、任何服務(wù)端的數(shù)據(jù)、文件的創(chuàng)建行為都應(yīng)受控。此外,如果訪問狀態(tài)數(shù)據(jù)必須存儲在客戶端,則應(yīng)使用加密算法,并在服務(wù)端檢查其完整性以防止?fàn)顟B(tài)改變。
(5)限制單位時間內(nèi)事務(wù)請求數(shù)量
限制單一用戶或者外部數(shù)據(jù)請求在單位時間內(nèi)可執(zhí)行的事務(wù)數(shù)量,請求數(shù)量應(yīng)該高于業(yè)務(wù)實際需求,但也應(yīng)該足夠抵御和判斷自動化攻擊,常見的如:獲取某些狀態(tài)數(shù)據(jù)、用戶執(zhí)行業(yè)務(wù)操作頻率。
(6)SQL注入
移動系統(tǒng)提供了應(yīng)用輕量級數(shù)據(jù)庫系統(tǒng),應(yīng)用程序可以構(gòu)造SQL語句,實現(xiàn)對本地數(shù)據(jù)庫的各種操作,方便數(shù)據(jù)存取。移動平臺SQL語句操作與普通WEB平臺一樣存在 SQL 注入危險,造成越權(quán)訪問,最終導(dǎo)致應(yīng)用程序的敏感數(shù)據(jù)和用戶隱私數(shù)據(jù)泄露。
1.4 隱私與數(shù)據(jù)存儲安全
(1)內(nèi)存數(shù)據(jù)安全
關(guān)鍵信息在內(nèi)存中加密存儲、使用完畢后,及時清除,不能存留了非業(yè)務(wù)必須的敏感數(shù)據(jù)。
(2)本地數(shù)據(jù)安全
應(yīng)對本地存儲數(shù)據(jù)進(jìn)行有效的加密保護(hù);敏感信息在日記顯示及相關(guān)數(shù)據(jù)表中存儲時,采用替代處理;如果存儲了Cookie數(shù)據(jù),在用戶退出時及時刪除;加密存儲HTML5、JS等文件,引入反纂改保護(hù)機(jī)制。
(3)調(diào)試信息安全
軟件運行時會輸出運行日志,關(guān)鍵信息必須進(jìn)行脫敏處理,以防日志輸出功能設(shè)計失誤,導(dǎo)致泄露用戶和系統(tǒng)的敏感信息等危險。
1.5 通信安全
(1)會話管理
設(shè)計者應(yīng)該根據(jù)會話的特性制定合理的會話管理機(jī)制:
COOKIE:由客戶端以文件的形式保存在硬盤上或者瀏覽器所占的內(nèi)存中,在一定時間內(nèi)保持生效,生效時間內(nèi)再次訪問不需要進(jìn)行身份鑒別,cookie 由于是在客戶端保存,所以被盜用的風(fēng)險比較高。
SESSION:驗證完后在服務(wù)端生成一段會話標(biāo)識,由服務(wù)端保存。所以session安全性高于cookie,但更耗服務(wù)器資源,可考慮采取清除長時間不活動的session來保證服務(wù)器性能。
COOKIE+IP 或 SESSION+IP:為了防止會話標(biāo)識被盜用,目前比較好的控制手段是驗證訪問者的IP和會話標(biāo)識符,如果同一會話標(biāo)識符兩次訪問的IP地址不相同,則認(rèn)為session 被盜用。
(2)傳輸安全控制
移動應(yīng)用設(shè)計應(yīng)采用SSL安全傳輸協(xié)議,該協(xié)議能夠有效地防破譯、防篡改、防重發(fā),對傳輸數(shù)據(jù)進(jìn)行高強(qiáng)度的加密,確保數(shù)據(jù)安全性。
(3)通訊全程加密
除了SSL之外,還應(yīng)采用數(shù)據(jù)二次加密處理,實現(xiàn)手機(jī)終端與服務(wù)器應(yīng)用之間通訊的全程數(shù)據(jù)加密。
(4)組件通訊安全
客戶端應(yīng)用組件與組件之間的通信,所引發(fā)的安全問題也應(yīng)該被進(jìn)行關(guān)注。
1.6 輸入輸出安全
(1)密碼鍵盤控件
登錄密碼及交易密碼等敏感信息均采用服務(wù)器生成混淆后的動態(tài)密碼輸入鍵盤進(jìn)行錄入和對應(yīng)密碼編碼,輸入信息在內(nèi)存或者本地均不以明文存在,從根本上對信息進(jìn)行有效保護(hù),用戶提交密碼時由客戶端上傳密碼編碼,由服務(wù)器解釋成密碼明文。
(2)反屏幕錄像
輸入關(guān)鍵信息時,屏幕應(yīng)該不回顯任何輸入信息,不能以按鍵水印,按鍵變色等方法提示用戶輸入,關(guān)鍵信息也不能短暫明文顯示。
(3)反屏幕劫持
輸入關(guān)鍵信息時,應(yīng)用應(yīng)當(dāng)有能力檢測當(dāng)前頁面是否由本程序顯示,并始終保持本應(yīng)用顯示界面處于最頂端。
總之,移動安全測試方案并不是一個固定的方案或者操作流程,而應(yīng)該是一個方法論和指導(dǎo)思想,每個企業(yè)的移動應(yīng)用環(huán)境都有著自身的特性,企業(yè)在進(jìn)行移動安全測試、防范企業(yè)移動應(yīng)用安全漏洞時,應(yīng)該結(jié)合自身的特點,為企業(yè)本身打造一個安全的移動應(yīng)用環(huán)境。
本文從移動安全測試的角度提出了整個移動安全測試的著重關(guān)注點和驗證點,較為系統(tǒng)的介紹了移動安全的測試方案,提升了移動用戶使用設(shè)備的安全防范意識,有效的提高移動安全測試人員安全測試的效率和安全測試質(zhì)量。
[1]吳建平,李丹,畢軍,徐恪,李星,朱晶.ADN:地址驅(qū)動的網(wǎng)絡(luò)體系結(jié)構(gòu)[J].計算機(jī)學(xué)報,2015.
[2]吳克河,崔文超,何健平.電力企業(yè)移動安全接入平臺[J].計算機(jī)系統(tǒng)應(yīng)用,2014.
[3]鄭德春,姚慶棟,劉鵬,余巧燕.移動銀行的信息安全及防范對策[J].武漢大學(xué)學(xué)報,2008.
[4]陳建民.基于行為的移動應(yīng)用程序安全檢測方法研究[J].計算機(jī)工程與設(shè)計,2012.
[5]趙青娟.基于Android的NFC安全架構(gòu)研究[D].華北理工大學(xué),2015.