深入淺出:軟件研發或嵌入式開發源代碼如何加密?

軟件研發或嵌入式研發行業,其核心部分往往就是源代碼,如何做好源代碼的管理至關重要。根據軟件研發或嵌入式研發行業的從業者現狀,總結出研發從業人員有以下特點:

1學歷較高,都非常聰明,非常懂電腦。

2每個研發人員都有能力寫程序,甚至可以通過寫程序,進行各種數據變形。例如:文件讀寫(輸出日誌)socket通信、內存映射,常駐服務等,對於Web開發者,經由IISTomCatweb服務器的代碼變形更是輕而易舉。

3研發人員的個性較強,比較難管理

而我們軟件研發或嵌入式行業特點要求必須對研發成果源代碼進行安全管理。但是現實的工作必須環境特點爲:

1、大家必須有局域網,才能協同工作;

2、需要能訪問互聯網,方便查找資料;

3、必須通過U口串口網口等端口連接外部設備進行調試。

對於一些企業有的採用物理隔離,有的上虛擬化,有的上文檔級加密軟件,監控軟件基本上都是形同虛設。例如常見的物理隔離,就是網絡和外網斷開,然後禁止使用U盤(軟件或機箱),看上起很美好,但是對於懂電腦的研發人員來說,影響了工作效率,還是無法達到安全。

對於軟件禁止U盤的,搞個UPE,然後直接從U盤啓動繞開操作系統的管控做任何事。

插拔牆上的網線頭直連自己的筆記本電腦進行數據傳輸。

對於不能封U/串口的嵌入式調試環境更簡單,直接可以把數據通過U口串口寫出來。

……

另外,對於虛擬化,所有數在服務器端,看上去很完美,但是隻要外網可用,外設可用,基本上沒什麼安全可言。

 作爲一個軟件嵌入式研發公司的信息安全管理者,應該如何呢?

 我們先了解一下,嵌入式開發的特性:

  1)連接外設,聯網調試

      手機品種繁多,不可能做到針對每種設備類型、品牌的兼容;

      網口調試時,調試地址不斷變更,無法鎖定具體調試位置,數據很容易泄密;

      數據不能以密文形式燒錄至設備,否則設備無法識別,但這樣往往最容易造成數據外泄。

  2)開發者水平較高,會各種破解

      一個代碼開發人員,可以輕鬆寫一個把代碼輸出到日誌或control的程序,類似這種研發場景還有研發設計人員自編socket,內存,管道,comweb解析器發佈中轉,內存映射,常駐服務等至少30多種。

  3)數據被各種變形,***外發

      改變文件名稱、後綴,壓縮起來,跟隨項目一起打包,很容易流失。

  

  目前,市場上比較流行幾種防泄密手段,均是從外表看來可以滿足需求,但終究無法做到真正的防泄密。

  1、內外網隔離

    將涉密數據存儲在公司內網,內網不允許連接互聯網,看似數據只能保存在公司裏,但任然有很多其他泄密風險,比如外設接口拷貝數據;重裝OS時,UPE繞開操作系統的管控從WinPE中拷貝數據;外帶電腦直連內網中任意一臺PC機,數據對拷。

    也有人說直接將外設接口全部封掉,用一個鐵箱子將電腦機箱鎖起來。這樣雖然是保障了機箱數據安全,但是不便連接需要外設調試的設備,而且對於開發人員來說,互聯網是不可缺少的查資料資源,如果另外配備查資料的電腦,再加上之前的鐵箱子成本,也是不小的開銷。

  2、虛擬化

    虛擬化在最近幾年越來越熱,優點也越來越被人們發覺,比如減少服務器數量、簡化服務器部署、提高服務器資源利用率等等。但是將虛擬化與數據安全(防泄密)扯到一起,未免有些牽強。牽強在哪裏,簡單總結一下,就是通過互聯網泄密和外設接口數據傳輸。而且,虛擬化的軟硬成本,是一套加密軟件的10倍左右。

wKiom1eN6tuTKGOwAACxyVU9udY753.jpg-wh_50

 虛擬化用於數據防泄密

  3、文檔透明加密

    早在10年前,人們開始關注數據安全這一塊時,文檔加密的誕生幫助大多數的生產商,發展至今很多人對加密的見解就是:一個文件在公司內網打開正常,拿到外部打開亂碼,效果明顯直觀。

我們也承認此項技術在業界發展至今,技術之成熟與優秀之處。但如今時代已然不同,更多的需求傾向於嵌入式開發、源代碼型數據加密,而這就難倒文檔級的透明加密,這種抓進程、綁後綴的加密方法終究止步於源代碼開發防泄密需求。在衆多開發人員面前,轟然倒塌,潰不成軍。

