2023 SDC 議題回顧 | 晶片安全和無線電安全底層滲透技術

Editor發表於2023-11-22

和傳統網路安全不同,硬體安全、晶片安全、無線電安全屬於網路底層安全的重要細分領域,是網路安全的真正基石,更是國家安全的重要組成部分,“夯實網路底層安全基礎,築牢網路強國安全底座”,是底網安全重要性的另一真實寫照。


硬體駭客與硬體安全攻防人員的博弈未來會愈演愈烈,但因其底層敏感性、封閉性、不可見性等特徵,相關攻防滲透技術、思路、工具、漏洞成果很少對外公佈或透露,同理,類似深入硬體底層的攻防滲透技術、理念、方法在未來大國博弈、軍工電子技術安全、硬體安全、晶片安全、工控安全、物聯網安全、車聯網安全等方面起著重要作用,關鍵時刻甚至可起“一兩撥千斤”之效果,其“殺傷力”和“威脅力”不容忽視。


常言道,“知彼知己,百戰不殆”,本次議題將揭開“硬體駭客”神秘面紗,分享硬體安全、晶片安全偏冷門但又極度重要的滲透技術--晶片安全故障注入技術,並將其與晶片內部結構、晶片類別、業務屬性、韌體安全、CPU指令執行機制強關聯,深入“骨髓”洞察底層晶片安全的神秘世界,另外本議題還將分享無線電安全底層掃描滲透技術,透過重放攻擊、協議逆向還原、無線電跟蹤三種不同技術原理破解、干擾某滲透物件,從反面案例提醒大家:無線安全的重要性和必要性。


2023 SDC 議題回顧 | 晶片安全和無線電安全底層滲透技術


下面就讓我們來回顧看雪·第七屆安全開發者峰會(2023 SDC)上《晶片安全和無線電安全底層滲透技術》的精彩內容。



0演講嘉賓

2023 SDC 議題回顧 | 晶片安全和無線電安全底層滲透技術

2023 SDC 議題回顧 | 晶片安全和無線電安全底層滲透技術

趙亞平-

湖南底網安全創始人&底網安全實驗室負責人】

擁有通訊技術中級職稱,熱愛並高度重視電子技術基礎學科和網路底層安全,從電子技術最基礎做起,擁有硬體測試/整合/開發、通訊鏈路/協議設計、嵌入式開發、彙編設計等傳統IT開發經歷。依託傳統基礎學科的研發應用背景,無縫銜接傳統網路安全、物聯網安全、車聯網安全、工控安全等領域。擅長從網路底層視野深度洞察資訊保安本質,尤其是硬體安全、晶片安全、韌體安全、通訊安全、無線電安全等細分領域。曾在某安全機構、上市公司(2022中國民營企業50強)、國企分別擔任車聯網安全資深專家、工控物聯安全資深專家、汽車&工控資訊保安總工等重要崗位。



0演講內容


以下為速記全文:


大家好,我是來自湖南底網安全的趙亞平。


接下來我們們把網路安全的視野開始往下沉,因為不同行業的人對於網路的底層安全可能有不同的認知。比方說對於做上位機軟體開發的人員來講,最接近他們的底層可能是各類的 API或者SDK又或者是第三方元件的呼叫。


比方說對於做作業系統研發的人員而言,最接近他們的底層可能是各類驅動的呼叫。如果再往下沉,對於做驅動的開發人員來講,最接近他們的底層可能是裡面各類晶片的暫存器的配置以及相關的時序。


如果說再往下沉的話,就進入到我們今天要分享的議題,首先是關於晶片安全的底層的滲透技術——故障注入技術。這裡說明一下,因為硬體/晶片底層的滲透技術有很多種,比較典型的像側通道攻擊DPA、無線SPA、電磁/鐳射注入等。我們今天討論的重點是故障注入技術。


緊接著再往下討論的是無線電領域,就是無線電安全底層掃描滲透技術。都是從最底層的視野來看這兩個議題。首先我們瞭解一下相關的技術背景。最開始的就是安全基石,因為底層的安全它其實就是傳統網路安全或者是數字安全、硬體安全、晶片安全的真正的基石。


如果說底層安全做得不好,你上層的應用或者你的機制搭建的再完美,你的資料的保密性、完整性、抗抵賴性的演算法再先進,你的身份認證再強,一旦底層有缺失的話,你的安全依然得不到保障,依然很容易遭受來自底層的攻擊,所以說它是真正的安全基石。


