吳英姿 肖榮
(1.杭州電子科技大學 浙江省杭州市 310018 2.上海理想信息產業(yè)(集團)有限公司 上海市 201315)
隨著移動互聯(lián)網(wǎng)的飛速發(fā)展,移動業(yè)務作為互聯(lián)網(wǎng)+時代最主要的載體,正越來越多的被用于承載政府和企業(yè)的關鍵業(yè)務和核心應用,移動業(yè)務所帶來的安全和保障問題也越來越突出,給政府、企業(yè)的在移動互聯(lián)網(wǎng)背景下的信息安全帶來巨大的風險。
移動應用安全[1]可以分為三個方面的內容:移動應用的安全保護、移動應用運行監(jiān)控、移動應用的承載設備的安全管控[2]。移動應用安全問題非常突出,惡意破解、源碼被逆向分析、惡意代碼注入、數(shù)據(jù)泄漏等,是移動應用面臨的最大威脅;移動應用在運行時經(jīng)常發(fā)生閃退、超時、慢交互、耗電、流量大等問題,故障和性能是移動應用面臨的主要問題;作為移動應用的載體,移動設備由于其隨身性和移動性,丟失、非法使用等,其自身的安全性也需要得到有效的管理。
傳統(tǒng)的安全管理主要集中于網(wǎng)絡的防護,在面對移動設備和移動應用時,由于缺乏體系化的防范手段,其安全風險經(jīng)常受到巨大的挑戰(zhàn)。移動信息化領域現(xiàn)有防控體系的局限性,推動了企業(yè)用戶對移動應用安全管理的需求。在移動互聯(lián)網(wǎng)背景下,設備的移動性、應用的多源性、網(wǎng)絡的多態(tài)性,使得原有的以軟件防護為主的安全體系,需要不斷完善優(yōu)化,構建面向移動應用、運行、設備,以“防護”、“感知”、“控制”相結合的多維安全管控體系是十分必要的。
移動應用需要通過安全加固,對關鍵代碼、核心業(yè)務邏輯進行加密保護,避免被逆向工具分析獲取源碼。通過對APP 應用的構成文件分配唯一標識,防止代碼植入、二次打包等惡意破解。通過加密技術,防止代碼注入,防止APP 被調試等惡意攻擊。通過通訊協(xié)議加密、數(shù)據(jù)存儲加密等功能技術,在數(shù)據(jù)通信鏈的各個傳輸和交互環(huán)節(jié),防止數(shù)據(jù)被捕獲、劫持和篡改。
移動應用發(fā)生閃退、超時、慢交互、耗電、流量大等問題,多是因為在開發(fā)時不正確的使用SQLite、內存、函數(shù)、線程、鎖等導致的。需要通過實時監(jiān)控技術可以動態(tài)監(jiān)測和采集移動應用的實時數(shù)據(jù),在移動APP 運行發(fā)生故障、性能問題時,可以進行問題代碼定位,提高性能和故障定位的準確性,縮短解決故障的時間。
圖1:移動應用運行監(jiān)控技術架構
通過實時監(jiān)控和采集移動設備運行時輸出的設備數(shù)據(jù)、網(wǎng)絡數(shù)據(jù)、業(yè)務數(shù)據(jù),進行調用鏈分析,對移動應用進行分析和診斷,及時修正和完善APP 應用,可以幫助用戶提升業(yè)務洞察力及業(yè)務運營能力。
通過將用戶身份與對應的移動終端硬件設備ID 進行對應,以證書、終端設備標識、用戶名、密碼等多種方式實現(xiàn)對終端用戶的身份認證,保證合法身份用戶使用授權的移動設備訪問應用。基于移動設備管理協(xié)議,對移動設備上的應用、數(shù)據(jù)以及移動設備的硬件功能進行管控。
對移動應用的保護包括代碼注入和SDK 嵌套兩種方式,對基于android 的系統(tǒng),在無源碼的情況下,可以通過re-wrap 方式注入代碼,實現(xiàn)更高的安全性控制。對基于iOS 和android 系統(tǒng)的有源碼情況下,可以通過SDK 嵌套,實現(xiàn)對原有方法的重構,實現(xiàn)安全性控制。
此外,更深層次的SDK 嵌套技術,可以用于構建企業(yè)移動應用運行環(huán)境,由運行環(huán)境代理移動應用的網(wǎng)絡交互、文件存儲和數(shù)據(jù)加密。通過運行環(huán)境的方法重構,實現(xiàn)移動應用與外部環(huán)境的數(shù)據(jù)和通信隔離。通過安全運行環(huán)境在手機上建立的安全容器[3],把企業(yè)的應用及數(shù)據(jù)與個人的應用及數(shù)據(jù)隔離。
通過代碼注入和SDK 嵌套技術,可以對移動應用的代碼、業(yè)務邏輯、數(shù)據(jù)進行加密和混淆,避免被逆向工具分析獲取源碼,防止外部惡意代碼植入和數(shù)據(jù)泄漏,對移動應用進行有效的保護。
通過字節(jié)碼增強技術,基于應用探針,對移動APP 進行監(jiān)控和數(shù)據(jù)實時采集,實現(xiàn)端到端的全鏈路監(jiān)控,及時準確發(fā)現(xiàn)移動APP 運行時故障、性能問題,快速查明故障點,通過調用鏈分析,定位性能瓶頸,提高性能和故障定位的準確性,縮短解決故障的時間。收集系統(tǒng)運行時輸出的移動設備數(shù)據(jù),提升業(yè)務洞察力及業(yè)務運營能力。
基于字節(jié)碼增強技術,可以支持多種軟件架構,實現(xiàn)探針自動探測、為集中式和分布式應用的提供完整的調用鏈拓撲、內外部方法依賴、調用請求量統(tǒng)計等[4]。基于字節(jié)碼增強技術的應用監(jiān)控架構圖如圖1 所示。
2.2.1 采集層
通過APP 探針技術,進行APP 上的各種性能數(shù)據(jù)的監(jiān)測功能,如網(wǎng)絡請求、網(wǎng)絡錯誤、頁面交互、崩潰等。
2.2.2 收集層
對來自APP 的性能數(shù)據(jù)的接入及分發(fā),進行數(shù)據(jù)的校驗。同時,根據(jù)定義的數(shù)據(jù)分析維度,進行數(shù)據(jù)的預處理。
2.2.3 計算層
隊列消費者模塊用于從Kafka 中讀取統(tǒng)計型日志,比如網(wǎng)絡請求、頁面交互等性能統(tǒng)計數(shù)據(jù),批量寫入到數(shù)據(jù)庫中。
2.2.4 存儲層
歷史日志包括全量日志數(shù)據(jù),會存儲到Нadoop 分布式文件系統(tǒng)中,主要用于大批量數(shù)據(jù)統(tǒng)計分析的需要。按照統(tǒng)計數(shù)據(jù)規(guī)??刹捎脙煞N存儲引擎,對于單緯度統(tǒng)計數(shù)據(jù),數(shù)據(jù)量可控,可以存儲于關系型數(shù)據(jù)庫;對于需要自定義緯度、自定義篩選條件的統(tǒng)計需求,需要預統(tǒng)計生成大量的統(tǒng)計數(shù)據(jù),數(shù)據(jù)量是根據(jù)統(tǒng)計緯度的數(shù)量呈指數(shù)級,傳統(tǒng)的關系型數(shù)據(jù)庫存儲容量和檢索速度已經(jīng)無法滿足,需要引入ElasticSearch。通過將日志數(shù)據(jù)進行全緯度預統(tǒng)計,然后輸入到ElasticSearch。
2.2.5 展示分析層
根據(jù)定義的維度,進行調用鏈拓撲和分析,定位問題代碼。
基于移動設備管理協(xié)議,對移動設備進行管理,包括移動應用控制、設備功能控制和設備安全控制等。移動設備安全管控技術架構如圖2 所示。
移動應用控制:對移動設備上的應用進行管控,包括應用的推送、安裝、卸載,以及對非授權的移動應用進行刪除,可以保證權限范圍內使用相應的移動應用。
圖2:移動設備安全管控技術架構
圖3:移動應用安全服務平臺架構
設備功能控制:對移動設備自身的能力進行管理和限制,包括網(wǎng)絡權限、GPS 定位、攝像頭限制、應用下載權限等功能。
設備安全控制:可以通過鎖屏、恢復出廠設置、更改密碼、數(shù)據(jù)擦除等多種方式保護終端設備的數(shù)據(jù)安全。
通過移動設備的安全管理,對設備上的應用安裝和使用權限、移動設備的功能、移動設備的密碼和數(shù)據(jù)等進行多層次的管理,通過對設備的安全控制,實現(xiàn)對設備上的政府、企業(yè)移動應用的保護。
基于微服務架構[5],構建了多層次、多維度的企業(yè)移動安全體系,能夠從移動應用安全保護、移動應用實時監(jiān)控、移動設備安全等多層次、多維度提供移動安全保護,為用戶的移動互聯(lián)網(wǎng)應用安全提供保障。如圖3 所示。
基于微服務架構,將移動應用安全保護、移動應用運行監(jiān)控、移動設備安全管控,通過將移動安全相應的能力核心服務功能分解到各個服務中心當中,各個服務中心可以獨立地開發(fā)、管理和迭代,移動安全管理門戶和核心服務功能之間通過信息交換的基礎技術體系。該架構降低了系統(tǒng)的耦合性,可以提供更加靈活的服務支持和擴展性,實現(xiàn)移動應用安全能力管控分離,提升了平臺的開放能力、行業(yè)應用能力、多元化服務能力以及系統(tǒng)的可擴展性、靈活性和可靠性。
基于移動應用安全服務平臺,支持可擴展、面向行業(yè)的移動安全應用保護,能夠從設備層、應用層、數(shù)據(jù)層提供多層次、全方位的安全管理。支持面向政府、司法、警務、教育、金融、零售、物流等諸多行業(yè)的移動應用安全管理,滿足不同行業(yè)對移動應用安全管控的需求。在司法領域,移動應用安全服務平臺為數(shù)十個監(jiān)獄提供智能警務通管理,滿足司法系統(tǒng)對警務應用和警務終端的安全管控要求;在金融服務領域,安全平臺為分布于28 個省市的金融智能終端提供安全管理,實時監(jiān)控移動應用運行情況,并為金融智能終端提供應用層和終端層的安全管理。
在互聯(lián)網(wǎng)快速發(fā)展背景下,對移動應用的安全保障體系進行研究和應用,通過技術創(chuàng)新和集成創(chuàng)新,對傳統(tǒng)安全管理內容進行擴展和提升,對保障移動應用代碼和數(shù)據(jù)安全,對移動應用進行性能瓶頸和故障點精確定位,以及提供對移動設備的使用安全保護,為政府、企業(yè)提供不同維度的移動應用安全保護,對建立多層次移動信息安全風險防范體系,具有非常重要的價值和意義。