解讀網易易盾新一代IoT安全編譯器Maze

一、網易易盾爲什麼會推出安全編譯器Maze?

隨着5G時代的到來,會有越來越多的物聯網設備走進我們的生活,然而物聯網的終端本身普遍處於白盒環境中,***者很容易獲取相關的信息進行***,這個時候如果不加以防護,勢必給我們的生活造成重大的影響。然而設備的代碼安全是一切安全的基礎,如果設備代碼不加以防護或防護不夠,不僅僅會造成本身核心技術泄露,同時也給IoT設備穩定運行帶來威脅。

與此同時,隨着開發者安全意識的不斷提高以及對於性能上的更多的考量,會有越來越多的移動開發者把算法或者核心邏輯寫在本地層,如果本地層保護不夠,***者通過逆向分析就可以得到核心的算法實現,嚴重危害到企業的利益,並且隨着行業逆向水平的提高,逆向工具的使用也越來越普及,對於C/C++二進制文件破解的門檻逐步降低。

基於以上這些痛點和威脅,網易易盾開發出了IoT安全編譯器Maze。Maze是一款針對C/C++層源代碼加密混淆的工具,用於保護智能汽車、智能攝像頭、智能傢俱等固件代碼,避免因逆向工程被破解,造成核心技術被泄漏、代碼執行流程被分析等安全問題。

安全編譯器與普通編譯器相似,可將C、C++等源代碼編譯成二進制代碼。不同之處在於,安全編譯器在編譯時,能夠對代碼進行控制流混淆、字符串加密等安全保護,從而避免***者通過IDA Pro等逆向工具反編譯二進制代碼,分析業務代碼執行流程,進一步篡改或竊取核心技術。

二、Maze原理說明:“迷宮矩陣”技術

Maze的“迷宮矩陣”技術由兩部分組成:一個是邏輯混淆,另外一個是邏輯調度。

2.1邏輯混淆

控制流平坦化

由於函數的控制流圖是函數邏輯的重要體現點,這裏以函數的控制流作爲保護和說明對象。由於函數中的控制流是呈現順序的一個形態,逆向者可以通過逆向工具對其進行分析,還原程序的算法邏輯。

易盾安全編譯器中控制流平坦化通過一個主分發器來控制程序基本塊的執行流程,分散程序邏輯之間的關係,大大的增大了逆向者的分析難度,原理圖如下所示:

解讀網易易盾新一代IoT安全編譯器Maze

字符串加密

由於函數中的字符串是逆向者進行分析的第一個重要入口,因此在易盾安全編譯器中,字符串是默認且建議加密的,從下圖中可以看到保護後的字符串消失了,保障了函數的安全。
解讀網易易盾新一代IoT安全編譯器Maze

指令替換&&僞造控制流

由於函數控制流是逆向***者去分析的重要入口,因此安全編譯器通過對控制流進行虛假變形,以及指令之間的同語義的等價替換。通過構造一系列的邏輯謂詞,和等價轉換規則“豐富”整個程序邏輯,大大的增大逆向分析者去逆向分析的難度,變換前後的原理圖如下所示:
解讀網易易盾新一代IoT安全編譯器Maze

2.2邏輯調度

調用隱藏

程序邏輯其中有一部分重要邏輯是通過子函數之間的調用來體現的,安全編譯器通過分析函數之間的調用鏈,然後複雜化來增加之間的調用關係,使得程序調用達到一種隱藏的效果。
解讀網易易盾新一代IoT安全編譯器Maze

間接調用

爲了進一步的增大程序之間的分析難度,通過“分散”並重新組織塊狀態之間的調用關係,通過引入一個動態的分發塊結構,來模擬整個程序運行的過程,無論是靜態還是動態都使得程序看起來更加的困難,變換其後的效果圖如下所示:
解讀網易易盾新一代IoT安全編譯器Maze

三、保護前後效果對比

以下是採用安全編譯器保護前後的效果圖,可以看到其中重要的字符串通過IDA靜態分析完以後消失了,給靜態分析帶來一定的困難。

通過觀察保護前後的混淆控制流,可以看到保護以後的控制流變得異常的複雜,給***者帶來巨大的分析困難,不僅無法靜態分析,即使是動態分析也有很大的困難。
解讀網易易盾新一代IoT安全編譯器Maze
解讀網易易盾新一代IoT安全編譯器Maze

四、兼容性&強度

4.1 兼容性

Maze的混淆兼容所有C/C++語法特徵,不僅適用客戶端的應用開發,兼容目前市面上大部分的NDK版本,同時也適用嵌入式開發,保障混淆保護前後功能上的等價轉換。這也使得客戶使用上兼容所有的系統端,如Windows、Linux和Mac等;

4.2 強度

我們知道強度與性能在一定程度上體現這樣的關係:一定強度的保證需要性能損失作爲代價。這裏Maze 盡最大程度弱化之間的對應關係,找到一個平衡點,以最小的性能損失達到最大的保護強度,同時提供靈活且細粒度的使用方式,保障達到最佳的效果。

五、總結

對於衆所周知的黑盒加殼保護,***者通常只需要抓住分析到的某一個點,就能讓整個保護“淪陷”,而Maze在性能和體積可接受範圍內,使得***者陷入一種“迷宮”(Maze)狀態,越走越亂。

從這來看,Maze是一種新的安全代碼保護思路,擁有更加靈活、強度更高、性能和體積優良、保護效果好等優點。在部署上,Maze不僅支持通過腳本輕量級進行部署,也可以對強度和需要進行混淆保護的函數進行靈活的控制,開發層面支持NDK開發和嵌入式開發,使用上則非常靈活,兼容Windows、Linux、Mac等系統。

IoT安全編譯器Maze適用於保護智能汽車、智能攝像頭、智能家居等固件代碼,也適用於保護移動應用,避免因逆向工程被破解,造成核心技術泄漏、代碼執行流程被分析等安全問題。

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