然後它的技術相對的比較封閉,可能平常跟客戶溝透過程中做的更多的是關於常規的漏掃和安全檢測,但是一旦接觸到這種底層的故障注入的話,一般的客戶可能不太關心,但是像那些大的企業客戶,他們對這個安全則是非常重視。除了從自身的技術理念和它的滲透理念,包括它的滲透工具比較封閉之外,還有一個原因就是它的被測物件也比較封閉,因為我們注入的物件是晶片或硬體,一般其內部細節很難看到,廠商設定了重重阻攔。所以說它相對比較封閉。


同時它也是相對的“去”SaaS雲服務化,不像傳統的網路安全滲透。如果說有一臺電腦連到網際網路,在全球任何一個地方可能都會給對方發起攻擊,但是像底層晶片安全的這種滲透測試,它是相對的“去”雲端,可能跟雲端的交集不是特別大(但某些場景還是會有交集),本地化的特徵比較多,這也是軟體駭客和硬體駭客的主要差異。


然後其測試工具、環境也是相對不太完善,平常我們看到、用到很多的漏掃以及相應的工具可能比較普遍,但是深入到底層的這種故障注入儀,包括後面分享的無線電的掃描滲透儀,可能大家接觸的不太多。


再往後隨著網路底層安全的這種意識加強,企業高校以及國家其實現在已經開始越來越重視這塊了。跟很多客戶對接的時候,接觸最多的是可能是常規的漏掃、漏洞挖掘、安全滲透檢測評估,除此之外,其實已經有不少客戶對於這種故障注入類的安全檢測滲透,他們已經在開始發力了,發力的方向是從攻防兩個維度同時的,如果說滲透的方向為攻擊方向的話,他們可能在類似這種攻擊武器的滲透方向發力,也有可能是從抗故障注入的防禦維度發力。


最後就是硬體駭客和硬體安全攻防人員的博弈,未來必定會愈演愈烈。其實類似的這種故障注入滲透技術以及理念,不僅僅在我們們民用行業的一些作用起得非常大,在未來這種大國博弈,尤其是在軍工電子技術裡面,它其實也是非常的重要,當然也包括我們們物聯網、車聯網、工控這一塊。


接著開始討論一下晶片安全的故障注入技術。這裡拋磚引玉,借用了8個提問來貫穿我們議題分享的整個過程。


2023 SDC 議題回顧 | 晶片安全和無線電安全底層滲透技術


首先是晶片安全的故障注入定義,不同的人他可能有不同的定義,我們的定義是這樣的,就是利用特定的裝置或者工具向被測物件在合適的時間合適的位置,發出高度可調、可控、可配置的特定的故障注入訊號。


因為我們主要描述的是晶片或者是硬體,如果是針對 SQL隱碼攻擊的話,他們的被測物件可能是SQL伺服器,我們這裡的被測物件包括但不限於晶片,硬體終端或者可能是某一個電路,硬體終端的話它就非常廣了,像無人機、智慧門鎖、手機、機器人以及其他大家能想到的一些物聯網的裝置,包括什麼物聯閘道器、採集器之類的。


發出的故障訊號必須是特定的,比方說是毛刺,你這個毛刺如果發出的時間不對的話,對方可能沒有任何效果,你發出的引數比方說電壓太高或者太低的話,也可能滲透不了什麼成果,所以說是特定的故障注入型訊號,進而影響其完整性、可用性、保密性的一些滲透測試行為。


然後關於故障注入工具的話,目前行業裡邊比較多的、最常見的就是專業的硬體故障注入儀,然後像之前風靡一時的特斯拉小線圈(小黑盒),其實也是類似的一種故障注入的工具。


然後再到傳統行業EMC的一個測試,比如EFT瞬變、雷擊浪湧測試儀,從某種程度上來講的話,其實也是一種故障注入儀,只不過它跟我們今天要分享的一個維度不太一樣,就是我們今天要分享的重點是精準的故障注入而非盲注。


然後再往下就鐳射電子注入,像最近諾貝爾獎有一個阿秒鐳射,在未來關於鐳射的這種注入,對於故障注入或者是側通道攻擊的話,會如虎添翼。


然後再往下關於後面6個問題,我們會逐一討論,特點比較多,我們就重點挑藍色的字來討論一下,首先是0day的高危漏洞,因為我們被測的物件一般都是晶片或者硬體,如果說一旦測出有問題的話,基本上都是非常嚴重的,要麼沒測出,一旦測出,其問題非常嚴重。比如說某一個MCU晶片,如果說被惡意植入了某一段木馬,那麼一旦測出來的話,這個漏洞其實是非常嚴重的。


2023 SDC 議題回顧 | 晶片安全和無線電安全底層滲透技術


