劉 鏑 徐聞含 王文東 李大偉 關振宇 劉建偉
(北京航空航天大學網絡空間安全學院 北京 100191)
網絡空間測繪是指對網絡空間中的各種資源進行探測、獲取資源的各種屬性、分析資源之間的關系,并通過邏輯拓撲或網絡地圖等形式將資源屬性和分析結果呈現出來的過程。其目的在于獲取網絡空間資源屬性的整體態勢,掌握資源之間的交互關系和發展趨勢,以及感知網絡空間的動態變化。網絡空間測繪的對象為網絡空間中的各種物理資源和虛擬資源,而探測的范圍可能為整個互聯網、某個局域網或一個特定的網絡范圍。
之前的研究[1–3]總結了網絡空間資源測繪的相關概念和技術,但未給出具體的測繪實例。傳統的資源測繪技術通過發送請求數據包來獲取目標資源的IP地址、端口號等信息,使用的工具包括Nmap[4], Zmap[5], Masscan[6], Shodan[7]等。但這些測繪工具只集中于網絡層測繪,無法獲得物理設備獨有的物理特性。一旦目標設備更改其IP地址等虛擬屬性,這些工具會視其為新設備,導致資源丟失或重復測繪,并且不能對目標設備進行持續追蹤。本文提出的測繪框架專注于物理層,通過真實局域網環境下的物理資源測繪,提取資源的物理指紋、構建資源畫像、獲取資源間行為關系,并準確標識和追蹤目標資源。
該框架為暗網測繪帶來新的方法,因為某些配置了多個網卡的設備常同時接入互聯網和暗網,但它們在不同網絡中表現出來的身份及屬性不同,難以通過傳統測繪方法標識。然而,這些設備在每次連接不同網絡時都使用相同的內存模塊,因此基于內存模塊的物理指紋不會改變。在互聯網和暗網中分別進行測繪,通過比較設備唯一的物理指紋來識別位于互聯網和暗網邊界的設備,實現暗網的準確測繪。
本框架也可用于組織內部的網絡準入管理。組織內部網絡實行白名單準入機制,只有經過認證的設備才能夠獲得網絡訪問權限。組織管理員為組織內每臺白名單設備生成設備指紋,唯一標識該設備。由于每個動態隨機存取存儲器(Dynamic Random-Access Memory, DRAM)都不可克隆,攻擊者將無法生成合法指紋以偽造白名單設備。即使攻擊者物理接觸白名單設備并將其DRAM更換至惡意設備中,也會由于不同CPU緩存模式與內存地址映射的差異而導致無法生成合法物理不可克隆函數(Physical Unclonable Function, PUF)響應,從而保障網絡準入機制的正常運行。
此外,本框架還可用于軟件授權場景,收費軟件可能會限制單個授權下的可用設備數,利用本框架唯一標識設備,有效防止使用者篡改設備序列號,生成多個相同指紋的設備,以繞過設備數限制。
(1)物理指紋獲取。主要存在兩個難點:一是由于測繪目標是未知的且無法物理接觸,需要通過一種可靠的遠程代碼執行和數據回傳的方法來完成測繪;二是需要獲取能唯一標識目標設備的物理指紋,且保證獲取的指紋是穩定和可重復的。同時,生成物理指紋的過程不應該影響目標設備的正常運行,例如導致目標設備重啟或服務異常。
(2)設備動態標識和追蹤。完成測繪后,雖然可以得到資源的畫像和拓撲關系,但網絡空間中的數據流動和資源變化隨時都在發生。因此,需要對資源進行定期測繪來更新數據并掌握網絡空間的發展態勢。IP地址、MAC地址等虛擬屬性是易于更改的,但我們希望通過物理指紋持續標識和追蹤目標設備,忽略這些變動帶來的影響。
(1)本文提出一種基于物理不可克隆函數(PUF)的測繪框架。通過設計的PUF算法提取目標設備的物理指紋,并結合設備的其他屬性構建設備畫像,并使用知識圖譜的形式實現測繪結果的可視化。
(2)本文實現了一個基于Rowhammer的DRAM PUF,可在配備第四代雙倍速率(Data Rate Fourth,DDR4)內存和運行Linux操作系統的個人電腦上運行。訪問內存模塊運行PUF實現代碼即可,無需額外添加硬件。
(3)本文在兩種指標下評估了Rowhammer PUF的性能。評估結果表明,所實現的PUF表現出接近理想值的唯一性和良好的可靠性,能夠完美地區分不同的設備。據我們所知,本文所做工作是第1個在個人電腦上實現和評估Rowhammer PUF的研究。
(4)本文在局域網環境中進行了3次測繪實驗。實驗結果表明,即使目標設備更改了MAC地址、IP地址甚至操作系統等虛擬屬性,通過物理指紋仍能對目標設備進行識別和跟蹤。
網絡空間測繪是一個探測、分析、繪制和應用的完整過程[1]。首先,通過各種探測技術獲取網絡空間物理資源和虛擬資源的數據,包括資源屬性值等相關信息。其目的是為后續的分析過程提供基礎數據。例如,使用網絡掃描軟件獲得目標設備的IP地址、MAC地址、端口號、流量包等數據。分析是從探測得到的數據中提取資源屬性,對資源進行標識,構建資源畫像的過程。其目的是形成關于網絡空間資源的知識庫,為系統提供大網測繪數據、互聯網暴露資產及其脆弱性的數據等,有助于網絡資產云監測、漏洞響應等業務的開展[2]。例如,通過數據挖掘等手段對探測得到的數據進行分析,提取出關鍵詞和主題,構建出有關網絡安全的知識庫。可視化是基于網絡空間資源的屬性和映射關系構造網絡拓撲并進行可視化的過程。其目的是動態顯示網絡空間資源的分布和狀態,幫助用戶理解網絡空間的結構和運作機制。例如,使用圖論等算法構建網絡拓撲,以便直觀地展示網絡空間中各項關鍵指標的分布情況,從而為分析和決策提供支持。
測繪的目標對象包括物理資源和虛擬資源。物理資源包括諸如路由器、交換機、基站等交換設備,以及移動電話、計算機、攝像頭等接入設備。虛擬資源包括域名系統(Domain Name System,DNS)、郵件等虛擬服務,以及視頻、文本、社交媒體賬號等虛擬內容[1,3]。網絡空間資源具有的特定屬性反映了資源的特征和資源之間的關系。資源屬性可以根據物理層、邏輯層、認知層等層次進行劃分。物理層反映了資源的物理屬性,比如設備坐標、尺寸、設備的具體信息等。邏輯層反映了資源的網絡屬性,比如IP、域名、端口號、操作系統等。認知層反映了資源的社會屬性,比如服務類型、服務對象和組織等[1]。
Rowhammer是一種DRAM內存利用技術,自2014年起研究人員對其進行了廣泛的研究和應用。表現形式為,當重復且快速訪問內存中的某一行(內存訪問行)時,其鄰接行(受害者行)中的某些比特位置可能會翻轉。這是由于重復且快速訪問某一DRAM行會加速鄰接行的電荷泄露過程[8]。為了快速訪問DRAM內存行,需要繞過CPU和內存之間的緩存機制。一般使用的方法有使用clflush,clflushopt指令刷新緩存[9],使用緩存逐出指令回收緩存[10,11],或使用未緩存的內存[12]等。要成功獲得比特翻轉,首先需要確定虛擬地址映射到物理地址再到DRAM內存地址之間的關系,然后確定合適的內存訪問模式以實現可靠的比特翻轉。
DRAM芯片如圖1所示,分為w個Bank,每個Bank由d個cell(存儲單元)組成。這樣的芯片儲存了d·w bit信息。存儲單元組織成陣列。每個存儲單元都有自己的地址:(i,j)。i表示行,j表示列。圖1中的DRAM芯片有8個Bank(所含字節的位數),每個Bank由16個cell組成,4行4列。信息可以通過引腳進行傳輸。每個引腳攜帶1 bit的信號。圖1中有兩組引腳,2個地址引腳,用于傳輸超單元的行與列的地址。8個數據引腳,可傳送8 bit的信息。DRAM芯片會與內存控制器相連,內存控制器可以與DRAM芯片進行數據的傳送,一次可傳送8 bit的信息。每個存儲單元包括一個晶體管和電容器。對于true cell,一個充滿電的電容表示1 bit數據“1”,一個完全放電的電容表示1 bit數據“0”。Anti cell 則完全相反[13]。

