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