然後封閉性、敏感性、偏冷門,所謂的偏冷門,是說大家可能平常不太關心這一塊,或者說他即便意識到這一塊,也覺得沒必要在這一塊大做文章,但是故障注入滲透又是極度的重要,尤其是對於一些敏感基礎設施的客戶。然後它也是屬於側通道攻擊的一個子集。大家可能經常聽說過側通道攻擊,其實側通道攻擊嚴格來講它是分很多的細分賽道,只不過我們今天討論的是屬於側通道攻擊的一個子集。


另外就是韌體安全強關聯,精準的故障注入滲透。拋開盲注的概念,因為我們今天重點討論的是精準,之所以強調精準,是以CPU或者是MCU的韌體執行為基準來參考,所以說真正有殺傷力的故障注入,它一定會和被測晶片的韌體強關聯,或者說和它的指令集執行機制強關聯,然後它會嚴重依賴故障注入的工具,並且人為因素也很大。


比方說同一類被測物件用同樣的工具,不同的人測出來的結果可能不太一樣。另外它也是屬於典型的網路底層的安全領域,對基礎技術學科要求也比較高。當然其他網路安全各行各業對基礎技術學科要求也都比較高。


另外一個就是它可能會顛覆某些認知,大家可能知道ROM值一般都是隻讀的,但是在我們滲透領域裡面ROM值可能會被改寫,這個下面會進一步分析到,接下來我們再討論一下它的價值,或者說用在那些不懷好意的團隊裡面,它會給客戶造成什麼危害?


2023 SDC 議題回顧 | 晶片安全和無線電安全底層滲透技術


最開始的就是提供了一種新型的晶片安全0day的漏洞或者是後門的挖掘方式。


像我們剛才提到的,如果說某一個晶片它在某一個地址段裡面放了1k的木馬,正常的使用者他是察覺不到的,但是透過硬體故障注入的滲透措施,如果你故障注入精準到位的話,可能會把它的PC的指標值,或者把它的堆疊值改寫,又或者導致記憶體溢位,會讓韌體無意中跳轉到不明確的地方,一旦那個地方是屬於埋藏的木馬區間內的話,那麼隨著它的晶片的外圍的一些狀態改變,比方說功耗特徵或者是串列埠或者其他的一些介面狀態會發生改變——因為他的木馬執行肯定會執行一些動作,可能就會把木馬給挖掘出來。


然後第二個就是從底層另一維度可以驗證韌體安全的可靠性,比方說正常情況下if(a == 1),執行開門的一個許可權,如果說開發人員安全理念強的話,他在程式設計的時候會多加一層判斷條件,if( a == 1 && b == 2) ,那麼在這種韌體程式設計情況下,可以更有效地抗故障注入攻擊,所以說它也是從另一維度可以驗證韌體安全的可靠性。


另外它是讓傳統的暴力破解,可能不再受CPU的算力、加密演算法的複雜性所侷限。像我瞭解到的很多的高校,已經開始在做基於FPGA演算法的晶片故障注入脆弱性驗證。然後還提供了一種新的非常規的RAM敏感資料堆疊溢位、緩衝區溢位的底層滲透路徑。


比方說執行一個記憶體的複製指令,你在複製的時候那個長度如果在這個瞬間透過故障注入把它那個值給刷寫的話,那麼可能就出現記憶體溢位,後果非常嚴重。再一個就是對身份認證許可權繞過、加解密演算法繞過,這個和暴力破解其實有點類同。


最後一個是將滲透的目標從數字訊號安全向模擬訊號安全蔓延了。大家可能經常討論的都是一些網路的安全,它其實有一個共同的特徵,就是數字安全,然後針對我們今天分享的晶片故障注入,它是真真切切的從數字安全滲透領域蔓延到模擬訊號安全領域,也就是說很多的物聯裝置它會採集模擬訊號、各種模擬感測器,然而這種模擬訊號對毛刺最敏感,也是最害怕的。AD採集過程中,一旦有毛刺的話,如果無有效的演算法、濾波機制規避,很容易對它產生一些不好的影響。


這個是針對故障注入分類定義。


2023 SDC 議題回顧 | 晶片安全和無線電安全底層滲透技術


主要有4種方式,首先是按照接觸方式分類,這個應該好理解,有線和無線。如果是有線的話,需要把故障注入儀類似的各種探頭探針或者測試夾,接到被測的裝置裡邊。如果是無線的話,就類似於這種小黑盒,甚至是類似那種像太陽黑子那種電磁脈衝的武器,都是類同於這種無線的故障注入。


如果按照被測晶片的物件來分的話,它主要分為介面通訊類的晶片、邏輯閘的控制晶片和運算處理晶片。