圖1 128 bit的DRAM芯片的高級視圖
虛擬地址和物理地址之間的映射由操作系統通過訪問pagemap接口或者分配hugepage來完成。但是物理地址到DRAM內存地址的映射關系卻不是完全公開的。AMD公司公開了地址映射函數,但英特爾公司沒有。對于英特爾CPU,需要通過逆向工程的技術來得到內存地址的映射函數[14]。
DRAMA[15]和DRAMDig[16]是兩種純軟件實現的DRAM地址映射逆向工具,這兩個工具都通過時間側信道來確定內存地址中的bank位。具體來說,DRAM中的每個bank都有一個用于訪問內存行的row buffer。通過選擇一些地址對,重復交替進行訪問,并測量平均訪問時間,如果一對地址位于同一bank中,則它們的訪問平均時間會顯著高于那些不在同一bank中的地址對,這種現象被稱為row buffer沖突。因此,可以通過這種方法找到位于同一bank中的地址集合并確定內存地址中的bank位。
內存訪問模式是指同時訪問的內存行的組合方式。不同的訪問模式導致的比特翻轉發生的概率差別很大。通過選擇合適的內存訪問模式,可以獲得更多的比特翻轉數量。目前主流的訪問模式有以下4種:
(1)One-location訪問模式。只重復訪問bank中的某一行,因此不會導致row buffer沖突的發生[17]。這種模式導致的比特翻轉的數量較少,但是在一些情況下可以繞過基于內存訪問模式分析的保護機制,并成功導致比特翻轉。
(2)Single-sided訪問模式。重復訪問bank中的某兩行,但是這兩行之間沒有特定的位置關系。
(3)Double-sided訪問模式。重復訪問bank中滿足鄰接關系的兩行,即訪問的兩行與同一受害者行相鄰接[18]。這種模式可以提高比特翻轉的概率。對于大多數缺少目標行刷新(Target Row Refresh, TRR)機制的DDR3內存來說,Single-sided和Doublesided這兩種模式都可以導致比特翻轉。但是對于具有TRR機制的DDR4內存,很難通過這兩種模式導致比特翻轉。
(4)Many-sided訪問模式。重復訪問bank中的多行,且任意兩個內存訪問行之間滿足與Doublesided訪問模式一樣的鄰接關系。Frigo等人[19]首先提出了一種Many-sided Rowhammer工具,可以自動識別訪問模式,并通過抑制DRAM中的TRR機制對DDR4 DRAM進行可靠的位翻轉。由于TRR采樣器只能跟蹤有限數量的攻擊者行,一旦攻擊者行的數量超過TRR采樣器的大小,攻擊者可能成功誘發位翻轉。
此外,之前的一些研究表明[8,20],在DRAM中發生比特翻轉的位置是比較穩定的。并且,DRAM在制造過程中引入的隨機差異導致即使相同結構的兩個DIMM也會具有不同的比特翻轉位置。因此,這種Rowhammer導致的比特翻轉效應可以被用來實現物理不可克隆函數(PUF)。
要實現動態跟蹤網絡空間中物理設備的目標,需要一種方法來識別設備,即使設備的IP地址、地理位置甚至操作系統發生變化。一種實現方法是獲取設備的物理指紋,并將其與設備的其他屬性進行綁定。本文提出了一種利用設備DRAM中實現Rowhammer PUF的算法,以獲取設備的唯一物理指紋。具體的測繪實施方案如圖2所示。

