1. 程式人生 > >怎麼看待移動APP的安全測試

怎麼看待移動APP的安全測試

隨著網際網路發展,APP應用的盛行,最近了解到手機APP相關的安全性測試。目前手機App測試還是以發現bug為主,主要測試流程就是伺服器介面測試,客戶端功能性覆蓋,以及自動化配合的效能,適配,壓測等,對於App安全性測試貌似沒有系統全面統一的標準和流程,其實安全性bug也可以是bug的一種,只不過更加隱祕,難以發現,尤其針對於手機App。

特別是以webview為主體的app,先簡單說說,站在入侵或者攻擊的角度來講,安全隱患在於http抓包,逆向工程。

目前大部分app還是走的http或者https,所以防http抓包洩露使用者資訊以及系統自身漏洞是必要的,通過抓包當你檢視一個陌生使用者資訊時,一些手機號,qq等資訊頁面上應該不顯示的,但這些資訊不顯示並不代表伺服器沒有下發,好多都是客戶端限制的,通過抓包,完全可以檢視到陌生使用者的app。再如好多發帖,push訊息的應用,如果沒有訊息有效性的驗證,抓到包之後篡改訊息,伺服器一點反應都沒,這就會留有極大的隱患。逆向工程對於Android就很好理解了,反編譯,修改或者插入自己的程式碼,以達到相應目的。

那麼安全性測試策略是怎樣的呢?

對使用者隱私,檢查是否在本地儲存使用者密碼,無論加密與否;檢查敏感的隱私資訊,如聊天記錄、關係鏈、銀行賬號等是否進行加密;檢查是否將系統檔案、配置檔案明文儲存在外部裝置上;部分需要儲存到外部裝置的資訊,需要每次使用前都判斷資訊是否被篡改。

對檔案許可權,檢查App所在的目錄,其許可權必須為不允許其他組成員讀寫。

對網路傳輸,檢查敏感資訊在網路傳輸中是否做了加密處理,重要資料要採用TLS或者SSL。http請求預設是明文的,如果安全驗證和加密機制很爛,通過網路嗅探掃描,很容易被猜到和模擬請求,也可能被注入。

對執行時解釋保護,對於嵌有直譯器的軟體,檢查是否存在XSS、SQL注入漏洞;使用webiew的App,檢查是否存在URL欺騙漏洞

對Android元件許可權保護,禁止App內部元件被任意第三方程式呼叫。若需要供外部呼叫的元件,應檢查對呼叫者是否做了簽名限制

對迭代升級,檢查是否對升級包的完整性、合法性進行了校驗,避免升級包被劫持。

對介面擷取,通過adb shell命令或第三方軟體獲取root許可權,在手機介面擷取使用者填寫的隱私資訊,隨後進行惡意行為。

安全測試是目前移動應用的App測試中很重要的一項,特別是一些對使用者賬戶保密性較高的,在手遊測試,金融類App的測試中,佔據很大比例。