最近SDK的項目中,第三方殺毒軟件報告有病毒。後來經過檢查發現SDK浮窗動畫的邏輯被檢測出有病毒,最後進行了修改。雖然事情已經解決了,但是造成這個問題的原因之壹就是測試中沒有安全測試,沒有安全測試的標準和方法。所以今天我就把我之前工作中參與過的安全測試,以及從網上查閱過的關於安全測試的資料整理壹下。如有不足之處,請見諒。
二、軟件權限
1)扣費風險:瀏覽網頁、下載等是否會產生扣費。壹般遊戲類app和社交類app都要考慮這些。
2)隱私泄露風險。比如我們在安裝壹個APP應用時,通常會看到“xx想看手機通訊錄”等提示,可以提示用戶拒絕接收。以上是APP測試中的測試點。
3)檢查輸入。如果APP有輸入框,就要檢查輸入信息,比如密碼不能顯示明文。在測試中,洪需要在註冊時輸入測試結果。
4)限制/允許使用手機功能連接互聯網、收發信息、啟動應用程序、在手機上拍照或錄音、讀寫用戶數據。這在通信行業應用廣泛,如展訊、高通等芯片廠商,出廠時都要對手機的功能進行測試。
第三,代碼安全性
之所以單獨拿出來,是因為SDK測試時SDK代碼被第三方工具檢測到,會影響輸入法的使用。所以要盡量在後續的測試中加入安全性測試。
四。安裝和卸載安全
1)應用程序應該正確安裝在設備驅動程序上。
2)妳可以在設備驅動上找到應用程序對應的圖標。在SDK測試項目中,發現有些設備是授權的,無法發出圖標創建快速鏈。
3)是否包含數字簽名信息。SDK測試項目中基本沒有這個測試,但是輸入法打包和主線版本中有這個測試。
4)應指定安裝路徑。
5)未經用戶許可,應用程序不能預設為自動啟動。
6)卸載是否安全,安裝的文件是否全部卸載。
7)是否有提示卸載用戶使用過程中產生的文件?
8)修改後的配置信息是否恢復。
9)卸載會影響其他軟件的功能嗎?
10)卸載應該會刪除所有文件。
11)安裝包的存放。在SDK下載安裝包的測試中,我們經常會看到下載的包後面有四個隨機的字符串。這樣做的目的是為了防止第三方工具惡意刪除安裝包。
在SDK測試項目中,有下載、安裝、卸載的特殊用例,安裝路徑和下載文件夾路徑都有相關測試。測試結果頁面顯示,部分手機(如華為mate1)刪除壹個下載路徑文件夾後不會自動創建。
動詞 (verb的縮寫)數據安全
1)當密碼或其他敏感數據輸入到應用程序中時,它不會存儲在設備中,密碼也不會被解碼。
2)輸入的密碼不會以明文顯示。
3)密碼、信用卡詳細信息或其他敏感數據不會存儲在預先輸入的位置。
4)不同應用的個人身份證或密碼長度至少要有4-8位。
5)當應用程序處理信用卡詳細信息或其他敏感數據時,它不以明文形式將數據寫入其他單獨的文件或臨時文件。為了防止應用程序在不刪除其臨時文件的情況下異常終止,可能受到入侵者的攻擊,然後讀取這些數據信息。
6)當敏感數據輸入到應用程序中時,它不會存儲在設備中。
7)備份要加密,恢復數據時要考慮恢復過程中的異常通信中斷。數據在恢復後使用前應進行驗證。
8)應用程序應考慮系統或虛擬機產生的用戶提示信息或安全警告。
9)應用程序不能忽略用戶的提示信息或系統或虛擬機產生的安全警告,更不能在安全警告顯示前通過顯示誤導信息欺騙用戶,應用程序更不能通過模擬安全警告誤導用戶。
10)在刪除數據之前,應用程序應該通知用戶或者應用程序應該提供“取消”命令。
11)"取消"命令操作可以根據設計要求實現其功能。
12)應用程序應該能夠處理不允許應用程序連接到個人信息管理的情況。
13)在讀取或寫入用戶信息時,應用會向用戶發送操作錯誤的提示信息。
14)未經用戶明確許可,不得損壞或刪除個人信息管理應用中的任何內容。
15)應用程序正確地讀寫數據。
16)應用應該有異常保護。
17)如果數據庫中的重要數據即將被重寫,應及時通知用戶。
18)能合理處理錯誤。
19)在意外情況下應該提示用戶。
20)HTTP和HTTPS覆蓋測試。在測試中,我們經常會遇到要求加密和解密的測試,以確保產品的安全性。