圖2 基于PUF的測繪框架
在測繪框架中,PUF的功能是為網絡空間中的物理資源分配唯一的物理指紋。通過發送構造的PUF挑戰到網絡空間中的物理設備,獲得對應的PUF響應,并將其轉化為設備的物理指紋。
傳統的PUF很難適用于本文的測繪場景。由于測繪到的網絡空間資源是未知的且無法物理接觸,因此那些基于FPGA專用電路的PUF無法滿足測繪的實際需求,例如仲裁器PUF[21]。一個合適的選擇是通過網絡空間資源自身的部件來實現PUF,比如靜態隨機存取存儲器(Static Random-Access Memory,SRAM)和DRAM,這些部件被廣泛用于互聯網設備中,特別是個人計算機,需要用到DRAM作為內存。
設備的正常運行在測繪過程中不應受到影響。具體來說,獲取設備的物理指紋的過程不應導致設備重新啟動或崩潰。因此,那些需要在設備的啟動階段利用初始化的隨機特性來獲得響應的固有PUF[22]也不符合測繪的需求。
最近,許多研究人員對DRAM內存的比特翻轉特性進行了較為全面的研究。網絡空間中的大多數物理資源都具有DRAM內存部件,因此DRAM內存可以被視為網絡空間中物理資源的共同特征。因此,本文采用Rowhammer技術在設備的DRAM內存中實現Rowhammer PUF,可以在設備運行時獲得其唯一的物理指紋,并且不會干擾設備的正常運行。
在此過程中,需將特殊設計的PUF挑戰以及Rowhammer PUF實現代碼發送到目標設備,以獲取其物理指紋。同時,可以通過構建的腳本來獲取目標設備的CPU型號、內存型號、操作系統版本、IP地址、網絡行為和其他設備屬性信息。
為獲得設備的物理指紋,必須在目標設備上運行構造好的PUF響應代碼。針對運行Linux操作系統的設備,可以利用Linux遠程代碼執行漏洞,在目標設備上運行構造好的代碼。通過關鍵詞“linux”和“remote”在CVE(Common Vulnerabilities and Exposures)網站上搜索可得到,此類漏洞版本跨度大,覆蓋范圍廣,從CVE-1999-0002到CVE-2023-29257共有1 295個。通過該方式,可將代碼遠程植入目標設備,執行代碼并獲取設備的物理指紋和網絡屬性,最終將得到的信息返回以進行后續分析。
物理資源在網絡空間的畫像可以通過圖3展示的信息來描述。在資源畫像中,除了物理指紋屬性不會改變,其他屬性都可以修改,因此其余屬性也可以被稱為虛擬屬性。物理指紋用于唯一標識物理資源,而虛擬屬性用于描述物理資源之間的拓撲關系。在這里,本文沒有按照級別來劃分屬性,而是將資源的所有屬性放在一個畫像中。網絡層中資源之間的拓撲關系可以分為IP接口層、路由器層和PoP(Presence of Point)層拓撲發現。資源拓撲可以以知識圖譜的形式進行可視化。圖3中的橢圓形節點表示資源實體,圓形節點表示資源的畫像,資源之間的關系由橢圓形節點之間的邊來表示。