我們來簡單列舉一些文檔透明加密在源代碼防泄密需求面前的一些不足之處。

    1U口數據線連手機:數據通過U口連接手機泄密。

    2U口數據線連設備:數據通過U口連接設備泄密。

    3、串口數據線連設備:數據通過串口連接設備泄密。

    4、網口數據線連設備:數據通過網口連接設備泄密。

    5、控制檯程輸出內容保護:研發人員編寫控制檯程序,把涉密內容輸出到控制檯上然後另存。

    6、日誌內容保護:研發人員編寫程序把代碼等涉密內容保存到日誌文件中然後把日誌文件拷貝走。        

    7、內存保護:研發人員編寫程序把代碼等涉密內容保存制定內存中,然後再通過另一個程序等把內存內容讀走。

    8web解析器保護:研發人員編寫程序把代碼等涉密內容文件修改成Html文本樣式,然後通過IIStomcatweb解析器發佈成網頁,然後用瀏覽器另存成明文拷貝走。

    9、管道保護:研發人員編寫管道程序把代碼等涉密內容傳走。

    10、網絡通信保護:研發人員編寫socket通信程序把代碼等涉密內容傳走。

    11、消息保護:研發人員編寫發消息程序把涉密內容發走。

    12、屏幕截圖保護:由於截圖插件等很多,只針對QQ進程是遠遠不夠的。

    13、開發進程追蹤困難:開發軟件在調試過程中,有些插件的進程在後臺一閃而逝,無法捕捉添加到綁定進程,後期導致整個調試過程出錯。

    14、壞文件:文件透明加密發展至今無法逾越的溝渠,原理是加密軟件在給源文件寫密鑰時突然斷電或者程序崩潰,導致密鑰只完成一半。最後計算機無法識別這個文件。

   從加密的整個行業來看,最早的是APIhook應用層,發展至文件過濾驅動透明加密,一直到現如今智能手機、平板電腦普及率原來越廣,APP開發者越來越多,嵌入式開發也越來越多,文件過濾驅動透明加密已漸漸不能滿足開發商們的需求。開發商們需要一款真正能經得起技術員“推敲”的防泄密軟件。而隨着這種需求的越來越強烈,沙盒加密也開始在大家的視線裏出現。

    爲什麼說沙盒加密能滿足源代碼級別、嵌入式開發的防泄密需求?

2012年,某全球知名通信設備生產銷售商,深圳總部的研發人員向沙盒加密提出這類需求。在當初整個加密市場,這一塊還是一片空白。沙盒加密商安全專家組討論研究,給出適合的解決辦法。在後幾年實施使用中愈加完善,發展至今可以完全解決這一類難題。

什麼是沙盒?

沙盒生效時,接管整個操作環境,文件本身在沙盒環境內如何處理、修改、編譯、調試都與沙盒無關,沙盒不會去過問這些行爲。然而當這些文件想要從系統裏拿出時,受到沙盒嚴格管控,無論是網絡出口,還是硬件接口出入,管理員不授權,所有文件均無法帶走。

我們把沙盒當做一間房屋,把數據當做進出這個房屋的人。人在房屋裏幹了什麼,變成劉德華還是周杰倫,變成男的或者女的,變成動物還是植物,房屋都不會去管他,房屋真正控制的是進出的“門”!

沙盒管控的就是這個“門”!

沙盒加密的優勢在於不改變文件、不改變動作、不影響開發調試結果,不用刻意定義需要加密的文件後綴,不用擔心開發者繞過沙盒造成泄密;安全隔離上網,加密與非加密劃分兩個區域,互不干涉;沙盒在對服務器保護的同時,也不會對服務器文件做加密處理,方便系統管理員存儲、備份、運維;沙盒也可以與ERPOAPDM等服務器,與SVNVSS等版本管理工具無縫集成。

沙盒加密用於嵌入式開發有以下幾大特點:

1)沙盒客戶端、服務器的數據在沙盒內受管控,未經授權無法被帶走;

2)調試接口受管控,未經授權,任何調試接口都被拒絕;

3)打開對外調試接口,並對接口進行約束:只能訪問固定的IP、只能從固定的端口調試、只能訪問固定的Mac地址;

4)指定需要調試的沙盒客戶端節點,對其只打開U口調試權限、只打開網口調試權限、只打開串口調試權限;

5)指定需要調試的沙盒客戶端節點,所有從這臺客戶端節點接口出去調試的數據,均由沙盒備份至服務器,方便後期審計與追溯;

6)對放開調試接口的客戶端節點進行攝像頭監控,以此作爲輔助,約束調試人員,保障數據安全。

 如下圖所示:

wKioL1eN6vbh9CedAAE6R2qcFY0231.jpg-wh_50

                                             沙盒加密用於嵌入式開發示意圖

   總結:術業有專攻。在圖紙和office辦公文檔加密需求爲前提下,沙盒過於龐大笨重,有點小題大做的感覺,用戶的體驗度也比沙盒加密體驗度高。但是對於源代碼加密和嵌入式開發需求來說,確實只有沙盒可以滿足需求。沙盒加密發展至今也就幾年時間,體驗度、方便率什麼的,也給他們一點發展時間,相信後期會有比較好的改善。

   文檔透明加密與沙盒加密有本質上的區別,本文只針對“源代碼、嵌入式開發源代碼加密”話題做探討,無針對的含義在裏面。請相關人員不要對號入座,文章只是就事論事。大家也可以自己去調查研究,去解惑事實的真相。如果有寫的不夠詳細的地方,也歡迎大家補充。

 


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章