文/武宗品 張嵩 李剛 魏康威 李銘樂
近年來,移動互聯網技術的飛速發展有目共睹,我們可以隨時隨地的去上網、移動支付、生活繳費、足不出戶的網購、觀看高清視頻等,享受這些移動互聯網技術發展帶來的便利早已進入我們的日常生活之中,移動互聯網技術的發展正深刻影響著我們的生活,技術升級帶來的方便與快捷也已遠遠超出我們的想象,科學技術的飛速發展進步正引領著我們的社會走向深層次變革之中。
調查顯示,我國使用移動辦公的人數在逐年增加,移動辦公也逐漸從大中型企業向中小型企業過渡普及,由此帶來的企業可視數據泄露風險也愈發明顯,如何防止可視數據泄露越來越受到大多數企業的重視,保護企業的數據安全、使企業可視數據免遭泄露顯得更為重要、也更為緊迫,保護企業數據安全更應該成為我們的常態,更是我們義不容辭、不可推卸的責任。
本文基于虛擬應用技術,針對智能終端Android系統上的運行應用程序,實現了一種無須第三方應用開發者介入的、通用的、可定制化的屏幕水印繪制方式,能夠使第三方應用程序界面顯示可定制的屏幕水印信息,有效地提高了可視數據通過截屏、拍照、錄像等方式發生泄漏的難度。
可視數據指的是運用計算機圖形學和圖像技術,將存儲在計算機或手機上的二進制數據轉換為文本、圖片顯示在屏幕上,以進行交互處理;可視數據可以將復雜、無規律的數據以直觀、容易理解的方式展示在人們面前,以便人們更加高效的獲取有價值的信息,可視數據是我們與數據信息交流的一種方式。但是可視數據在方便我們使用的同時,也會帶來很大的信息安全隱患,對于企業用戶來說困擾他們的最大問題就是可視數據的泄露。針對目前市場情況,我們分析了基于Android系統的智能終端可視數據防泄露需求,下面介紹下常見的可視數據泄露途徑:
(1)截屏拷貝泄露:這種方式主要是通過使用手機的截屏功能將可視數據保存為圖片,這樣就可以將可視數據信息以圖片的形式泄露出去。
(2)手機拍照泄露:對具有拍攝功能的手機未進行權限管控,導致可視數據信息被他人拍攝泄露出去。
(3)智能終端即時通訊:員工在日常工作中會大量使用即時通訊軟件,這樣就會導致員工行為不可控,員工可能會通過即時通信軟件將存儲在智能終端上的可視數據或文檔發送給其他公司的人,導致企業數據泄露、商業泄密。
(4)打印數據泄露:通過打印的方式,將企業敏感信息打印為紙質文件,攜帶出去給他人。
(5)U盤拷貝泄露:通過便攜式U盤插入手機上,將手機上的敏感數據拷貝出去以致數據泄露。
針對日常工作中可能遇到的可視數據泄露情形,一方面要從管理方式上考慮如何確保數據不泄露,另一方面要提高數據泄露的復雜度、降低數據泄露后追蹤的難度。針對第二點,我們需要在泄露出去的數據上面繪制特有的水印信息,可有效降低數據泄露風險,確保數據外泄后可以追溯到泄露源頭,防止數據泄露后被別有用心的人違法利用,提高數據泄露后非法使用的成本,水印可應用于查看圖片、打開辦公文檔、瀏覽公司內部網頁、使用辦公軟件等場景,保證企業數據安全。
在不修改第三方應用的前提下,在Android系統上實現對應用的水印覆蓋,需要通過虛擬化技術。對現有的虛擬化技術進行了分析和調研:通過將LXC工具移植到移動ARM平臺,使用LXC工具創建出多個容器,在每個容器中運行Android系統,實現了一種基于容器的虛擬化解決方案,但是該方案需要修改每個虛擬Android系統源代碼,不具有通用性和可移植性;通過修改Linux內核的現有命名空間資源隔離機制,擴展Driver命名空間,以支持多個虛擬化Android系統實例同時運行在一套硬件設備上,但是該方案仍然不便于移植,需要修改系統源碼。
本文采用虛擬應用技術是以Android系統framework框架為基礎編寫的一套第三方應用程序運行所需的virtual framework service(虛擬框架服務),其分為Client代理端和Server服務端;框架的實現基礎是Java語言的反射注入和動態代理機制,在Android系統的framework層進行Hook(攔截)系統原生代碼,以此接管應用程序的啟動、創建、運行流程,具有輕量、便于移植、使用方便的特性。
虛擬應用技術在運行時并不是一個簡單的單進程的庫,其需要在系統調用到其預先注冊在清單文件中的組件之后Hook系統,之后代理ClientApp的四大組件,包括組件生命周期管理等。
在Client App運行進程中我們會調用framework API,這些API最終會通過Binder進程間通信調用到framework service進程所提供的遠端服務。在遠端服務中比如ActivityManagerService通過持有Client App進程的IBinder Token句柄,通過token也可以讓framework service進程中的遠端服務調用App進程中的方法。
在虛擬應用環境下,我們需要在Client App和framework services之間需要增加一層自己實現的VirtualAppService。VirtualAppService模擬了framework service的部分功能,而這也是虛擬應用技術實現的關鍵所在。在虛擬應用中運行的Client App是未在framework service中注冊的,虛擬應用則是預先在framework service中注冊,因此framework service不能像管理普通應用一樣管理運行在虛擬應用中的Client App會話,所以虛擬應用需要創建一套VirtualAppService管理虛擬應用中的Client App會話。
我們相當于在Android系統上面創建了一個沙盒,總體設計采用分層的設計模式,分為業務邏輯層、應用運行層、虛擬應用服務框架層,下面介紹這三層各自的作用。
業務邏輯層:主要負責配置虛擬應用內的一些DLP(Data leakage prevention)策略,保護虛擬應用內的數據免遭泄露。應用運行層:負責在虛擬應用內運行第三方應用程序,第三方應用程序進程的創建啟動運行以及組件的創建啟動都是在該層操作,并且構建第三方應用程序的虛擬私有空間。虛擬應用服務框架層:負責提供在虛擬應用內運行的第三方應用程序所需要的各種虛擬服務,在虛擬應用內提供基礎設施以便第三方程序的運行。
以虛擬應用技術作為底層基礎框架API,公司組織團隊開發出一整套從終端到后臺管理的安全盒平臺軟件系統,形成一整套移動辦公模式解決方案。
3.1.1 用戶管理
安全盒平臺可以將客戶的組織架構信息通過Excel的形式導入,也可以在平臺上錄入信息。管理員可以對這些用戶信息進行增刪改查,并對用戶的賬號密碼進行重置。
3.1.2 應用管理
安全盒內使用的應用是管理員控制的。管理員可以上傳用戶可以使用的應用,并控制應用可以允許哪些用戶進行使用。
3.1.3 可定制化屏幕水印
安全盒平臺可以根據用戶提供的想要顯示的水印信息做定制化處理,以滿足客戶所要求的應用顯示水印信息,在安全盒內運行的第三方應用程序的界面上覆蓋顯示特定水印信息,水印信息可以更新。水印信息定制包括:是否顯示IMEI、是否顯示用戶名、是否顯示時間戳、顯示的位置等。
安全盒平臺軟件是順應市場需求,面向政務部門等一些對數據安全等級要求比較高的行業,為用戶提供一個安全可靠的智能終端使用環境,保證用戶數據安全。當前,安全盒平臺已經在法院、政府、公安等多個行業進行部署和使用。
本文分析了可視數據防泄露需求以及虛擬技術的實現原理,并以此做為底層基礎框架開發出了安全盒平臺軟件系統,實現數據防泄漏功能,解決企業用戶在工作中遇到的數據安全防護以及數據防泄漏等問題。