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