軟體基因(Software Gene)是軟體體上具有功能或承載信息的二進制片段,其概念的靈感來源於生物基因,並借鑑生物信息學中關於基因分析的研究思路分析和度量軟體,解決現今軟體工程領域的分析難題。
與傳統的特徵不同,軟體基因實現了物質性與信息性的統一,具有原子性、表意性、穩定性、進化性等特性,從基因同源、遺傳變異、衍生進化的角度解釋軟體升級、代碼克隆、惡意代碼變種等問題。
目前,一種可行的方法是將軟體體上的一段一致執行代碼定義為一個軟體基因。一致執行代碼是指在任何用戶輸入條件下,其中包含的每條指令要么全部被執行,要么全部不被執行。這與事務(Transaction)的概念十分類似,體現了軟體基因的原子性。
基本介紹
- 中文名:軟體基因
- 外文名:Software Gene
- 提出組織:MalwareBenchmark
- 載體:二進制代碼片段
一、起源,二、定義,三、表現形式,四、特性,4.1 原子性,4.2 表意性,4.3 穩定性,4.4 進化性,五、套用探索,5.1 重大基礎設施,5.2 套用領域,六、學術活動,
一、起源
猶如生物進化,軟體在系統環境不斷變化和安全防護手段持續升級的對抗中,自身也逐漸進化,而且這種進化衍生的速度和隱蔽性遠遠高於自然生物進化的過程,這種進化和衍生的效率和危害,使得傳統的軟體分析方法失效,人們更多從大數據視角、關聯分析中尋找線索和規律。由此,在信息領域內引入基因研究的方法出現了。
生物學中的基因是一段連續的DNA序列,由鹼基為A、T、C、G的脫氧核糖核苷酸排列組成,遺傳信息則存儲在A、T、C、G的特定排列之中。而信息學中的軟體基因是攜帶信息的連續二進制片段,其決定著樣本的功能和行為特性,同時又是物理可檢測的二進制片段,這與決定生物性狀的生物基因具有DNA序列的物理可檢測形式,是完全對應的,這也是軟體基因概念以及分析方法提出的靈感來源,如右圖所示。軟體基因經過CPU中指令集翻譯,形成彙編碼,並由多段軟體基因共同構成了一個複雜的軟體功能。
二、定義
軟體基因是軟體體上具有功能或承載信息的二進制片段,是軟體功能實現的原子單位,支撐著軟體的基本構造,存儲著軟體生命周期的全部信息,是軟體編制者的語義實現、編譯器、基礎庫和系統環境互相依賴、影響、制約的結果。
一個軟體基因的長度是比較短的,代表的功能一般較為簡單。一個程式的某個複雜功能需要由多個軟體基因組合起來共同完成,這種組合的方式是依據控制流來決定的,我們將其稱為基因網路(Gene Network),用以描述不同基因之間的關聯關係。
下表從含義、特性、優勢、意義等四個方面詳細對比了傳統的特徵檢測技術與軟體基因分析技術的差異所在。
傳統特徵 | 軟體基因 | |
定義 | 可以標識目標軟體的二進制片段 | 軟體體上具有功能或承載信息的二進制片段 |
特性 | 唯一標識性 | 原子性、表意性、穩定性、進化性 |
優勢 | 簡單且識別過程快 | 從微觀視角認知以實現化繁為簡 |
意義 | 實現對目標軟體的一一映射 | 揭示遺傳變異和衍生進化規律 |
傳統的特徵通常是指可以標識目標軟體的二進制片段,其特性是唯一標識性;而軟體基因關注的重點不在於唯一性,而是所提取的二進制片段是否具有功能語義或承載軟體的關鍵信息,這些片段具備原子性、表意性、穩定性、進化性等特性。相對而言,特徵檢測的思想較為簡單,算法匹配效率高,但其內容並不一定具備關鍵語義信息,且易被繞過,而基因則是從微觀視角認知軟體,實現化繁為簡。
軟體基因的提出最重要意義就在於:與傳統的特徵檢測技術不同,軟體基因檢測方法不僅可以識別出目標樣本,還能分析與目標樣本存在相似性或具備同源性的其他潛在樣本,從而實現關聯挖掘和衍生進化規律的探索。
三、表現形式
在軟體基因視角下,一個軟體經過基因提取後,可以採用多種可視化方式進行表現,例如:
1、物理鏈圖:它是根據軟體內各基因代碼的存儲地址偏移繪製而成,如下圖左側所示;
2、邏輯結構圖:它是根據軟體內基因間的調度關係繪製而成,如下圖右側所示。
四、特性
4.1 原子性
軟體基因是一段最小執行的二進制片段,是軟體功能實現的原子單位,與生物基因類似,該段基因是不可分割的,即要么全部被執行,要么全部不被執行。從程式運行的角度,一條軟體基因作為一個整體,具有原子性。
4.2 表意性
軟體基因是軟體體上一段具有功能或承載信息的二進制片段,並非任意的連續二進制片段都可以被稱為軟體基因,這體現了物質性和信息性的統一,具有表意性。
4.3 穩定性
在微觀的軟體基因視角下,軟體被切分為眾多基因的集合,經過統計分析發現,同一軟體的不同版本之間存在較多相同或高度相似的基因,這說明軟體基因具有穩定性。
4.4 進化性
隨著軟體的不斷發展升級,新版本軟體的基因在功能上變得更加豐富,導致其與舊版本軟體的基因相似度可能有所降低,我們將這種特性稱為軟體基因的進化性。
五、套用探索
5.1 重大基礎設施
- 全球軟體基因庫
- 軟體基因圖譜
- 惡意代碼基因庫
5.2 套用領域
- 惡意代碼分析
- 態勢感知
- 威脅情報
- 供應鏈安全檢測
- 漏洞挖掘
- 智慧財產權保護等等
六、學術活動
近年來,MalwareBenchmark團隊組織了多場以“軟體基因”為主題的活動,例如,組織了多次軟體基因的學術研討活動,軟體基因的報告論壇交流,軟體基因的產業實踐活動等,發表了多篇軟體基因的學術論文,獲得了學術界和產業界的積極回響,作為一種全新的分析方法,軟體基因將繼續致力於揭示軟體在不斷發展升級中的演化規律,構建不同軟體進化過程的譜系圖,更加全面、微觀、精準地剖析和認知軟體。