圖3 資源畫像及拓撲
本節介紹了Rowhammer PUF的實現過程,并在兩個評價指標下對PUF的整體性能進行了評估。
本文基于Frigo等人[19]提出的many-sided rowhammer工具在運行Linux操作系統的個人電腦上實現了Rowhammer PUF。我們首先定義PUF的挑戰和響應,然后提供實現PUF的算法。
PUF挑戰由多個參數組成,包括PUF地址、內存訪問模式、數據模式、測量次數等。在算法實現中,每個參數都會影響PUF的響應值,通過選擇合適的挑戰參數,可以獲得更穩定的響應。需要考慮的參數包括:
(1)PUF地址。PUF地址由行基址和地址偏移量組成。行基址定義為每個bank的第1行,通過更改地址偏移量來更改PUF的起始地址。PUF地址的選取對PUF挑戰有直接的影響,因此對于不同的PUF挑戰,PUF地址不應相同。
(2)Hammering模式。本文使用Many-sided內存訪問模式,其中變量是內存訪問行的數量n,其鄰接行是受害行(即PUF行)。PUF地址和內存訪問模式共同決定了PUF的大小,對于不同的PUF挑戰,內存訪問行和PUF行不應重疊。
(3)數據模式。數據模式由寫入內存訪問行和PUF行的初始值決定。由于內存單元存在兩種不同的比特邏輯,該參數也對PUF的響應值有很大影響。通過為內存訪問行和PUF行選擇合適的初始值,可以獲得更多的比特翻轉。例如,將內存訪問行初始化為0x00,將PUF行初始化為0xFF,或分別將二者初始化為0x55和0xAA。
(4)測量次數。測量次數包括訪問的bank數量以及訪問每個內存訪問行的次數,對于每個bank,PUF地址、內存訪問模式和數據模式都應該是相同的設置。
PUF挑戰中參數的設置決定了PUF響應,本文使用發生位翻轉的cell位置集作為PUF響應。更直觀地說,PUF響應集合中的一個元素表示發生比特翻轉的位置,其格式為(bank,row,column)=(x,y,z),表示在第x個bank中的y行和z列中發生比特翻轉。
PUF查詢是指通過輸入PUF挑戰得到PUF響應的過程。Rowhammer PUF的查詢過程在算法1中進行了描述,其中變量m是對測量次數的計數,變量b是對bank數量的計數。首先根據PUF地址、內存訪問模式和數據模式初始化內存訪問行和PUF行。定義的每個bank都需要相同的初始化操作,然后在定義的各個bank中,根據內存訪問模式訪問定義的內存訪問行。之后掃描PUF行并輸出發生比特翻轉的位置,最后所有比特翻轉位置的集合就構成了PUF響應。

