0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

看看4種不同類型的CPU漏洞

Codasip 科達(dá)希普 ? 來源:PhilippeLuc ? 2023-04-20 10:06 ? 次閱讀

在設(shè)計一個復(fù)雜的處理器內(nèi)核時,可能會出現(xiàn)1000到2000個不等的bug,經(jīng)驗告訴我們這是事實,盡管這個數(shù)字聽上去難以置信。而且并不是所有的bug都是一樣的:它們的重要性和帶來的后果有很大的不同。這期博文讓我們來看看4種不同類型的CPU漏洞,如何找到它們?以及如果我們沒有及時找到并擊中它們,對用戶來說會有著怎么樣的后果?

類型一:驗證工程師很容易發(fā)現(xiàn)的處理器漏洞!

類似在設(shè)計過程中忘記寫入一個分號的漏洞類型非常容易發(fā)現(xiàn),它通常是在編譯時直接發(fā)現(xiàn)的。對于此類bug,除了睜大你的眼睛之外,沒有其他辦法來避免!

可能你會經(jīng)常聽到同事說"哦,這個規(guī)范的一部分沒有被實現(xiàn)"。這其實是另一種極其容易發(fā)現(xiàn)的CPU漏洞,只要有一個明確的測試存在,你就可以用任何像樣的測試平臺找到它。在這種情況下,行使該功能的第一個簡單測試將失敗。那么此時處理器驗證團(tuán)隊需要做什么?確保詳盡健全的測試方式方法是一方面。另一方面,設(shè)計團(tuán)隊需要努力仔細(xì)閱讀規(guī)范,并在開發(fā)過程中隨時關(guān)注規(guī)范的任何變化。

換句話說,簡單的bug是指僅僅通過運行該功能的測試就能發(fā)現(xiàn)。它的(壞)行為是系統(tǒng)性的,而不是一個時間條件。詳盡的驗證是找到這種CPU bug的關(guān)鍵。代碼覆蓋率可以幫助你,但絕對不夠。如果一個功能沒有在RTL中編碼,覆蓋率也就不可能報告它的缺失?此時需要在規(guī)范明確的情況下執(zhí)行代碼審查。

類型二:驗證團(tuán)隊鐘愛的極端案例!

極端案例下的CPU漏洞找起來比較復(fù)雜,需要一個強大的測試平臺。行使該功能的簡單測試用例在有隨機(jī)延遲的情況下也可以通過。很多時候,當(dāng)異步事件加入時,就可以發(fā)現(xiàn)這些bug。例如,一個中斷正好在兩條指令之間到達(dá),時間很精確。或者當(dāng)存儲緩沖區(qū)想要合并的時候,緩存中的一行被驅(qū)逐時。為了解決這些問題,我們需要一個測試平臺來處理指令、參數(shù)和延遲,從而使所有可能的指令和事件的交錯都得到鍛煉。很明顯,一個好的檢查器應(yīng)該發(fā)現(xiàn)任何與預(yù)期不同的偏差項。

在這種情況下,不幸的是代碼覆蓋率完全沒用。僅僅是因為bug的條件是幾個事件的組合,而這些事件已經(jīng)被單獨覆蓋。在這里,條件覆蓋或分支覆蓋可能會有幫助。但分析起來很痛苦,而且最終也不會有有效的結(jié)果。

870fff8e-df07-11ed-bfe3-dac502259ad0.gif

動畫顯示了4種類型的CPU bug演變過程

測試平臺已經(jīng)發(fā)現(xiàn)了簡單的bug和幾個極端案例。

我們從這些極端案例中汲取經(jīng)驗,以改進(jìn)測試平臺并擴(kuò)大驗證范圍。這樣做可以使我們發(fā)現(xiàn)隱藏漏洞,此時隱藏bug轉(zhuǎn)變?yōu)闃O端bug(或較容易的bug)。

隨著bug成群結(jié)隊的出現(xiàn),我們可以根據(jù)最后發(fā)現(xiàn)的bug進(jìn)一步擴(kuò)大驗證范圍。

當(dāng)我們遇到一個“愚蠢”的bug時,就意味著我們的驗證測試已經(jīng)足夠有效了。

類型三:偶然發(fā)現(xiàn)的隱匿式CPU 漏洞--或由客戶發(fā)現(xiàn)的漏洞!

