1、保障開放平臺能力接入安全
(1)為了避免攻擊者偽造應用接入開放平臺,造成運營商及能力提供商的資源濫用,以及對開發者的非法計費,需要在能力調用過程中對應用的身份進行認證。建議采用Token機制實現應用身份認證:在每次能力調用時,安全模塊需要對能力調用過程中的URL與APPKEY進行檢查,以防止APPKEY被濫用、重用。終端應用、Web應用均采用開發階段預置在應用中的APPKEY生成TerToken和WebToken,開放平臺通過同樣的機制對接收的TerToken和WebToken進行驗證、判斷應用身份的合法性,每次請求的Token都不同。
(2)為了避免合法應用濫用未授權或未購買的能力,需要對應用調用能力的權限進行驗證。
(3)為了實現對用戶的計費及開發者的計費,需要對用戶賬戶及開發者子賬戶進行驗證。
(4)為了避免用戶遭受未授權應用的騷擾,實現用戶隱私保護,需要對用戶與應用的訂購關系進行驗證。
(5)為了防止應用在運行中被攻擊者惡意篡改,當用戶執行非法操作或破壞計費時,需要對應用的完整性進行保護。應用可以在本地采用MAC指紋方式實現對運行程序完整性的驗證,禁止經過篡改的應用執行任何操作。
MAC指紋生成:在終端應用通過測試審核之后,安全模塊中的完整性管理工具可自動計算出終端應用模塊,以及終端能力SDK的MAC指紋。
MAC指紋安全存儲:完整性管理工具自動將MAC指紋安全存儲(如加密存儲、離散存儲、代碼混淆、安全算法轉換)到新建的終端應用安全組件中,并對新建的安全組件進行安全加固(加固需求見下文中說明),MAC指紋在任何情況下均不允許被非法竄改。
安全組件置換:完整性管理工具可自動將開發者在開發階段所使用安全組件替換成安全存儲了MAC指紋并進行了安全加固了的新建的終端應用安全組件,并將應用重新打包并輸出。
2、保障平臺與外部平臺之間協議與接口安全
(1)制定并實施平臺與外部平臺接口之間的安全管控措施。
(2)技術實現需要符合協議操作規范(公有和私有協議,應注釋協議實現功能及各接口傳遞參數的含義),核實是否對協議與接口進行過安全測試。
(3)對相關代碼進行安全審計。
(4)現場測試時至少采用以下方式驗證上述各點,是否還存在其他安全問題。
·代碼安全審計;
·接口是否可對輸入來源進行白/黑名單判斷。
接口需要對設計范圍以外的非正常參數進行過濾,并提供統一的、不泄露內部敏感信息的提示。
3、保障能力接囗調用安全
(1)定期梳理業務流程,篩查存在接口調用的業務操作,如發送短息、彩信等。
(2)梳理平臺全部能力調用接口,確保沒有接口能夠成功實施違規調用操作。
·對于GET型提交的接口調用,可直接在瀏覽器輸入中對相關參數進行修改和測試;
·對于POST型提交的接口調用,可在頁面上直接輸入或借助特定工具抓包對相關參數進行修改和測試。
(3)梳理對能力開放接口進行調用的業務操作,確保針對這些業務操作具備一定安全防護措施,如動態短信確認、權限限制(即需登錄后調用接口)等。
4、接口對提交數據進行合法性校驗和有效性驗證
(1)梳理業務流程,篩查存在接口調用的業務操作,如二維碼自制提交、頭像提交等。
(2)測試非法內容的提交處理。
·進入提交頁面,將提交的內容修改為非法或無效的,例如,在提交涉黃、涉政治等非法內容時可將提交內容修改為無效內容等;
·將修改后的內容進行提交;
·接口應能夠對非法的內容進行過濾或提示,也可以對無效內容進行自動更新或提示。
(3)接口對非法或無效內容應具有一定的防護和過濾機制;同時,應當核實是否可以通過一定的技術手段繞過接口防護和過濾機制,如編碼等,即核實安全防護機制的安全性。
5、本地API的安全保護
客戶端應用需要保護本地API在調用過程中的完整性,以及一些安全相關API的機密性。本地API的安全保護可通過加密處理、輸入/輸出口轉移、安全算法轉換、敏感信息轉換等機制,以保障不同組件之間的調用安全。
6、安全能力更新機制及其他安全加固需要
當平臺監測到客戶端應用安全模塊被攻擊后,可及時通過安全能力更新機制更新客戶端應用中的安全組件相關算法或密鑰,或通過平臺安全策略禁止被攻擊后的客戶端訪問開放平臺能力,以確保業務平臺能力僅被合法使用;同時還需要解決可能出現的針對其他攻擊方法的安全加固需求。