算法1 Rowhammer PUF查詢過程
本文對兩塊相同設計、規格和生產批次的DIMM進行了Rowhammer PUF的可靠性和唯一性測試。測試計算機的CPU型號是Intel(R) Core(TM) i7-10700 CPU @ 2.90 GHz, CPU架構是Comet lake,操作系統是Ubuntu 20.04。其中內存采用了大小為8 GB、頻率為2 932 MHz的三星DDR4 SDRAM,沒有ECC(Error Checking and Correcting)功能。
DRAM PUF和SRAM PUF之間的一個區別在于,DRAM PUF的響應反映的是內存中比特翻轉的位置。因此,經典指標中使用的漢明距離并不適合于評價DRAM PUF的特性。本文使用Jaccard指標來評價Rowhammer PUF的可靠性和唯一性[23],其中獲得的PUF響應集合用S表示。計算兩個PUF響應集合之間相似性的Jaccard指標公式為
可靠性衡量同一PUF在不同測量中對相同挑戰的響應之間的差異。本文使用指標Jintra(S1,S2)表示Rowhammer PUF的可靠性。由于存在測量噪聲,每個測量結果都不完全相同,但理想情況下,兩個集合中包含的比特翻轉位置應該相同,因此Jintra的理想值為1。
唯一性衡量不同PUF在不同測量中對相同挑戰的響應之間的差異。本文使用指標Jinter(S1,S2)表示Rowhammer PUF的唯一性。理想情況下,兩個集合中包含的比特翻轉位置不應重疊,因此Jinter的理想值為0。
在測試中,每一次PUF查詢都使用相同的PUF挑戰,其參數設置如表1所示。本文將PUF地址固定在每個bank的第1行,一共測量了5個bank。由于某些 DDR4 DRAM具有TRR機制,因此某些具有比特翻轉的行可能會在下一次測量中被刷新,從而導致沒有比特翻轉。為此,本文將內存訪問行數設置為22行,并在每次PUF查詢中進行10次測量。PUF行和內存訪問行分別初始化為0x55和0xAA,以滿足鄰接行對應的cell的值是相反的,這樣可以滿足導致比特翻轉的條件。

表1 PUF 參數設置
在給定的PUF挑戰參數下,本文對兩塊DIMM進行了20次PUF查詢,隨機選擇2次查詢結果構成集合S1和S2,并測試了所有可能的組合。兩塊DIMM之間的唯一性為0,DIMM1的平均可靠性為0.62,DIMM2的平均可靠性為0.63,評估結果如圖4所示。

