基於IBM Security AppScan測試移動應用程序安全性

引言
  移動互聯網的迅速發展,4G 和 Wifi 無線網絡的大面積覆蓋,智能手機和平板電腦的普及迅速吸引了大量的終端用戶。2014 年,移動端上網的用戶比例爲 83.4%,首次超過傳統 PC 端用戶使用率。移動應用程序不僅涵蓋生活中的方方面面,也越來越多的應用到商業領域中幫助提高辦公效率,實現隨時隨地的信息處理。由於移動端應用程序已經與人們的生活和工作緊密相連,其安全性也越來越重要。移動端應用程序的安全漏洞可能會造成重大的經濟損失,如何保證移動端應用程序的安全性是一個急需解決的問題。
  IBM Security AppScan 產品系列是 IBM 安全框架解決方案中應用安全的一個重要部分,可以實現對網絡應用安全漏洞的動態掃描、代碼靜態分析,以及針對已上線的系統做網絡安全攻擊測試。除了應用在傳統的 PC 端外,IBM Security AppScan 還可用於移動端應用程序的安全性測試。本文介紹如何利用 IBM Security AppScan 測試移動應用程序安全性。
  移動應用程序安全性測試特點
  移動應用通常包括 Mobile 端和 Server 端,Mobile 端和 Server 端的數據交互一般通過 Web Service 的方式進行。Web Service 是使應用程序以與平臺和編程語言無關的方式進行相互通信的一種技術, Web Service 通常採用 SOAP 協議進行交互,這些 Web Service 具有標準的 WSDL 文件來描述其接口規範。通過掃描 WSDL 文件,可以輕易的從根節點開始獲取所有接口的輸入輸出參數,並在此基礎上進行分析和模擬黑客攻擊找出漏洞。使用 IBM Security AppScan,測試人員錄入根 URL 或者 WSDL 文件地址,即可以實現自頂向下的安全性探索和驗證。AppScan 會根據 WSDL 信息來遍歷待測程序,根據安全測試領域已有的六大類安全威脅來組合參數,尋找潛在的安全問題和模擬黑客攻擊,探測出待測應用程序的漏洞,定義其嚴重性並給出修復建議。
  移動端應用程序根據其編程特點分爲三大類:
  · Mobile Native Application:使用移動設備 native language 開發的應用程序,開發速度快,應用程序穩定,但依賴於平臺。(eg: iphone 上使用 object-C, android 上使用 Java)
  · Mobile Hybrid Application:由 Web UI 和底層 Native Layer 共同組成,可以跨平臺。
  · Mobile Web Application:通過瀏覽器進行交互,在已有的 PC 端網站上增添對移動端的支持,使其能適應移動端的特性。
  無論是哪一類的應用程序,都是由移動平臺客戶端和服務器共同組成,移動平臺客戶端和服務器之間有多種通信協議,包括 XML,REST,SOAP 等。移動端應用比較多的是 REST(Representational State Transfer),因爲 REST 模式的 Web Service 與複雜的 SOAP 和 XML-RPC 相比明顯的更加簡潔。越來越多的移動端 Web Service 開始採用 REST 風格設計和實現。由於其輕量級和簡單的特性,基於 REST 構建的 Web Service 往往沒有對應的“WSDL”文件定義。缺乏入口信息,採用安全掃描工具直接掃描很難達到有效覆蓋。爲了更有效的測試出移動應用程序的安全問題,在實踐中通常採用探索 -> 測試 -> 再探索 -> 測試的方式;或者在 IBM Security AppScan 中配置參數和模式使得掃描的結果更準確。
  配置 AppScan 測試移動應用程序
  在採用 IBM Security AppScan 進行安全性測試之前,首先要配置移動端,AppScan 和 Server 端的連接。通過設置 AppScan 爲移動端代理,監聽移動端和服務器端的交互,攔截和轉發移動端與 Server 端交互的數據流,AppScan 可以對移動應用程序進行有效的安全性掃描。下圖以 iOS 爲例來說明如何進行配置。
 
 圖 1. 移動應用程序交互圖
  首先,通過端口映射工具配置移動端和 AppScan 之間的數據連接。本文采用 rinetd 進行配置,rinetd 是爲重定向傳輸控制協議 (TCP) 連接的一個開源工具( http://www.boutell.com/rinetd/ ),支持 Unix, Linux 和 Windows 多種操作系統。下載安裝 rinetd 以後,配置端口轉發文件並基於配置文件啓動 rinetd 即可。
  rinetd 配置文件示例:
  9.125.65.126 28080 127.0.0.1 18080
  9.125.65.126:AppScan 所在 Server 端 IP 地址
  28080:移動端配置的端口號
  127.0.0.1:AppScan 代理默認綁定地址
  18080:AppScan 代理默認綁定端口號
  配置完端口映射工具以後,根據信息配置 iOS 端網絡,使移動端應用程序數據通過發往 AppScan 代理。進入 iPhone, 選擇設置 -> 無線局域網 -> 當前網絡 -> 詳細信息 ->HTTP 代理,配置相應的服務器和端口信息。服務器 IP 爲 AppScan 所在 Server 端 IP 地址,端口爲 rinetd.conf 裏配置的端口信息,如下圖所示:
  
圖 2. 移動端配置
  移動端和 AppScan 通過代理建立完鏈接以後,啓動 AppScan 新建常規掃描,進入配置嚮導。首先選擇探索站點的基本方法:外部設備 / 客戶機(AppScan 作爲記錄代理),點擊下一步。
  
圖 3. 配置 AppScan 連接外部客戶機
  選擇代理端口和記錄位置,代理端口爲 rinetd.conf 裏配置的端口,記錄位置選擇“該機器上的外部客戶機”
  

圖 4. 配置 AppScan 代理

點擊下一步,選擇默認選項直到“登陸管理”頁面。到達登陸管理頁面以後,打開移動應用程序並進行登陸操作,AppScan 會自動記錄下客戶端和服務端的登陸過程以及登陸信息。由於安全性或者其他設置,AppScan 有時無法成功記錄登陸信息,此時通過“完全掃描配置 -> 登陸管理”選擇自動登陸,輸入相應的賬號信息即可解決問題。
  
圖 5. 配置登陸管理
  選擇測試策略,可以導入測試策略文件,按測試策略來進行有針對想的掃描。
  
圖 6. 配置策略文件
  以上選項都已經配置完成以後,AppScan 會自動打開外部流量記錄器,安全性測試人員只需要在 mobile 端手動測試即可。AppScan 會自動記錄用戶的流量和行爲,模擬人的使用方式從而探測出實際使用中可能會產生的安全性問題。
  
圖 7. 啓動流量監控器
  使用 AppScan 測試移動應用程序
  配置完成以後,AppScan 作爲代理會記錄客戶端和服務器端的交互,並基於用戶行爲進行安全性探測和分析。由於安全性分析是基於用戶對移動應用程序的操作,因此迭代的方式更有助於保證安全性測試質量。在實踐中,安全性測試人員通常先選擇“探索”,然後在移動端完整的覆蓋所有的頁面和輸入控件,AppScan 代理記錄完這些流量信息以後,點擊“測試”。得到一輪測試結果。通過分析這些測試結果,安全性測試人員確立下一輪測試的重點和目標,在問題高發的區域用更多的輸入組合進行探索,進一步發現問題。通過不斷的迭代,可以使得安全測試達到一個很高的覆蓋率。
  
圖 8. 獲取迭代測試結果
  除了手工迭代進行探索測試以外,安全性測試人員還可以通過配置 AppScan 的參數測試基於 REST 構建的移動應用程序。默認情況下,AppScan 會以 HTTP&HTML 標準格式來識別參數,如果參數是以其他格式構建的(比如 RESTful 消息),必須手工配置 AppScan 才能進行有效的解析參數,從而進行掃描。下面以獲取用戶詳細信息爲例,來說明如何配置 AppScan 來測試:
  清單 1.REST 消息示例
  GET /data/users/UserName/ HTTP/1.1
  Host: www.ibm.site
  Connection: close
  登陸 AppScan,掃描 -> 掃描配置 -> 參數和 Cookie-> 高級:定製參數,點擊“+”按鈕即可添加新的識別模式:
  
圖 9. 定製 AppScan 高級參數
  首先用戶自定義引用名稱,然後根據 RESTful 配置正則表達式設置模式。通過配置正則表達式(/data/([\d\w\s%]+)/([\d\w\s%]+)/),可以提取出 RESTful 消息裏的用戶和對應的 Value 值。應用定製的正則表達式掃描應用程序,登陸數據 -> 腳本參數列表可以查看到如下數據解析:
  表 1. 定製參數解析結果
  識別出關鍵屬性和路徑以後,AppScan 可以執行進一步的掃描和安全分析。
  結束語
  移動應用程序和人們的生活聯繫日趨緊密,應用程序的安全性問題也得到越來越多的重視。本文分析了移動應用程序的交互模式和常用的網絡協議,基於 IBM Security AppScan 提供了測試移動應用程序安全性的方法介紹和實踐:包括如何配置 AppScan 使其適應移動測試的特性;如何使用 AppScan 進行高級參數配置,使其可解析主流的 RESTful 消息,對安全測試感興趣的工程師有一定的借鑑意義。





文章轉載:http://www.51testing.com/html/79/n-3715379-2.html

發佈了0 篇原創文章 · 獲贊 40 · 訪問量 18萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章