引言
移動互聯(lián)網(wǎng)的迅速發(fā)展,4G 和 Wifi 無線網(wǎng)絡(luò)的大面積覆蓋,智能手機和平板電腦的普及迅速吸引了大量的終端用戶。2014 年,移動端上網(wǎng)的用戶比例為 83.4%,首次超過傳統(tǒng) PC 端用戶使用率。移動應(yīng)用程序不僅涵蓋生活中的方方面面,也越來越多的應(yīng)用到商業(yè)領(lǐng)域中幫助提高辦公效率,實現(xiàn)隨時隨地的信息處理。由于移動端應(yīng)用程序已經(jīng)與人們的生活和工作緊密相連,其安全性也越來越重要。移動端應(yīng)用程序的安全漏洞可能會造成重大的經(jīng)濟損失,如何保證移動端應(yīng)用程序的安全性是一個急需解決的問題。
IBM Security AppScan 產(chǎn)品系列是 IBM 安全框架解決方案中應(yīng)用安全的一個重要部分,可以實現(xiàn)對網(wǎng)絡(luò)應(yīng)用安全漏洞的動態(tài)掃描、代碼靜態(tài)分析,以及針對已上線的系統(tǒng)做網(wǎng)絡(luò)安全攻擊測試。除了應(yīng)用在傳統(tǒng)的 PC 端外,IBM Security AppScan 還可用于移動端應(yīng)用程序的安全性測試。本文介紹如何利用 IBM Security AppScan 測試移動應(yīng)用程序安全性。
移動應(yīng)用程序安全性測試特點
移動應(yīng)用通常包括 Mobile 端和 Server 端,Mobile 端和 Server 端的數(shù)據(jù)交互一般通過 Web Service 的方式進(jìn)行。Web Service 是使應(yīng)用程序以與平臺和編程語言無關(guān)的方式進(jìn)行相互通信的一種技術(shù), Web Service 通常采用 SOAP 協(xié)議進(jìn)行交互,這些 Web Service 具有標(biāo)準(zhǔn)的 WSDL 文件來描述其接口規(guī)范。通過掃描 WSDL 文件,可以輕易的從根節(jié)點開始獲取所有接口的輸入輸出參數(shù),并在此基礎(chǔ)上進(jìn)行分析和模擬黑客攻擊找出漏洞。使用 IBM Security AppScan,測試人員錄入根 URL 或者 WSDL 文件地址,即可以實現(xiàn)自頂向下的安全性探索和驗證。AppScan 會根據(jù) WSDL 信息來遍歷待測程序,根據(jù)安全測試領(lǐng)域已有的六大類安全威脅來組合參數(shù),尋找潛在的安全問題和模擬黑客攻擊,探測出待測應(yīng)用程序的漏洞,定義其嚴(yán)重性并給出修復(fù)建議。
移動端應(yīng)用程序根據(jù)其編程特點分為三大類:
Mobile Native Application:使用移動設(shè)備 native language 開發(fā)的應(yīng)用程序,開發(fā)速度快,應(yīng)用程序穩(wěn)定,但依賴于平臺。(eg: iphone 上使用 object-C, android 上使用 Java)
Mobile Hybrid Application:由 Web UI 和底層 Native Layer 共同組成,可以跨平臺。
Mobile Web Application:通過瀏覽器進(jìn)行交互,在已有的 PC 端網(wǎng)站上增添對移動端的支持,使其能適應(yīng)移動端的特性。
無論是哪一類的應(yīng)用程序,都是由移動平臺客戶端和服務(wù)器共同組成,移動平臺客戶端和服務(wù)器之間有多種通信協(xié)議,包括 XML,REST,SOAP 等。移動端應(yīng)用比較多的是 REST(Representational State Transfer),因為 REST 模式的 Web Service 與復(fù)雜的 SOAP 和 XML-RPC 相比明顯的更加簡潔。越來越多的移動端 Web Service 開始采用 REST 風(fēng)格設(shè)計和實現(xiàn)。由于其輕量級和簡單的特性,基于 REST 構(gòu)建的 Web Service 往往沒有對應(yīng)的“WSDL”文件定義。缺乏入口信息,采用安全掃描工具直接掃描很難達(dá)到有效覆蓋。為了更有效的測試出移動應(yīng)用程序的安全問題,在實踐中通常采用探索 -> 測試 -> 再探索 -> 測試的方式;或者在 IBM Security AppScan 中配置參數(shù)和模式使得掃描的結(jié)果更準(zhǔn)確。
配置 AppScan 測試移動應(yīng)用程序
在采用 IBM Security AppScan 進(jìn)行安全性測試之前,首先要配置移動端,AppScan 和 Server 端的連接。通過設(shè)置 AppScan 為移動端代理,監(jiān)聽移動端和服務(wù)器端的交互,攔截和轉(zhuǎn)發(fā)移動端與 Server 端交互的數(shù)據(jù)流,AppScan 可以對移動應(yīng)用程序進(jìn)行有效的安全性掃描。下圖以 iOS 為例來說明如何進(jìn)行配置。
圖 1. 移動應(yīng)用程序交互圖


首先,通過端口映射工具配置移動端和 AppScan 之間的數(shù)據(jù)連接。本文采用 rinetd 進(jìn)行配置,rinetd 是為重定向傳輸控制協(xié)議 (TCP) 連接的一個開源工具( http://www.boutell.com/rinetd/ ),支持 Unix, Linux 和 Windows 多種操作系統(tǒng)。下載安裝 rinetd 以后,配置端口轉(zhuǎn)發(fā)文件并基于配置文件啟動 rinetd 即可。
rinetd 配置文件示例:
9.125.65.126 28080 127.0.0.1 18080
9.125.65.126:AppScan 所在 Server 端 IP 地址
28080:移動端配置的端口號