圖4 Jaccard指標下的唯一性和可靠性評價
在測繪的主動探測過程中,需要使用Rowhammer PUF為網絡空間中的物理資源分配唯一的物理指紋,并對目標設備進行標識和追蹤。根據在PUF評估中的觀察結果,不同PUF查詢中包含的比特翻轉位置的數量是不一樣的。當各集合的大小相差很大時,通過原始Jaccard指標計算出的值無法準確反映PUF可靠性的實際情況。
原始的Jaccard指標并不適合在測繪場景中用于計算目標設備的相似性。因此,本文修改Jaccard指標為
其中,Sd表示從前幾個查詢中獲得的PUF響應集合的組合,例如Sd=S1∪S2∪S3。Sn表示新查詢的PUF響應集。
使用 J accard′指標獲得的評估結果如圖5所示。本文從20個PUF響應查詢中任意選擇3個查詢結果來形成數據庫Sd,然后將剩余的其他單個查詢結果作為Sn。并測試了所有可能的組合,得到了兩塊測試DIMM的可靠性以及兩塊DIMM之間的唯一性。在現有的測試數據下,兩塊DIMM之間的唯一性值為0,DIMM1的可靠性平均值為0.88,DIMM2的可靠性平均值也是0.88。結果表明唯一性和可靠性值的分布差異非常大,這意味著可以完美地區分和標識兩個不同的設備。

圖5 J accard′指標下的唯一性和可靠性評價
本文在實驗室環境中進行了3組測繪實驗,以模擬真實世界中的測繪場景。實驗結果表明,本文提出的測繪框架能夠準確識別網絡空間中的設備,并獲得目標設備的畫像。
測繪實驗架構如圖6所示。實驗網絡環境為局域網環境,網關地址設置為192.168.171.1。以筆記本電腦作為探測主機,部署Nmap, Zmap等傳統網絡掃描軟件,Hydra, MetaSploit等漏洞利用軟件,以及FTP(File Transfer Protocol)文件共享軟件等。其他4臺計算機作為待探測的目標設備。
本文進行了3組實驗,每組實驗分為以下3個步驟:
(1)獲取系統權限。通過安全外殼協議(Secure Shell Protocol, SSH)服務的漏洞獲取當前操作系統的超級管理員權限。
(2)獲取目標設備的物理指紋。使用第1步中獲得的超級管理員權限,執行構造的PUF實現代碼,以獲取目標設備的物理指紋和其他屬性,并通過FTP服務將結果回傳探測主機。此步驟需要收集目標設備盡可能多的PUF響應,以形成目標設備的物理指紋數據庫。
(3)分析和可視化。分析在第2步獲得的數據,形成目標設備的物理指紋數據庫,構建目標設備的畫像。分析目標設備之間的網絡行為并可視化網絡拓撲。
本文設置多組對照實驗,通過更改目標設備的虛擬屬性,例如IP地址和MAC地址等,對比證明本文所涉及方案可以通過探測到的物理指紋唯一準確識別目標設備。
第1組實驗使用4臺計算機作為目標設備。其中A1和A2模擬用戶使用的終端電腦,A3模擬網站服務器,A4模擬數據庫服務器,為網站提供服務。通過分析掃描的端口數據,可以得到設備之間的拓撲結構,如圖7所示。

圖7 網絡拓撲
根據探測結果中繪制的目標設備畫像如表2所示。目標設備的畫像由物理指紋、MAC地址、IP地址、端口號、網關、內存序列號、操作系統版本和CPU型號組成。對于每個目標設備,探測過程中收集足夠的PUF響應,以形成相應的物理指紋數據庫,數據庫存儲與PUF挑戰對應的比特翻轉位置的結果。
第2組實驗修改4臺設備的操作系統MAC地址、IP地址和開放的服務,然后執行新的探測,獲得的新目標設備的畫像如表3所示。
對于傳統的網絡探測方法,這4個設備將被標識為4個新設備B1, B2, B3和B4。本文的目標是識別新探測到的目標設備和先前探測到的設備之間的對應關系。換句話說,即使目標設備更換了其所有的虛擬屬性,仍然可以通過其唯一的物理指紋來識別目標設備。
將新探測到的目標設備的PUF查詢結果與先前探測到的設備的物理指紋數據庫進行匹配,根據Jaccard′指標計算的結果如表4所示。結果表明,雖然設備A1改變了其IP地址、MAC地址和操作系統版本,但仍然可以通過物理指紋識別出設備A1。設備B1是以前的設備A1,而設備B2是以前的設備A3,設備B3是以前的設備A2,設備B4仍然是以前的設備A4。