最壞的情況是如果這種隱藏的bug是由客戶發(fā)現(xiàn)的,或者是偶然發(fā)現(xiàn)的(團(tuán)隊內(nèi)部或在發(fā)布之前)。出現(xiàn)這兩種情況,這意味著目前的驗證方法不足以擊中它們。

如果使用不同的測試平臺或環(huán)境,因為刺激的不同可以找到其他的漏洞。那么我們所說的 "偶然發(fā)現(xiàn) "是什么意思?這里涉及到隨機(jī)測試平臺方法的限制。

在隨機(jī)刺激下,測試平臺通常會產(chǎn)生 "相同 "的東西。如果你擲骰子得到一個隨機(jī)數(shù),連續(xù)10次得到數(shù)字6的機(jī)會非常少。準(zhǔn)確地說,是六千萬分之一的機(jī)會。對于有100條不同指令的RISC-V CPU來說,一個(可等價的)隨機(jī)指令發(fā)生器每10?次只有1次機(jī)會產(chǎn)生連續(xù)10次相同的指令,這種機(jī)率是魔方不同位置數(shù)量的兩倍...... 在一個10級流水線處理器上,用所有流水線階段的相同指令來測試它也不是不合理的。如果此時還不調(diào)整隨機(jī)約束,那么只能祝你好運...

類型四:在現(xiàn)實生活中不會出現(xiàn)的“silly bugs”!

如果我們把極端漏洞和隱藏漏洞看得太重,那么最終創(chuàng)建的測試或許有點徒勞。

在連接調(diào)試器時,每個周期來回改變字節(jié)數(shù),這可能是永遠(yuǎn)不會出現(xiàn)在消費者產(chǎn)品上的案例,如果一個CPU漏洞的后果對客戶來說是不可見的,那么它就不是一個真正的漏洞。如果你在復(fù)制文件時故意拔掉U盤,而導(dǎo)致文件被損壞,我認(rèn)為這不是一個bug。如果某些操作導(dǎo)致USB控制器掛起,那么此時這是一個不容無視bug。

當(dāng)我們試圖擴(kuò)大驗證的范圍時,如果出現(xiàn)“silly bugs”,那么我們可能是在錯誤的地方投入了太多的努力。

872a9d3a-df07-11ed-bfe3-dac502259ad0.png

應(yīng)用不同的驗證技術(shù),在客戶之前有效地發(fā)現(xiàn)CPU漏洞,是Codasip應(yīng)用的驗證方法。我們使用多個組件測試平臺,各種隨機(jī)測試生成器,隨機(jī)刺激器,以及其他一些技術(shù)來驗證我們的產(chǎn)品。并隨著項目的發(fā)展,發(fā)展完善這些技術(shù)以擁有一個強大的驗證方法。





審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 處理器
    +關(guān)注

    關(guān)注

    68

    文章

    19100

    瀏覽量

    228814
  • 發(fā)生器
    +關(guān)注

    關(guān)注

    4

    文章

    1359

    瀏覽量

    61604
  • RTL
    RTL
    +關(guān)注

    關(guān)注

    1

    文章

    385

    瀏覽量

    59665
  • 調(diào)試器
    +關(guān)注

    關(guān)注

    1

    文章

    300

    瀏覽量

    23668

原文標(biāo)題:四種不同類型的CPU 漏洞!

