蒲江 陳海燕 田楠
摘要:可重構(gòu)計(jì)算是為解決高性能、高效率計(jì)算問(wèn)題而提出來(lái)的,通過(guò)利用可編程邏輯器件的靈活性,使設(shè)備在運(yùn)行時(shí)根據(jù)不同的計(jì)算任務(wù)實(shí)現(xiàn)不同的功能。利用可重構(gòu)系統(tǒng)支持運(yùn)行時(shí)可重配置的特性可以構(gòu)建多樣化的平臺(tái),從而解決系統(tǒng)的安全性問(wèn)題。因此,基于可重構(gòu)計(jì)算的平臺(tái)動(dòng)態(tài)化技術(shù)的出發(fā)點(diǎn)與可重構(gòu)計(jì)算是不同的,其目的不是實(shí)現(xiàn)高效能計(jì)算問(wèn)題,而是借鑒可重構(gòu)系統(tǒng)的設(shè)計(jì)方法,著眼提高系統(tǒng)的安全性。
關(guān)鍵詞:可重構(gòu)計(jì)算;平臺(tái)動(dòng)態(tài)化;安全性
中圖分類號(hào):TP309? ? ? ? 文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1009-3044(2022)30-0075-02
開(kāi)放科學(xué)(資源服務(wù))標(biāo)識(shí)碼(OSID):
1 引言
平臺(tái)通常指為上層應(yīng)用軟件提供運(yùn)行環(huán)境的基礎(chǔ)軟硬件資源,一般包含CPU、內(nèi)存、硬盤、操作系統(tǒng)、數(shù)據(jù)庫(kù)等。目前現(xiàn)有應(yīng)用系統(tǒng)為了簡(jiǎn)化設(shè)計(jì)、降低維護(hù)成本,大多采用單一架構(gòu)設(shè)計(jì),這就導(dǎo)致攻擊者可以長(zhǎng)時(shí)間嗅探系統(tǒng)漏洞從而發(fā)起攻擊。盡管安全工作者做出了許多努力,但任何看似足夠安全的系統(tǒng)都會(huì)有一定的漏洞,因此,隨著攻擊技術(shù)的不斷發(fā)展,完全杜絕新的安全漏洞是不可能的。一旦系統(tǒng)漏洞被攻擊者發(fā)現(xiàn)并成功利用,用戶將面臨身份冒用、數(shù)據(jù)竊取、服務(wù)拒絕等網(wǎng)絡(luò)威脅,因而給用戶造成政治、經(jīng)濟(jì)或軍事上的重大損失。若能構(gòu)建動(dòng)態(tài)變化的系統(tǒng)運(yùn)行平臺(tái),使得內(nèi)外部攻擊者觀察到的系統(tǒng)運(yùn)行環(huán)境非常不確定,從而無(wú)法或很難構(gòu)建起基于漏洞或后門的攻擊鏈,則將大大提高系統(tǒng)的安全防御能力。
平臺(tái)動(dòng)態(tài)化是解決傳統(tǒng)系統(tǒng)設(shè)計(jì)采用單一架構(gòu)使得攻擊者可以長(zhǎng)時(shí)間嗅探系統(tǒng)漏洞這一缺陷的一種有效方法。它采用在有限時(shí)間內(nèi)構(gòu)建多種差異化的運(yùn)行平臺(tái),并利用這種差異化使系統(tǒng)呈現(xiàn)出動(dòng)態(tài)性、不確定性和隨機(jī)性,從而減少具體應(yīng)用在一種特定平臺(tái)上運(yùn)行的時(shí)間窗口,使攻擊者難以適應(yīng)平臺(tái)的動(dòng)態(tài)變化,從而增大嗅探系統(tǒng)漏洞的難度以降低系統(tǒng)被攻擊風(fēng)險(xiǎn)。
平臺(tái)動(dòng)態(tài)化技術(shù)顛覆了采用防火墻、入侵檢測(cè)、防病毒等傳統(tǒng)防護(hù)技術(shù)手段,它不是靠靜態(tài)的封、堵、查、殺方法,而是通過(guò)構(gòu)建多種差異化的運(yùn)行平臺(tái),并動(dòng)態(tài)調(diào)整用戶應(yīng)用系統(tǒng)的運(yùn)行環(huán)境來(lái)增大攻擊系統(tǒng)的難度。一方面,平臺(tái)動(dòng)態(tài)化技術(shù)的防護(hù)效能不是靠杜絕漏洞的出現(xiàn),而是通過(guò)增強(qiáng)平臺(tái)的隨機(jī)變化來(lái)實(shí)現(xiàn)的;另一方面,它也不排斥傳統(tǒng)的防護(hù)方法,在傳統(tǒng)的防護(hù)手段上采用平臺(tái)動(dòng)態(tài)化技術(shù)能夠得到疊加防護(hù)的效果[1]。
2 可重構(gòu)計(jì)算系統(tǒng)簡(jiǎn)述
可重構(gòu)計(jì)算是近些年出現(xiàn)的一種新型計(jì)算模式,該模式能夠針對(duì)指定應(yīng)用,通過(guò)重新配置邏輯編程器件以滿足變化的應(yīng)用需求。尤其是動(dòng)態(tài)可重構(gòu)技術(shù),它允許在應(yīng)用運(yùn)行過(guò)程中對(duì)邏輯器件進(jìn)行重新配置,而不會(huì)引起任務(wù)的中斷??芍貥?gòu)系統(tǒng)本身具有一定程度的防御惡意攻擊者對(duì)系統(tǒng)進(jìn)行偵察和窺探的能力,這是因?yàn)閷?duì)于不同的計(jì)算任務(wù),系統(tǒng)需要加載不同的配置數(shù)據(jù),從而能夠呈現(xiàn)出平臺(tái)動(dòng)態(tài)性。但這種動(dòng)態(tài)性與計(jì)算任務(wù)和平臺(tái)狀態(tài)相關(guān)聯(lián),缺乏隨機(jī)性。
借助可重構(gòu)技術(shù),尤其動(dòng)態(tài)可重構(gòu)技術(shù),可以針對(duì)不同任務(wù)或同一任務(wù),構(gòu)建隨機(jī)的、多樣的、動(dòng)態(tài)變化的運(yùn)行平臺(tái),并以防御者可控的方式進(jìn)行時(shí)間維度和空間維度的動(dòng)態(tài)變化。時(shí)間維度動(dòng)態(tài)變換指可重構(gòu)系統(tǒng)的邏輯功能能夠根據(jù)需要?jiǎng)討B(tài)改變,通過(guò)在不同時(shí)刻采用不同的配置數(shù)據(jù)完成系統(tǒng)的數(shù)據(jù)處理??臻g維度變換指每種配置數(shù)據(jù)調(diào)用的可編程邏輯資源不同,具體表現(xiàn)為邏輯電路的不同組織結(jié)構(gòu)。時(shí)間和空間的二維動(dòng)態(tài)變換使得攻擊者難以對(duì)應(yīng)用系統(tǒng)進(jìn)行長(zhǎng)時(shí)間的嗅探,從而將攻擊行為消滅在攻擊鏈初始階段[2]。
2.1 基本概念
可重構(gòu)計(jì)算最早由美國(guó)加利福尼亞大學(xué)的Gerald Estri等提出。隨著可編程器件的發(fā)展,特別是FPGA的出現(xiàn),可重構(gòu)計(jì)算逐漸成為計(jì)算領(lǐng)域的研究熱點(diǎn)。
可重構(gòu)系統(tǒng)分為靜態(tài)可重構(gòu)和動(dòng)態(tài)可重構(gòu)兩種。采用靜態(tài)可重構(gòu)時(shí),整個(gè)可編程器件針對(duì)用戶指定的某一應(yīng)用生成一個(gè)配置文件,在應(yīng)用運(yùn)行前,將這個(gè)配置文件下載到可編程器件中,用戶應(yīng)用不變則系統(tǒng)的可編程器件配置保持不變;而用戶應(yīng)用變化則重新配置可編程器件,再運(yùn)行新的應(yīng)用。動(dòng)態(tài)可重構(gòu)指應(yīng)用系統(tǒng)運(yùn)行過(guò)程中就能夠針對(duì)用戶特定需求,直接對(duì)可編程器件實(shí)時(shí)進(jìn)行重新配置來(lái)實(shí)現(xiàn)新的應(yīng)用功能,同時(shí)不中斷應(yīng)用系統(tǒng)的正常運(yùn)行[3]。
動(dòng)態(tài)可重構(gòu)系統(tǒng)又可分為動(dòng)態(tài)全局可重構(gòu)系統(tǒng)和動(dòng)態(tài)部分可重構(gòu)系統(tǒng)兩種。動(dòng)態(tài)全局可重構(gòu)是指當(dāng)系統(tǒng)應(yīng)用變換時(shí),可編程器件的整體邏輯需要重新配置。整個(gè)重構(gòu)過(guò)程,配置數(shù)據(jù)量大,配置時(shí)間較長(zhǎng)。動(dòng)態(tài)部分可重構(gòu)則是只對(duì)可編程器件的部分資源重新配置,其余部分正常運(yùn)行。動(dòng)態(tài)部分可重構(gòu)不僅能夠時(shí)分復(fù)用可編程器件的邏輯資源,提高了資源利用率,而且系統(tǒng)的計(jì)算和配置能夠并發(fā)執(zhí)行,從而提高了系統(tǒng)運(yùn)行效率。
由可重構(gòu)計(jì)算的概念可以看出,通過(guò)事先生成支撐應(yīng)用的多個(gè)配置文件,在系統(tǒng)運(yùn)行過(guò)程中,隨機(jī)變換加載在系統(tǒng)中,能夠使平臺(tái)呈現(xiàn)隨機(jī)變換的邏輯架構(gòu),從而使攻擊者難以對(duì)系統(tǒng)進(jìn)行偵察和攻擊。
2.2 系統(tǒng)結(jié)構(gòu)
一般來(lái)說(shuō),可重構(gòu)系統(tǒng)的固定計(jì)算部件是CPU,可變部件是FPGA。按CPU和FPGA間的耦合關(guān)系可將可重構(gòu)系統(tǒng)分為以下三類。
(1)FPGA作為獨(dú)立外設(shè)
FPGA和CPU通過(guò)I/O總線通信,這種耦合方式最松散。FPGA是獨(dú)立運(yùn)行的設(shè)備,其正常運(yùn)行不受主CPU的控制。由于二者之間的通信速率較低,通常適用于兩者通信較少的情況。
(2)FPGA作為協(xié)處理器
這種耦合方式下,CPU和FPGA通信速度快得多。CPU可以將FPGA配置成相應(yīng)功能的協(xié)處理器,并將待處理數(shù)據(jù)提供給其處理,F(xiàn)PGA獨(dú)立完成計(jì)算任務(wù),將結(jié)果返回CPU。在FPGA執(zhí)行計(jì)算任務(wù)時(shí),主CPU能夠并發(fā)執(zhí)行其他任務(wù)。
(3)FPGA內(nèi)嵌CPU