表4 實驗2與實驗1設備之間的J accard′值
在第2組實驗的基礎上,用新設備替換了第2組實驗中4個設備中的兩個,另外兩個設備保持不變。操作系統版本、MAC地址、IP地址、端口等屬性也保持不變,與表3一致。
實驗3的目標是標識出新添加的設備,新設備的所有虛擬屬性與第2組實驗中的設備相同。根據Jaccard′指標計算的結果如表5所示,可以知道C1和C3是新添加的設備,設備C2和C4是以前的設備B2和B4。

表5 實驗3與實驗1設備之間的J accard′值
Schaller等人[24]提出了第1個利用Rowhammer效應實現PUF的工作。他們在裝有DDR2內存的PandaBoard上實現了Rowhammer PUF,并測試了PUF在不同條件下的性能。這項工作是開創性的,給我們的工作帶來了很多啟發。但PandaBoard上Rowhammer PUF的實現不需要考慮地址映射問題且不存在任何針對Rowhammer的防護機制,本文在個人電腦上實現的Rowhammer PUF需要進行地址映射并需要繞過相關的軟硬件防護機制,因此難度更大。
現有的DRAM PUF都是在嵌入式設備中實現的,無法直接應用于個人電腦,或是可應用于個人電腦但不適用于測繪場景。基于衰減的DRAM PUF[25]需要禁用一段時間的內存刷新,禁用時間過久將導致系統崩潰。為了實現運行時獲取PUF響應,程序需要在設備啟動時執行,或刷新內存的關鍵區域以防止崩潰。無法滿足不影響被檢測設備正常功能的要求,不適用于本文的測繪場景。
基于延時的DRAM PUF[23]通過操縱特定的定時參數使內存處于未定義行為的特殊狀態,通過這種方式,可以在系統運行時獲得PUF響應,但在運行時修改DRAM的tRCD等定時參數。據我們所知,大多數個人電腦只能在BIOS中修改這些定時參數,這不符合測繪情景的要求。
Sutar等人[26]提出的D-PUF在基于Altera Stratix IV GX FPGA 的 Terasic TR4-230 開發板和DDR3 DRAM內存上實現,Najafi等人[23]提出的Deep PUF在Xilinx XC6SLX45 FPGA和DDR3 DRAM上實現,Talukder等人[27]提出的PreLatPUF在Xilinx Virtex-6 FPGA和DDR3 DRAM上實現。這些工作并未考慮PUF在個人電腦中的使用情景。
本文提出一個完整而詳細的測繪實例。首先,本文提出一個基于PUF的測繪框架,其中PUF的作用是生成可以唯一標識目標設備的物理指紋。其次,本文給出了在配備DDR4內存的個人計算機上實現Rowhammer PUF的詳細過程,并評估了實現PUF的性能。最后,本文在構建的局域網中進行了測繪實驗。結果表明,本文提出的方法能夠準確地識別和追蹤目標設備,即使目標設備改變了其IP地址、MAC地址,甚至操作系統。
本文基于PUF的測繪框架目前使用Rowhammer PUF來生成物理指紋。當前的Rowhammer技術無法保證在所有的DDR4內存,尤其是具有ECC功能的內存上導致比特翻轉。同時也還存在許多保護機制,如TRR機制等被用于檢測和防止比特翻轉。但與此同時,新的Rowhammer技術也在不斷開發,且互聯網上部署的大多數設備都不是最新生產的,仍有大量的舊設備受到Rowhammer的影響。因此,本文計劃在未來開發適合測繪場景的新的設備指紋生成方法,并在未來進行真實環境下的網絡空間測繪。