藍色的字型是我們今天重點要討論的運算處理晶片,包括但不限於CPU、MCU、DSP、FPGA、GPU,然後就是通訊介面類晶片,包括CAN匯流排、RS485、RS232,I2C、SPI這些外圍裝置介面晶片,按照故障注入訊號的屬性來區分的話,它分為毛刺、電壓故障注入,時鐘故障注入,這個時鐘其實包含了這種毛刺掉電,所以說嚴格來講的話,這之間的劃分是有模糊的,也包括協議故障注入。


按照注入目的,它分為盲注和精準的故障注入,我們今天重點要討論的就是精準,如何實施精準?能夠發出可調可控可配置的特定的故障注入訊號固然重要,當然這僅僅是盲注的特徵,就是我隨便將故障注入訊號“打”進去,不知道會有什麼效果,這也是很多的測試場景用到的,但是知道且何時能精準發出是關鍵,這個就進入到我們精準的故障注入特徵。


這裡我用詞比較保守,要做到絕對的精準,可能世界上有些大牛的廠商能做到,但我還是不太放心,我們只是說是相對的精準。


要精準實施的話,透過硬體中斷加訊號聯動的高速觸發機制,是最適宜做到這種精準的,大家都知道觸發中斷,一旦是某種中斷訊號來的話,就讓故障注入的條件可以實施。


然後這裡面有三個段位,最厲害的段位是能達到這種指令週期級的,我也希望我們們國內有這種廠商能做到,然後一般情況下故障注入它能夠精確到函式級,就是能夠定位到你執行到某一個函式,把這個故障注入訊號打進去,如果說你能在確保函式級別的前提下又能進入到指令集——因為所有的函式它是由指令組成的,但是每一個指令它是由指令週期級來組成的,比方說某一個指令它可能分為三個機器週期。所以說這裡面有三個段位,我們的核心目的不是透過故障注入把對方的裝置或者晶片打壞、打飛、打復位,最希望的是透過對其關鍵的業務精準的滲透——類似於籃球比賽,目的不是惡意犯規,而是要確保精準的蓋帽。


我們現在正式進入到故障注入的原理,先了解一下 MCU內部的圖片。


2023 SDC 議題回顧 | 晶片安全和無線電安全底層滲透技術


之所以瞭解這個圖片,對於我們網路底層的從業者而言,有一種習慣,就是儘可能的知其然。透過內部的解剖圖片,我們故障滲透人員至少可以得到一個資訊,透過這個圖片知道大概可能是在哪個位置,對其進行故障注入效果可能會最好,所以這個圖片還是有一定的價值的。


這個是早期的ROM內部結構圖。


2023 SDC 議題回顧 | 晶片安全和無線電安全底層滲透技術


這個圖非常關鍵,下面討論基準的核心都是圍繞它,我們最終的目的——比方說要改變它的ROM值的話,其實它這邊的字線和位線最終體現出它的指令機器碼,也就是說我們最希望透過精準注入,把它的位元值刷寫改變掉,也就是後面有一個專利會提到叫做位元故障。


我們們簡單瞭解一下,這個是EEPROM。


2023 SDC 議題回顧 | 晶片安全和無線電安全底層滲透技術


同樣它也是透過在晶片裡面,透過直接或者間接方式和晶片的核心匯流排進行掛接,在一系列流水線的執行機制下,觸發晶片最終會反應到這個字線或者位線裡邊。


這個是非常經典的6管RAM單元電路,同樣也是我們希望最終注入的時候能夠改變它的位元值,兩個位元位值,甚至它的觸發值也能改變掉。


2023 SDC 議題回顧 | 晶片安全和無線電安全底層滲透技術


這裡我們先簡單瞭解一下這三種晶片的內部結構。


接下來是技術可行性分析。


2023 SDC 議題回顧 | 晶片安全和無線電安全底層滲透技術


我們為什麼故障注入能夠成功,從技術上我們來簡單分析一下,第一個就是晶片的整合度很高,在同類材質下,電晶體之間的電容,尤其是每個電晶體單元的對地的旁路電容非常低,這個就給我們故障注入,尤其是毛刺注入創造了條件。

因為毛刺正常注入的話,它的脈衝寬度隨著不同廠商的工具不同,可以到皮秒納秒級,針對這種納秒級的毛刺脈衝很容易穿透耦合到晶片內部。


第二個就是現有的 ESD防護器件,它很難防護到這種故障注入,大家可能都知道很多的裝置裡邊外圍都有保護的元器件,什麼防浪湧、 TVS管,甚至是ESD的防護器件。


大家可以看一下美國一線品牌力特的一個 ESD的基礎器件技術指標(上圖所示),它的 ESD的防護器件的響應速率,左邊這個圖它是200微秒,什麼意思呢?


