蒲江 陳海燕 田楠


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