◎上海戎磐網(wǎng)絡(luò)科技有限公司CTO 章麗娟
11月16日,在第十九期錢學(xué)森論壇暨2019長沙空間信息產(chǎn)業(yè)國際博覽會空間信息安全分論壇上,上海戎磐網(wǎng)絡(luò)科技有限公司CTO章麗娟作了題為《軟件基因——賦能空間信息安全,助力數(shù)字產(chǎn)業(yè)發(fā)展》的主題報告。章總指出,不同于傳統(tǒng)特征檢測方法僅可解決個體識別、缺乏廣度識別能力等問題,軟件基因方法通過基因分析,研究并構(gòu)建軟件基因家族及其背后的黑客家族,以此作為病毒或惡意代碼判定的依據(jù),實現(xiàn)從精度的個體識別向廣度的群體識別的邁進,真正實現(xiàn)從被動防御到主動防御的轉(zhuǎn)化。
當前,嚴峻的信息安全形勢已經(jīng)到了眾所周知的境地。幾個案例更能直觀地體現(xiàn)這種嚴峻的形勢。上個月,在上海的一場黑客大賽上,一些國內(nèi)頂尖的黑客技術(shù)研究團隊,做了一些最新的黑客技術(shù)展示,他們展示的能力包括:無線網(wǎng)絡(luò)內(nèi)部盜取密碼,投屏設(shè)備遠程控制,照明設(shè)備劫持,指紋盜取驗證及AI識別對抗。這些都是我們生活中最常見的一些應(yīng)用場景。再舉兩個例子。第一個是對抗攝像頭識別的攻擊實驗。演示者拿著一張A4紙大小的圖片,神奇的是,當演示者舉著這張通過人眼完全看不出任何含義的圖片站在攝像頭前的時候,在視頻框已經(jīng)完全顯示不出這位演示者了,這就實現(xiàn)了隱身和欺騙的作用。第二個有趣的例子是靜態(tài)的圖像識別,也是基于AI技術(shù)的。演示者拿著黃健翔的圖片來做演示,這張黃健翔的靜態(tài)圖片背后的代碼是被篡改的。圖片上,黃健翔手里拿著一個足球,站在寶馬車旁。雖然圖片背后的代碼是被改掉的,但是通過我們?nèi)搜劭雌饋磉€是原來的圖片。當這樣一張圖片輸入到我們圖片識別系統(tǒng)里的時候,卻被識別成了伊萬卡拿著女士提包走在直升機旁。以上案例給我們一個直觀的感受:我們一直都在使用一些智能化設(shè)備,可能它真的沒有我們想象的那么安全。
實際上,作為一個攻擊者,想要去攻擊一個信息系統(tǒng),只需要找到其中的一個脆弱點或突破口,就能夠成功實現(xiàn)攻擊。如果要做安全防御,將是一個規(guī)模非常龐大的系統(tǒng)工程。那么這樣一個系統(tǒng)工程,什么是里面根本性的核心問題?美國斯坦福大學(xué)法學(xué)院教授勞倫斯·萊斯格(Lawrence Lessig)給了我們一個很好的啟示。他在《代碼:塑造網(wǎng)絡(luò)空間的法律》這本書中闡釋了這樣一個核心觀點:網(wǎng)絡(luò)空間中的法律和規(guī)則是通過什么樣的代碼和軟件來創(chuàng)造和約束的。所以,軟件和代碼是塑造網(wǎng)絡(luò)空間運轉(zhuǎn)規(guī)則的核心要素。當前,網(wǎng)絡(luò)空間已成為除陸??仗熘獾牡谖寰S空間,錢學(xué)森先生多年前曾經(jīng)將“Cybernetic”譯為“控制論”,其實,“Cyberspace”也有控制的意思,它是指通過網(wǎng)絡(luò)或者軟件代碼來控制操縱空間?,F(xiàn)在越來越多的物理空間,包括人的大腦和人的思維,從各種物理節(jié)點中所產(chǎn)生的數(shù)據(jù)都在網(wǎng)絡(luò)化、軟件化,勢必會帶來如何監(jiān)管、管理、認知軟件和代碼的安全性的問題。
攻擊者使用軟件和代碼進行網(wǎng)絡(luò)攻擊,防御者也在對軟件和代碼進行防御,本質(zhì)上來看,網(wǎng)絡(luò)空間的對抗實際上就是代碼和代碼、軟件和軟件之間的博弈和較量。從一個比較通用的攻擊鏈來看,不管是目標偵查、武器生產(chǎn)、突破防守、安插植入、指揮控制以及最后的目標實現(xiàn),實際上每一個攻擊鏈路背后操縱的都是人,但是真正發(fā)揮作用的都必須是工具,必須是軟件和代碼。
現(xiàn)在的問題在于:已經(jīng)有很多種傳統(tǒng)的防御設(shè)備和防御手段了,為什么還是不能完全解決網(wǎng)絡(luò)安全問題?網(wǎng)絡(luò)安全防御的瓶頸和問題在哪里?從被動防御向主動防御轉(zhuǎn)變,有很多安全策略,但有一個問題是需要去解決的,即:傳統(tǒng)防護設(shè)備對80%的未知惡意代碼是難以及時有效發(fā)現(xiàn)和處理的。黑客不斷編寫新代碼,稱之為代碼的變種。你不是查殺了我的代碼了嗎?我可以把我的代碼簡單改造,來繞過你的查殺,那就成了新的變種。實際上改造代碼需要花費的代價是很小的,但卻可以達到攻擊的目的。改造后的代碼,對傳統(tǒng)防護設(shè)備而言是未知的,因此也無法檢測、發(fā)現(xiàn)和處理。這該怎么辦?我覺得最重要的就是如何去認知網(wǎng)絡(luò)空間里面最重要的軟件,應(yīng)該從對軟件的認知上去做一些工作。
怎么認識軟件呢?這是一個最重要的問題。簡單來說,軟件有多大,有什么功能。再復(fù)雜一點,軟件是怎么編譯的,它用什么語言編寫的,這都是來衡量它的不同維度。也有一些國外的學(xué)者把軟件當作一個藝術(shù)品,這是從編程的設(shè)計角度上來考慮的。直到我們看到這樣的觀點:軟件是個有機體,覺得有一些靈感了。即:軟件跟生物一樣,它的生命力是來自于自身迭代發(fā)展的。如果軟件不再迭代發(fā)展了,它可能就失去了生命力和存在的價值。這對惡意代碼、惡意軟件和正常軟件都適用,它們都在不停地更新、打補丁,不停地去提升自身的能力。其次,在軟件開發(fā)過程中,普遍存在復(fù)用、調(diào)用、借鑒、引用其它代碼及插件的情況。因為現(xiàn)在軟件開發(fā)的規(guī)模越來越大了,開發(fā)的智能程度也越來越高了,所以開發(fā)者會用各種方式來提高開發(fā)效率,減少開發(fā)的技術(shù)難度。上述軟件開發(fā)模式?jīng)Q定了軟件帶有遺傳性和變異性,這種特點是我們用基因方式去了解軟件、認知軟件的基礎(chǔ)。
其實,在軟件仿生學(xué)方面已經(jīng)有很多人在做了,尤其是美國軍方。2007年3月,維基解密曝光大量美國CIA網(wǎng)絡(luò)武器庫,其中的Umbrage項目通過收集大量公開的黑客工具、攻擊技術(shù)、泄露數(shù)據(jù)等信息,通過模仿、混淆等方法生成新工具,發(fā)起迷惑對手、嫁禍于人、隱藏自己的網(wǎng)絡(luò)攻擊,有一定“基因混淆”的思想。2010年,美國DARPA(國防高級研究計劃局)發(fā)布了一項研究計劃,面向社會召集能夠承擔軟件DNA方向的信息安全領(lǐng)域研究的科研機構(gòu)和企業(yè)。這些研究項目的研究成果我們不得而知,但是其研究思路和方式已經(jīng)開始向軟件基因方向探索了,我國應(yīng)在這個方向上同步開展研究。此外,國外一些研究人員近年來提出針對軟件的胎記(Birth Mark)識別,主要基于擁有源碼的軟件檢測,用于對軟件的知識產(chǎn)權(quán)檢測,而非信息安全。也給了我們一些可借鑒的思想。
軟件基因既然是仿生學(xué)的一種,就需要看看人類是如何了解和認知生物的。實際上,生物的認知方式有很多種,解剖學(xué)解決了從結(jié)構(gòu)上的認知,分子生物學(xué)從微觀上實現(xiàn)了認知,而“基因”則實現(xiàn)了對生命的基本構(gòu)造和性能的認知。通過“基因”來了解和認知生物給了我們一個很大的啟示,可以不同于傳統(tǒng)認知方式,通過特征的提取和識別來實現(xiàn)對生物個體的了解和認知?;虺霈F(xiàn)以后解決的是種群、群體問題,它解決的是什么東西是一代一代遺傳的。
認識生物如此,認識軟件也可以借鑒“基因”的視角。這里面有兩個基本假設(shè)。一是同源未必相似,相似未必同源。這是什么意思呢?同源未必相似,即:一個人或者同一個團隊,要去開發(fā)一款軟件,每個人都有自己的歷史代碼和編碼習(xí)慣,因此,同樣的功能由不同的人編寫出來,從基因角度看是完全不同的。此外,同一個團隊用同一種編碼習(xí)慣編出來的代碼,由于功能不同,代碼擁有不同的特征,從特征角度來看代碼是不一樣的,但是實際上它們來自于同一個團隊。相似未必同源,就是說雖然是同樣的特征和功能,但由于不是同一個團隊開發(fā)的,因此從基因角度來看,實際上它們是不一樣的。這一假設(shè)是從基因?qū)W角度上研究軟件的基礎(chǔ)。第二個基本假設(shè)是:兼具“遺傳性”與“變異性”。即:同一個團隊或同一個人用同一種編碼習(xí)慣,寫出來的代碼會不斷地改進和變異,改進和變異之后還會遺傳一些非常根本性的東西,這是進行種群分析的核心。
為什么要提軟件基因和特征檢測不同呢?因為有很多人會問:把傳統(tǒng)的檢測設(shè)備定義成特征檢測,新型的檢測設(shè)備定義成基因檢測,它們到底有什么不同呢?還是軟件基因只是一個特殊的特征?對此,我們做了自己的提煉和總結(jié):特征檢測解決的是個體識別的問題,而軟件基因則解決的是群體識別的問題。如:運用特征檢測方法,一個病毒過來,由安全分析人員去提取它的一些代碼特征,一般都是靜態(tài)數(shù)據(jù),這樣就可以高效地查殺它,但查殺的只是一個個體,提交了一個就是一個,所以它是個體識別的問題。個體識別局限于真的要知道它是誰,然后才能提取它的特征,它再來的時候就能認識它,跟公安機關(guān)錄指紋、錄視頻、采血是一樣的道理,它的廣度識別能力實際上是沒有的。這就導(dǎo)致它有一個致命缺陷,即:首次來攻擊的病毒或惡意代碼是很難及時發(fā)現(xiàn)的。而運用軟件基因方法,即使是首次來攻擊的病毒或惡意代碼,通過基因分析便可知道是跟某個組織有關(guān)聯(lián),這就可以成為病毒或惡意代碼判定的依據(jù),實現(xiàn)從精度的個體識別向廣度的群體識別去的邁進,真正實現(xiàn)從被動防御到主動防御的轉(zhuǎn)化。軟件基因和特征檢測并非要比誰優(yōu)誰劣,誰要替代誰,它們都有自己的優(yōu)勢,所以未來二者應(yīng)該是并行發(fā)展的,它們可以在同一個監(jiān)測系統(tǒng)里發(fā)揮更好的作用。
軟件基因到底是什么?它并不是憑空想象出來的,它原本就是二進制里存在的東西。我們把軟件基因定義為:攜帶軟件遺傳信息的代碼片段,它用OPCODE表示,是遺傳信息的最小單位,是控制軟件功能的基本遺傳單位。軟件基因有6個基本特點:變異性、穩(wěn)定性、原子性、表意性、中立性、統(tǒng)一性。實際上,一個軟件可以提取出多個不同的基因片斷,它們在邏輯上互相依賴。但并不是所有二進制片斷都是基因,需要去分析這樣的片斷是否具備遺傳性和功能性表達。
在軟件基因家族研究上,我們長期跟蹤了惡意的代碼及其背后的黑客組織。目前,我們已經(jīng)構(gòu)建了一百多個黑客家族。這可以很好地幫助我們識別APT和有組織的、有國家背景的網(wǎng)絡(luò)犯罪。在我們的客戶中,有很多醫(yī)療、軍隊等行業(yè)的,他們號稱防護措施已經(jīng)做得很好了,然后還在物理隔離的網(wǎng)絡(luò)被勒索病毒入侵,這都是我們要去關(guān)注的地方。這使我們覺得軟件基因技術(shù)可以很好地為國家網(wǎng)絡(luò)空間戰(zhàn)略安全去提供服務(wù)的優(yōu)勢。因為它是基本檢測能力的提升,它很基礎(chǔ),所以可以結(jié)合現(xiàn)有的各種客戶、各行業(yè)的信息安全解決方案,包括大數(shù)據(jù)方案、云端解決方案等等。軟件基因技術(shù)可以跟大家的產(chǎn)品和解決方案進行很好的融合和賦能,能夠打造一個更加強有力的安全方案。
軟件基因本身跟傳統(tǒng)的特征檢測不一樣。因為特征檢測庫是來一個惡意樣本,就要提取一下它的特征,然后導(dǎo)入到庫里面,以后再來一個樣本時,讓它在特征庫里匹配一遍,才能識別出來它是誰。問題就是,未來越發(fā)展,特征庫就會越龐大,龐大到一定程度,終端設(shè)備都很難儲存,終端或者邊緣計算的性能都很難支撐的情況下該怎么辦?可以用云計算、云查殺。但是,如果有些環(huán)境是不允許遠程連接云的,該怎么辦?這就導(dǎo)致了隔離的物理網(wǎng)絡(luò)里面病毒很難及時發(fā)現(xiàn),其實這也是一個痛點。因此,軟件基因技術(shù)的應(yīng)用可以很好地避免這個問題,因為它匹配的對象不是特征規(guī)則,它匹配的是家族。我們經(jīng)過幾年的研究,也不過是建立了一百多個家族的模型,這是我們自己學(xué)習(xí)訓(xùn)練之后得到的,所以它不會無限制地、規(guī)?;卦鲩L,在物聯(lián)網(wǎng)、邊緣計算等新興應(yīng)用領(lǐng)域可以提供很好的服務(wù)。
軟件基因是一個比較新的技術(shù)和方向,還有很多問題,需要大家共同去探討和研究,希望大家可以共同把這個技術(shù)更好地應(yīng)用在信息安全的服務(wù)和保障中。