舉個例子,100伏的電壓要吸收降到10伏的話,它需要200微秒。右邊這個圖可能響應速度會更快一點,如果說把100伏的電壓吸收降到30伏的話,它需要17微秒,但是我們的毛刺故障注入是皮秒、納秒級,所以這兩個ESD保衛的衛士,基本上對故障注入訊號沒什麼效果。


然後第三個就是低功耗,現在很多的晶片廠商都聚焦低功耗設計,對於我們故障注入滲透方來講的話,其實是一個利好訊息,會更加容易注進去。為什麼?因為低功耗意味著低電壓,比如說可能傳統的的晶片需要5伏供電,現在變成3.3、1.8甚至1.2V,低壓的處理器意味著它的門限電平更低,高電平80%,要是3伏供電的話可能高電平門限值也就2.4伏,門限電平越低的話,對於我們注入的毛刺要求就更低了。


第四個流水指令架構,這種 PC指標流水執行機制就更加適合這種故障注入,故障注入觸發它的PC指標、堆疊溢位值,非常適合這種注入滲透測試,包括FPGA,它雖然不是那種流水的執行架構,但也適合這種。


第五個就是抗故障注入的軟演算法和硬體保護電路的普遍缺失。下面會提到已經有專門的晶片公司專門針對這種抗故障注入的硬體保護電路申請專利。因為成本很高,所以普通的晶片它可能在抗故障注入,尤其是專業的抗故障注入沒有做相應的儲備。


最後一個就是敏感脆弱引腳外露,這個可能使用者或者廠商那邊也無法保證很多的晶片關鍵位置不會外漏,這個就是它的可行性。


然後再說一下它的挑戰。


2023 SDC 議題回顧 | 晶片安全和無線電安全底層滲透技術


如果說剛才說的可行性,是從“矛”來討論的話,現在我們來看一下晶片廠商的“盾”。第一個是專業的ESD濾波,防護電路,毛刺它最害怕的就是濾波,包括ESD。雖然說剛才討論的 ESD它可能防護不了,但是不排除甚至有一些更高大上的 ESD防護器件,靈敏度更高,能夠把你的毛刺給吸收掉。


然後就是晶片的防寫和讀保護。單純的注入,它可能也注不了,因為它有專門的防寫和讀保護的電路。


另外自鎖、原子操作機制,這個都是基於硬體的電路來執行,在某種程度上,它其實也是有效的抗故障注入。


然後是指令集的針對性的最佳化。比方說你的指令集如果設計的不好的話,某一個位元改變之後,那麼很容易變成另外一條指令集,另外那條指令集如果說對你現有的業務有影響的話,它其實也會很容易造成危害。


再往後專業的演算法,這個可能就很好理解了,透過雜湊、簽名演算法機制,像前面剛才提到了金絲雀攻擊,它有效的防禦就是在入棧和出棧之前,把它的校驗的結果入棧的時候算一下,出站的時候再算一下校對,這個其實對於故障注入也是非常有效的。


最後針對抗故障注入的ASIC硬體電路是最恐怖的。下面我們重點說一下這個。


2023 SDC 議題回顧 | 晶片安全和無線電安全底層滲透技術


這個就是三星專門申請的一個專利,我們們國內也有類似的這種專利。這個專利非常特殊,它的名字叫做包括安全邏輯的裝置和操作該裝置的方法,背景技術比較拗口我就不念了。這裡面簡單總結4點,他們把這種故障注入稱之為潛在故障,專利裡面說的是潛在故障,是特定類的故障,然後潛在故障很難被現有的人和物發現,同時潛在故障它比作無聲的故障,可以引發多個故障,導致裝置能夠發生嚴重的效能故障。


然後典型的示例就是儲存區域的位元故障,這個大家感興趣的話可以網上下載一下這個專利,非常專業,從比較訊號、觸發訊號、延時訊號,完全就是有效防護毛刺的故障注入,非常專業。


注入過程首先把專業的故障注入儀搭在被測物件的指定的位置上,這個位置有可能是被測物件的某一個IO引腳,POWER引腳、通訊介面引腳,或者是它的時鐘、配置引腳,根據具體的晶片或者硬體來看,然後同時因為我們要做到精準的觸發,就把它的觸發的訊號引過來,給專業的故障注入儀,一旦接收到指定的報文或者某一個按鍵按下,觸發中斷實施故障注入。


2023 SDC 議題回顧 | 晶片安全和無線電安全底層滲透技術


總之中斷觸發目的就是我們要做到精準的注入,希望達到預期的技術目標,就是希望能夠精準的動態改寫它的ROM值,然後能夠改寫它的指定的暫存器的內容,RAM區間值,PC指標值以及它的堆疊、出棧指標值。如果換算成業務目標的話,我們希望能夠透過這些技術目標達到我們這些業務目標,比方說晶片的漏洞木馬挖掘,許可權繞過,敏感資訊的讀取,身份認證繞過等等。