文章出處:【微信號:Codasip 科達(dá)希普,微信公眾號:Codasip 科達(dá)希普】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    菜鳥問題,求助不同類型處理方法~

    請問上面的情況如何解決呢?就是兩個不同類型的連線端如何連接到一起,或者如何改變?yōu)?b class='flag-5'>同類型的呢?小弟初學(xué),謝謝您的幫助!
    發(fā)表于 07-23 10:08

    4個不同類型的子程序,怎么用條件結(jié)構(gòu)連接?

    4個不同類型的子程序,怎么用條件結(jié)構(gòu)連接,使每次只執(zhí)行其中一個子程序呢?老是顯示部分選擇器值無對應(yīng)分支,不知怎么連接?求助!
    發(fā)表于 05-24 14:18

    怎樣在labview中顯示兩同類型的計算器操作面板

    怎樣在labview中的前面板上顯示兩同類型的計算器操作面板,我不會設(shè)計前面板的切換,當(dāng)程序運行起來以后,如何實現(xiàn)在前面板中切換模式(科學(xué)型、標(biāo)準(zhǔn)型)。{:4_107:}
    發(fā)表于 08-06 16:22

    同類型的開發(fā)板怎么用無線傳輸視頻呢?

    同類型的開發(fā)板,怎么用無線傳輸視頻呢??一個是stm32采集視頻,通過無線把采集的視頻傳輸?shù)絼e的可以處理視頻的開發(fā)板上,各位大神有沒有思路啊????
    發(fā)表于 10-11 09:06

    請問labVIEW中怎么通過express XY圖對兩同類型的圖像同時進(jìn)行顯示?

    `labVIEW中怎么通過express XY圖對兩同類型的圖像同時進(jìn)行顯示?`
    發(fā)表于 02-20 22:17

    解讀不同類型伺服電機(jī)相應(yīng)的控制原理是什么?

    伺服電機(jī)的特點有哪些?伺服電機(jī)有哪幾種類型?不同類型伺服電機(jī)相應(yīng)的控制原理是什么?
    發(fā)表于 06-17 10:50

    支持CPU類型

    支持CPU類型 支持CPU類型是指能在該主板上所采用的CPU類型。
    發(fā)表于 04-26 08:54 ?569次閱讀

    理解不同類型的時鐘抖動

    理解不同類型的時鐘抖動 抖動定義為信號距離其理想位置的偏離。本文將重點研究時鐘抖動,并探討下面幾種類型的時鐘抖動:相鄰周期抖動、周期抖動、時間間隔誤
    發(fā)表于 01-06 11:48 ?1787次閱讀
    理解不<b class='flag-5'>同類型</b>的時鐘抖動

    基于不同類型Flash-ROM的Bootloader設(shè)計

    基于不同類型Flash-ROM的Bootloader設(shè)計
    發(fā)表于 10-26 11:41 ?11次下載
    基于不<b class='flag-5'>同類型</b>Flash-ROM的Bootloader設(shè)計

    Intel披露一新的CPU安全漏洞

    和年初的Meltdown(熔斷)和Spectre(幽靈)漏洞類似,Intel披露了一新的CPU安全漏洞,攻擊目標(biāo)是一級緩存,級別“高危”。
    的頭像 發(fā)表于 08-16 17:32 ?3460次閱讀

    cpu插槽類型有幾種_CPU插槽常見故障及解決

    大家都知道電腦最為核心的部分就是CPU了,CPU只有通過某個接口與主板連接的才能進(jìn)行工作。CPU經(jīng)過這么多年的發(fā)展,接口的方式多樣,目前CPU的接口都是針腳式接口,對應(yīng)到主板上就有相應(yīng)
    發(fā)表于 04-27 10:06 ?5969次閱讀

    最常見的網(wǎng)絡(luò)安全12漏洞掃描類型

    數(shù)據(jù)庫掃描技術(shù)主要用于評估數(shù)據(jù)庫系統(tǒng)的安全性,該類型會全面查找數(shù)據(jù)庫設(shè)置、訪問控制和存儲數(shù)據(jù)的漏洞,比如不安全的權(quán)限、漏洞注入問題或不安全的設(shè)置。這種掃描器需要經(jīng)常提供用于保護(hù)數(shù)據(jù)庫和保護(hù)敏感數(shù)據(jù)的信息。
    發(fā)表于 07-12 12:41 ?1403次閱讀
    最常見的網(wǎng)絡(luò)安全12<b class='flag-5'>種</b><b class='flag-5'>漏洞</b>掃描<b class='flag-5'>類型</b>

    同類型網(wǎng)線都有哪些差異

    同類型的網(wǎng)線在速率上的差異主要取決于它們的類型和規(guī)格。
    的頭像 發(fā)表于 11-16 14:58 ?1015次閱讀

    同類型的存儲器介紹

    ROM、RAM、DRAM和SRAM都是計算機(jī)存儲技術(shù)的術(shù)語,它們代表了不同類型的存儲器,各自有不同的特性和用途
    發(fā)表于 04-15 10:54 ?1016次閱讀

    香港CPU服務(wù)器如何處理不同類型的數(shù)據(jù)傳輸?

    香港CPU服務(wù)器處理不同類型的數(shù)據(jù)傳輸通常涉及以下幾個方面: 1、網(wǎng)絡(luò)配置:服務(wù)器需要有適當(dāng)?shù)木W(wǎng)絡(luò)配置,以支持不同類型的數(shù)據(jù)傳輸協(xié)議,如TCP/IP、HTTP/HTTPS、FTP等。 2、帶寬管理
    的頭像 發(fā)表于 05-21 17:23 ?319次閱讀