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