《移動金融客戶端應用軟件安全管理規范》技術解讀
移動客戶端(移動APP)主要面臨的威脅包括反編譯、調試、篡改/重打包、輸入記錄、組件安全、注入和Hook、本地敏感數據泄露等。為貫徹落實《中華人民共和國國家網絡安全法》,加強移動金融客戶端應用軟件安全管理,構建覆蓋生命周期的管理機制,切實保障客戶端軟件安全,中國人民銀行2019年發布《移動金融客戶端應用軟件安全管理規范》(JR/T0092-2019)(以下簡稱“規范”)。本文將從技術角度,對規范管理要求進行分析解讀并為金融機構開展相應的合規工作提出建議。

01
points
規范內容解讀
(一)規范總體框架
《移動金融客戶端應用軟件安全管理規范》(JRT 0092-2019 ),分別從技術和管理兩個層面展開,對移動金融客戶端應用軟件以及客戶端應用軟件設計、開發、維護和發布的管理做出了明確要求。
總體框架

主要內容

適用范圍
《移動金融客戶端應用軟件安全管理規范》(JRT 0092-2019 )本標準規定了移動金融客戶端應用軟件的安全要求,以及客戶端應用軟件設計、開發、維護和發布的管理要求。
本標準適用于移動金融客戶端應用軟件的設計、開發、維護及發布過程,也適用于評估機構對相關應用進行安全性和標準符合性評估。
(二)身份認證安全
在規范中,強調了檢測金融客戶端身份認證方式、認證信息安全輸入和展示、認證失敗處理機制以及密碼的設定與重置方面的安全性,其中認證信息安全性需要開發者重點檢查認證信息輸入時是否具有安全性措施,并強調以客戶端應用軟件在輸入賬戶登錄密碼、銀行卡支付密碼和網絡支付交易密碼等認證信息時采用了替換輸入框原文、逐字符加密、字符加密、防范鍵盤竊聽、自定義軟鍵盤,或者通過其他方式保證攻擊測試無法獲取輸入信息的明文作為通過標準。

(三)邏輯安全
此項強調了金融客戶端邏輯安全設計、軟件權限控制、風險控制、回退處理以及異常處理方面的要求,其中邏輯安全設計需要開發者對于認證、校驗、交易處理等業務場景進行威脅建模,確保不存在邏輯漏洞,同時規范要求客戶端代碼避免調用具有已知安全漏洞的函數,避免敏感數據硬編碼等安全問題。

(四)安全功能設計
此項強調了金融客戶端組件安全、接口安全、客戶端抗攻擊能力以及環境檢測的檢測要求,全面檢測客戶端三方組件、H5、接口,其中應通過有效手段檢測客戶端軟件是否具備抵御靜態分析、動態調試、防篡改的能力,安全檢測、安全防護、客戶端運行環境檢測全方位考量已經成為金融行業客戶端安全能力建設的必要手段。

(五)密碼算法及密鑰管理
此項重點強調金融客戶端密碼算法以及密鑰管理,對密碼算法、密鑰長度都做了相關的要求,其中密鑰的生成、傳輸、存儲應具備隨機性和機密性。

(六)數據安全
此項則是從金融客戶端數據獲取、訪問控制、數據傳輸、數據存儲、數據展示、數據銷毀即數據安全全生命周期角度提出要求,其中數據獲取不僅需要考慮個人金融信息收集的合規,還需要考量客戶端本地數據安全、防篡改、防注入、防調試等高危風險漏洞,開發者需要從檢測到加固做好全面防護。數據傳輸則是以針對不同場景的安全防護能力作為通過標準包括應用層數據的機密性、完整性不可抵賴性,傳輸層數據的機密性、傳輸協議安全及證書雙向校驗,需要對金融客戶端進行逐一的滲透測試以檢查薄弱點。

02
points
金融機構的合規建議
(一)加強安全輸入,提升即時防護能力
如果缺少安全輸入控制的能力,可能存在惡意程序對用戶輸入的敏感信息(主要是密碼)進行竊聽導致輸入敏感信息泄露的風險。建議盡量使用系統自定義的隨機軟鍵盤(而非系統輸入法)來輸入敏感信息,加密擊鍵,在敏感信息的輸入過程盡量避免視覺反饋。
(二)加強邏輯漏洞的檢測識別能力
邏輯漏洞是指業務/功能上的設計缺陷,常規漏洞掃描器無法發現邏輯漏洞,需要開發者對于認證、校驗、交易處理等業務場景進行測試,確保不存在邏輯漏洞,開發者可以利用自動化的檢測工具進行全面檢查客戶端代碼是否存在調用具有已知安全漏洞的函數。
(三)加強軟件客戶端自身的防護能力
成功的反編譯將使得攻擊者能夠完整地分析APP的運行邏輯,尤其是相關業務接口協議、和通信加密的實現。針對應用程序關鍵代碼明文暴露降低的情況,攻擊者或惡意程序可通過修改代碼獲取關鍵信息或繞過部分邏輯直接操作。缺失完整性校驗主要會面臨盜版、破解內購、在應用市場中夾帶木馬、廣告等風險。建議客戶端進行加殼處理防止攻擊者反編譯客戶端,至少要對核心代碼進行混淆。客戶端在每次開機啟動時進行客戶端自身的應用完整性校驗,在驗證邏輯中不使用MANIFEST.MF中的數據作為驗證憑證,同時需驗證是否有不屬于該客戶端版本的新文件添加,驗證過程于服務器端完成。
(四)加強密鑰管理選用安全算法
需要關注密鑰的生成、傳輸、存儲安全,密碼系統的強度跟加密算法復雜程度、密鑰機密程度、密鑰長度、初始化向量以及如何在密碼系統內協同工作有著緊密關系。
(五)加強本地數據及傳輸安全
檢測傳輸協議是否安全及程序中是否存在相關的殘留信息,如測試內網信息、測試頁面、私鑰證書、測試或者管理員賬號信息等。此類信息泄露可能造成數據泄露導致的系統入侵。設備中應測試程序對應的數據文件夾是否包含敏感數據。由于設備可以進行“越獄”,且“越獄”之后數據不會丟失,則導致本地存儲敏感信息將造成較大風險。建議刪除對應的數據殘留,對數據文件夾敏感信息加密處理。