這個是我們之前針對某一臺工控裝置實際注入的訊號圖(下圖所示)。可以看到左邊這個圖是正100伏,右邊是-100伏,這個是單毛刺。


2023 SDC 議題回顧 | 晶片安全和無線電安全底層滲透技術


這個圖是共模毛刺、差模毛刺(下圖所示),因為在實際注入的時候,我們希望在兩個不同的位置分別打進去,這兩個位置可以同時打正的毛刺,也可以同時打負的毛刺,也可以一個打正一個打負,這裡面主要是根據晶片裡面的 PNP或者NPN的設計型別,分別針對性的把毛刺給打進去。


2023 SDC 議題回顧 | 晶片安全和無線電安全底層滲透技術


這個是故障注入的掉電注入(下圖所示),掉電注入的話這個時間也可以配置,比方說我對某一個晶片掉電的時長可以讓他掉電1微秒,或者是讓它掉100微秒。


2023 SDC 議題回顧 | 晶片安全和無線電安全底層滲透技術


針對精準協議觸發注入,很多的場合我們要做到精確觸發的話,要抓到它特定的報文,比方說針對某一臺裝置,我透過網路或者串列埠輸123456,它可能是密碼驗證的一個業務,即便輸入的密碼錯誤,但是裝置在收到123456的話,會執行密碼驗證的一個函式。當你在給被測物件發123456的時候,故障注入裝置也能收到,那麼這個時候透過配置指定的延時,再把故障注入訊號打進去。


所以說一個好的故障注入的裝置,它其實是具備多協議的採集功能。下面幾張圖分別是針對乙太網、RS232,UART、RS485、CAN匯流排、LIN匯流排協議觸發注入,比方說按一下車窗,ECU控制器可能會發出一個LIN匯流排報文。那麼故障注入儀在抓到報文的同時,透過不停的深度測試,延遲指定的時間(納秒級的精度),目的就是確保和被測的控制裝置執行關鍵函式同步。


2023 SDC 議題回顧 | 晶片安全和無線電安全底層滲透技術2023 SDC 議題回顧 | 晶片安全和無線電安全底層滲透技術

2023 SDC 議題回顧 | 晶片安全和無線電安全底層滲透技術


這個是針對邊緣觸發,因為很多時候可能沒有協議,比如說按一下這個按鍵,它從電路上來講的話,是高電平變成低電平,或者低電平變成高電平,所以說這也是邊緣的一個觸發機制。


2023 SDC 議題回顧 | 晶片安全和無線電安全底層滲透技術


這個就是NFC無線非接通訊了,目的也是一樣,透過抓到指定的非接NFC協議報文,然後再延遲指定的時間把相應的故障訊號給打進去。


2023 SDC 議題回顧 | 晶片安全和無線電安全底層滲透技術


接下來我們看一下 MCU取指時序分析,這個也是非常重要。正常情況下可能是高階語言到組合語言再到機器碼,那麼機器碼再往下的話,就是我們重點關注的。這個是以 MCU51核心,來作為它的取指分析的一個物件。


2023 SDC 議題回顧 | 晶片安全和無線電安全底層滲透技術


簡單看一下,有幾個重點,首先是12MHZ的振盪器,每一個單週期或者是雙週期,晶片內部有一個關鍵的觸發訊號,就是ALE訊號, ALE訊號是透過振盪器來生成的,上面標了1234時刻(如上圖所示),比方說針對單週期單位元組的機器碼。這條指令的話,注入的有效時很明顯是在1時刻,後面是空讀。


如果說對晶片或者裝置做時鐘掉電注入的話,比方說在1時刻讓它提前掉電,目的是幹啥?目的就是人為改變晶振頻率,讓ALE提前到來,因為它的ALE訊號是透過振盪器的分頻來實現的,提前把幾個脈衝掉電,就會導致ALE提前到來,ALE提前到來就會讓單位元組或者是雙位元組的週期指令機器碼提前讀。提前讀的一個後果就是指令的譯碼器、暫存器資料可能還未準備好,相應的RAM,比如IO或者是RAM值那邊還並沒有收到這個觸發訊號,所以提前讀的話會讀出錯誤的結果。


我們重點看一下這張圖(如下圖所示),它主要是兩種架構,一種哈弗,一種是馮·諾依曼的。故障注入重點關注的物件主要是有這麼幾個區域。首先是使用者的RAM區,剛才也說了故障注入我們希望能夠精準的改寫RAM值,即便不能做到精準,也希望能夠做到函式的這種較粗範圍內的改寫,能對它的業務產生影響。


