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