標籤:
軟體研發或嵌入式研發行業,其核心部分往往就是原始碼,如何做好原始碼的管理至關重要。根據軟體研發或嵌入式研發行業的從業者現狀,總結出研發從業人員有以下特點:
1.學曆較高,都非常聰明,非常懂電腦。
2.每個研發人員都有能力寫程式,甚至可以通過寫程式,進行各種資料變形。例如:檔案讀寫(輸出日誌)、socket通訊、記憶體映射,常駐服務等,對於Web開發人員,經由IIS或TomCat等web伺服器的代碼變形更是輕而易舉。
3.研發人員的個性較強,比較難管理
而我們軟體研發或嵌入式行業特點要求必須對研發成果—原始碼進行安全管理。但是現實的工作必須環境特點為:
1、大家必須有區域網路,才能協同工作;
2、需要能訪問互連網,方便尋找資料;
3、必須通過U口串口網口等連接埠串連外部裝置進行調試。
對於一些企業有的採用物理隔離,有的上虛擬化,有的上文檔級加密軟體,監視軟體基本上都是形同虛設。例如常見的物理隔離,就是網路和外網斷開,然後禁止使用隨身碟(軟體或機箱),看上起很美好,但是對於懂電腦的研發人員來說,影響了工作效率,還是無法達到安全。
對於軟體禁止隨身碟的,搞個隨身碟PE,然後直接從隨身碟啟動繞開作業系統的管控做任何事。
插拔牆上的網線頭直連自己的膝上型電腦進行資料轉送。
對於不能封U口/串口的嵌入式調試環境更簡單,直接可以把資料通過U口串口寫出來。
……
另外,對於虛擬化,所有數在伺服器端,看上去很完美,但是只要外網可用,外設可用,基本上沒什麼安全可言。
作為一個軟體嵌入式研發公司的資訊安全管理者,應該如何呢?
我們先瞭解一下,嵌入式開發的特性:
(1)串連外設,連網調試
手機品種繁多,不可能做到針對每種裝置類型、品牌的相容;
網口調試時,調試地址不斷變更,無法鎖定具體調試位置,資料很容易泄密;
資料不能以密文形式燒錄至裝置,否則裝置無法識別,但這樣往往最容易造成資料外泄。
(2)開發人員水平較高,會各種破解
一個代碼開發人員,可以輕鬆寫一個把代碼輸出到日誌或control的程式,類似這種研發情境還有研發設計人員自編socket,記憶體,管道,com,web解析器發布中轉,記憶體映射,常駐服務等至少30多種。
(3)資料被各種變形,滲透外發
改變檔案名稱、尾碼,壓縮起來,跟隨項目一起打包,很容易流失。
目前,市場上比較流行幾種防泄密手段,均是從外表看來可以滿足需求,但終究無法做到真正的防泄密。
1、內外網隔離
將涉密資料存放區在公司內網,內網不允許串連互連網,看似資料只能儲存在公司裡,但任然有很多其他泄密風險,比如外設介面拷貝資料;重裝OS時,隨身碟PE繞開作業系統的管控從WinPE中拷貝資料;外帶電腦直連內網中任意一台PC機,資料對拷。
也有人說直接將外設介面全部封掉,用一個鐵箱子將電腦機箱鎖起來。這樣雖然是保障了機箱資料安全,但是不便串連需要外設調試的裝置,而且對於開發人員來說,互連網是不可缺少的查資料資源,如果另外配備查資料的電腦,再加上之前的鐵箱子成本,也是不小的開銷。
2、虛擬化
虛擬化在最近幾年越來越熱,優點也越來越被人們發覺,比如減少伺服器數量、簡化伺服器部署、提高伺服器資源使用率等等。但是將虛擬化與資料安全(防泄密)扯到一起,未免有些牽強。牽強在哪裡,簡單總結一下,就是通過互連網泄密和外設介面資料轉送。而且,虛擬化的軟硬成本,是一套加密軟體的10倍左右。
虛擬化用於資料防泄密
3、文檔透明加密
早在10年前,人們開始關注資料安全這一塊時,文檔加密的誕生協助大多數的生產商,發展至今很多人對加密的見解就是:一個檔案在公司內網開啟正常,拿到外部開啟亂碼,效果明顯直觀。
我們也承認此項技術在業界發展至今,技術之成熟與優秀之處。但如今時代已然不同,更多的需求傾向於嵌入式開發、原始碼型資料加密,而這就難倒文檔級的透明加密,這種抓進程、綁尾碼的加密方法終究止步於原始碼開發防泄密需求。在眾多開發人員面前,轟然倒塌,潰不成軍。
我們來簡單列舉一些文檔透明加密在原始碼防泄密需求面前的一些不足之處。
1、U口資料線連手機:資料通過U口串連手機泄密。
2、U口資料線連裝置:資料通過U口串連裝置泄密。
3、串口資料線連裝置:資料通過串口串連裝置泄密。
4、網口資料線連裝置:資料通過網口串連裝置泄密。
5、控制台程輸出內容保護:研發人員編寫控制台程式,把涉密內容輸出到控制台上然後另存。
6、日誌內容保護:研發人員編寫程式把代碼等涉密內容儲存到記錄檔中然後把記錄檔拷貝走。
7、記憶體保護:研發人員編寫程式把代碼等涉密內容儲存制定記憶體中,然後再通過另一個程式等把記憶體內容讀走。
8、web解析器保護:研發人員編寫程式把代碼等涉密內容檔案修改成Html文本樣式,然後通過IIS或tomcat等web解析器發布成網頁,然後用瀏覽器另存成明文拷貝走。
9、管道保護:研發人員編寫管道程式把代碼等涉密內容傳走。
10、網路通訊保護:研發人員編寫socket通訊程式把代碼等涉密內容傳走。
11、訊息保護:研發人員編寫發訊息程式把涉密內容發走。
12、螢幕保護裝置:由於外掛程式等很多,只針對QQ進程是遠遠不夠的。
13、開發進程追蹤困難:開發軟體在調試過程中,有些外掛程式的進程在後台一閃而逝,無法捕捉添加到綁定進程,後期導致整個調試過程出錯。
14、壞檔案:檔案透明加密發展至今無法逾越的溝渠,原理是加密軟體在給源檔案寫密鑰時突然斷電或者程式崩潰,導緻密鑰只完成一半。最後電腦無法識別這個檔案。
從加密的整個行業來看,最早的是APIhook應用程式層,發展至檔案過濾驅動透明加密,一直到現如今智能手機、平板電腦普及率原來越廣,APP開發人員越來越多,嵌入式開發也越來越多,檔案過濾驅動透明加密已漸漸不能滿足開發商們的需求。開發商們需要一款真正能經得起技術員“推敲”的防泄密軟體。而隨著這種需求的越來越強烈,沙箱加密也開始在大家的視線裡出現。
為什麼說沙箱加密能滿足原始碼層級、嵌入式開發的防泄密需求?
2012年,某全球知名通訊裝置生產銷售商,深圳總部的研發人員向沙箱加密提出這類需求。在當初整個加密市場,這一塊還是一片空白。沙箱加密商安全專家組討論研究,給出適合的解決辦法。在後幾年實施使用中愈加完善,發展至今可以完全解決這一類難題。
什麼是沙箱?
沙箱生效時,接管整個作業環境,檔案本身在沙箱環境內如何處理、修改、編譯、調試都與沙箱無關,沙箱不會去過問這些行為。然而當這些檔案想要從系統裡拿出時,受到沙箱嚴格管控,無論是網路出口,還是硬體介面出入,管理員不授權,所有檔案均無法帶走。
我們把沙箱當做一間房屋,把資料當做進出這個房屋的人。人在房屋裡幹了什麼,變成劉德華還是周杰倫,變成男的或者女的,變成動物還是植物,房屋都不會去管他,房屋真正控制的是進出的“門”!
沙箱管控的就是這個“門”!
沙箱加密的優勢在於不改變檔案、不改變動作、不影響開發調試結果,不用刻意定義需要加密的檔案尾碼,不用擔心開發人員繞過沙箱造成泄密;安全隔離上網,加密與非加密劃分兩個地區,互不干涉;沙箱在對伺服器保護的同時,也不會對伺服器檔案做加密處理,方便系統管理員儲存、備份、營運;沙箱也可以與ERP、OA、PDM等伺服器,與SVN、VSS等版本管理工具無縫整合。
沙箱加密用於嵌入式開發有以下幾大特點:
(1)沙箱用戶端、伺服器的資料在沙箱內受管控,未經授權無法被帶走;
(2)調試介面受管控,未經授權,任何調試介面都被拒絕;
(3)開啟對外調試介面,並對介面進行約束:只能訪問固定的IP、只能從固定的連接埠調試、只能訪問固定的Mac地址;
(4)指定需要調試的沙箱用戶端節點,對其只開啟U口調試許可權、只開啟網口調試許可權、只開啟串口調試許可權;
(5)指定需要調試的沙箱用戶端節點,所有從這台用戶端節點介面出去調試的資料,均由沙箱備份至伺服器,方便後期審計與追溯;
(6)對放開調試介面的用戶端節點進行網路攝影機監控,以此作為輔助,約束調試人員,保障資料安全。
如所示:
沙箱加密用於嵌入式開發
總結:術業有專攻。在圖紙和office辦公文檔加密需求為前提下,沙箱過於龐大笨重,有點小題大做的感覺,使用者的體驗度也比沙箱加密體驗度高。但是對於原始碼加密和嵌入式開發需求來說,確實只有沙箱可以滿足需求。沙箱加密發展至今也就幾年時間,體驗度、方便率什麼的,也給他們一點發展時間,相信後期會有比較好的改善。
文檔透明加密與沙箱加密有本質上的區別,本文只針對“原始碼、嵌入式開發防泄密”話題做探討,無針對的含義在裡面。請相關人員不要對號入座,文章只是就事論事。大家也可以自己去調查研究,去解惑事實的真相。如果有寫的不夠詳細的地方,也歡迎大家補充。
深入淺出:嵌入式開發行業該怎麼挑選加密?