2023 SDC 議題回顧 | 晶片安全和無線電安全底層滲透技術


同時對使用者CODE區,也就是FLASH區或者是RAM區,對它注入的時候讓它產生位元故障,一旦產生故障的話,那麼它的指令集會改變,比如說本來是資料傳輸類的,有可能會變成跳轉類的。然後這裡面假設會有一個木馬潛伏區,如果這個時候我們把 PC指標值不小心隨機的改寫了,假設它跳到那個函式的首地址,那麼他被測物件會發生一些不同的現象。最右邊就是它的 c程式碼或者是彙編程式碼機器碼。


舉一個最簡單的例子,if(password == 0x36),然後執行這兩條語句,彙編程式碼是這樣,機器碼是這樣。比方說最右邊的機器碼7898,它這是一條單週期雙位元組的指令,當裝置在執行7898機器碼的時候,晶片內部其實就是在針對這個地址的位訊號或者字訊號對它進行相應的操作,在這個瞬間如果我們把它的位元值改掉的話,正常情況下可能是把98h賦給r0,有可能變成ff賦給r0了,它下面判斷的一系列都是錯誤的,所以這就是故障注入可能會造成的一些後果。


2023 SDC 議題回顧 | 晶片安全和無線電安全底層滲透技術


這裡是注意事項。最開始是白盒的滲透理念,就跟傳統的網路滲透一樣,首先是嗅探,只不過我們一開始可能從晶片的型號、data sheet、它的業務具體是幹什麼用的嗅探了解,然後對其做相應的資料備份。因為很有可能你會把晶片給打壞,很多的晶片它可能有自鎖的機制,所以在滲透之前把相應的資料備份好。


另外就是側通道旁路的零干擾,因為是有線從側邊給搭進去的,那麼在搭的時候儘可能不影響現有裝置的正常工作。


風險告知——在我們跟客戶對接的時候、做深度測試的時候,就把有些風險儘可能的給客戶反饋好。


毛刺注入的最小化原則,一開始別直接上幾百伏的毛刺,啪一下子可能把裝置給打壞了。


最後就是小心謹慎沉著冷靜。


這個是針對某個demo板做的一個演示(如下圖所示)。


2023 SDC 議題回顧 | 晶片安全和無線電安全底層滲透技術


這個演示主要就是基於RS232的一個觸發機制,對某demo板精準實施的一個故障注入。大概功能是這樣,正常情況下,這個demo版它是一個串列埠回顯的功能,就是我用這臺PC機的除錯助手給串列埠發123456,那麼它就會給 PC機返回123456。然後接線是這樣接的(如下圖所示),串列埠除錯助手給串列埠發的同時,這臺故障注入儀也能收到,然後故障注入儀把毛刺訊號搭在晶片的接收端,再把故障注入儀的觸發訊號給配置好。


當收到64個1的時候, demo板能收到,故障注入儀也能收到。這個除錯助手它是200毫秒迴圈傳送一次。


這個提前把環境給搭好了,現在把引數給設定好,設定它的觸發的報文,把它滯後時間設定為202毫秒,是因為demo板隔200毫秒收到之後,它可能會有約兩毫秒的CPU執行時間。


前面那幾秒之所以沒有鎖住,是因為 PC機雖然是200毫秒迴圈傳送一次,但是它可能有1~2毫秒的一個隨機的延遲。


好,我們們再看一下另外一個領域,無線電這一塊也是非常的重要。無線電這塊我們主要是從底層的鏈路層來討論,至於上層的應用層什麼加解密什麼認證的機制,我們今天一概不討論。


2023 SDC 議題回顧 | 晶片安全和無線電安全底層滲透技術


首先是這個工具,巧婦難為無米之炊,對於無線電的掃描滲透,必定會藉助這個工具。它不像之前其他的工具,在 PC機上裝一個軟體,直接就能漏掃了,必須要藉助外圍的一個獨立的硬體裝置,我們稱之為無線電掃描滲透儀。


目前無線電滲透儀它主要是有兩種,一種是sdr,就是開源的軟體定義無線電,還有一種就是專門針對硬體的無線電,一般都是在軍工高效能的場合可能會用到。


sdr軟體定義的無線電,它有這麼一個特徵,硬體可能是廠商已經給你做好了,我們們只需要做軟體的程式設計,會嚴重依賴CPU的算力,如演算法效率、記憶體效能,因為是靠軟體來編解碼的。


然後硬體hdr的話,它主要的特徵就是較少的CPU干預,穩定性可靠性強,然後它的傳輸的速率、解碼的效率非常的高。


接下來我們重點討論一下 IQ的正交訊號的處理,不討論相應的開發工具,像labview、gruradio或者是matlab之類的,我們一概不討論,甚至它的開發語言我們也不討論。這個是非常經典的一張圖(如下圖所示)。傳統的無線電發射乾脆暴力,很久以前是直接把相應的調製訊號和載波訊號相乘,然後發出去。


2023 SDC 議題回顧 | 晶片安全和無線電安全底層滲透技術


但是IQ調製不一樣,它是分別把調製訊號和載波訊號各自移向90度,由sin變成cos,然後再分別相加,直接就單邊帶把射頻訊號發出去了。


然後關鍵的技術指標,硬體和演算法兩個方面。首先是頻譜的覆蓋範圍、射頻的失真等,一般我們是從研發人員的角度來看,對於使用者的話,他們可能很少會接觸到這些效能。還包括它的通道的頻寬,正常的情況下不同的場景不同的頻寬,這裡面的頻寬不像我們家裡面上網的那種頻寬就是越寬越好,根據實際的場景有可能頻寬越窄越好,越窄意味著你的進來的訊號更純淨。包括基帶訊號的濾波效能、訊號增益控制( AGC和MGC)。


2023 SDC 議題回顧 | 晶片安全和無線電安全底層滲透技術


然後基帶訊號的線性度、精度……尤其是基帶訊號的取樣率,從某種程度上來看,直接能夠決定這臺掃描滲透儀的效能。


再往下就是它的驅動演算法,這個效能其實也非常重要,主要體現在軟體層方面,這是無線電安全的一些要點,就是頻譜的安全。


另外一個就是調製安全和編碼安全,這個技術也非常重要,一種好的優秀的調製解調技術,可以有效的防止同頻干擾的攻擊,尤其是在波特率以及它的位元速率傳輸,這裡面體現它的技術實力。


2023 SDC 議題回顧 | 晶片安全和無線電安全底層滲透技術


通訊安全的設計跟傳統的安全有點類同,就不展開細說了。


這個是針對某車型的無線訊號的逆向分析(如下圖所示),可以看到這個車鑰匙按一下鎖車鍵的話,它是有4幀,每一幀的間隔是約4毫秒。左邊這張圖是第一幀的放大圖,可以看到基本上是迴圈的這種 ASK的調製,如果說解碼的話,按照 NRZ解碼基本上就是101010。右邊的這個圖是它的區域性放大圖,433.75兆赫茲,它的編碼方式是ASK 100%的解調,然後它的波特率是2.8kbps,我們在測試過程中發現它不太穩定。下面這個圖就是它的基帶訊號的最原始的圖。


2023 SDC 議題回顧 | 晶片安全和無線電安全底層滲透技術


最後我們透過一個影片來結束分享。首先演示的是跟蹤的影片。這個就是無線電掃描滲透儀,這個是訊號的捕捉視窗,當我按一下t1鑰匙的時候,滲透儀會把相應的資訊發到這個視窗裡邊。


按一下鎖車鍵,上面提示是跟蹤到t1,下面的1010跟剛才我們4幀的圖片解析出來其實是一致的,這個是t2的鑰匙,可以看到也跟蹤到 t2的指紋了。現在把干擾也加進來。最開始找車的時候沒有干擾,按找車鍵車會叫。然後把針對t1鑰匙的干擾指令下發,意味著t1要是再按找車鍵的話,它應該是找不著了。


我的分享到此結束,謝謝。



*峰會議題PPT及回放影片已上傳至【看雪課程】https://www.kanxue.com/book-leaflet-171.htm 


PPT及回放影片【未購票者收費】;


【已購票的參會人員免費】:我方已透過簡訊將“兌換碼”發至手機,按提示兌換即可~



2023 SDC 議題回顧 | 晶片安全和無線電安全底層滲透技術

《看雪2023 SDC》



2023 SDC 議題回顧 | 晶片安全和無線電安全底層滲透技術

看雪安全開發者峰會(Security Development Conference,簡稱SDC)由擁有23年悠久歷史的頂尖安全技術綜合網站——看雪主辦,面向開發者、安全人員及高階技術從業人員,是國內開發者與安全人才的年度盛事。自2017年七月份開始舉辦第一屆峰會以來,SDC始終秉持“技術與乾貨”的原則,致力於建立一個多領域、多維度的高階安全交流平臺,推動網際網路安全行業的快速成長。



鑽石合作伙伴

2023 SDC 議題回顧 | 晶片安全和無線電安全底層滲透技術


黃金合作伙伴

2023 SDC 議題回顧 | 晶片安全和無線電安全底層滲透技術

相關文章