看板 PC_Shopping 關於我們 聯絡資訊
※ 引述《hn9480412 (ilinker)》之銘言: 很久沒發文賺P幣了 是時候稍微增加一下收入 就稍微來聊一下System Management Mode大概是什麼東西好了. 先引用一下英文Wiki, 中文有寫跟沒寫一樣.. https://en.wikipedia.org/wiki/System_Management_Mode 用很白話文很簡單的比喻來說的話 他就是一個 時間暫停的魔眼 一旦啟動 其他程序的時間包括作業系統 就像時間凍結了一樣 這時候只有在SMM裡面的人(程式碼)還能活動 直到退出SMM 甚至作業系統搞到當機了, 除非CPU本身也完全涼透無法執行任何指令, 不然SMM在這情況下他應該都還能工作. 至於進入SMM的條件 就叫做SMI, System Management Interrupt. 他可以由單純硬體觸發 也可以從軟體觸發 要離開就由SMM裡面的程式碼去執行特殊指令 在SMM裡面, 幾本上就是可以為所欲為, 沒有什麼東西可以限制你. 系統平台上近乎所有資源, 還有記憶體的內容, 通通在你的控制之中. 至於離開之後, 除非SMM本身程式是故意留下足跡, 不然外界理論上是有可能不知道 你在裡面幹了什麼好事的. 所以SMM本身必須是很重視安全性. 至於SMM裡面要做什麼事情, 他本身也是一些程式碼構成, 這時候你可能會想說. 這不是雞生蛋蛋生雞了嗎? SMM一開始的程式碼又是哪來的? x86 CPU一開始開機的時候 多半會從SPI ROM讀取程式 也就是我們俗稱的BIOS/UEFI 而要準備用在SMM裡面的程式碼其實也包含在內 我們就以UEFI為例. UEFI開機會去初始化記憶體 在這個階段其實會預留4MB~8MB(好像吧,忘了)給SMM使用 這塊記憶體是獨佔性的 然後在接下來初始化各種UEFI軟體功能時 會載入一套 用在SMM裡面的程式碼到這塊記憶體 然後將這塊記憶體給標記鎖住 一旦鎖住之後 基本上就不允許修改記憶體中"可執行"的程式碼部分, SMM以外的人 也再也無法看到這塊內容 這邊其實應該就是這次AMD漏洞會影響到的部分 等等會講 當SMM程式碼全數載入/鎖定後, 也就相當於開啟了SMM功能, 之後就可以從軟硬體來 觸發SMM. 舉例來說我在另一篇文章提過 SPI的讀寫其實有一些保護機制 其中一個就是利用SMM, 透過不允許SMM以外的來源直接寫入SPI ROM, 並讓這個動作經過SMM程式碼的驗證 來達到避免入侵者修改程式碼的目的. : 研究人員揭露AMD晶片的Sinkclose漏洞,存在近20年 : 文/陳曉莉 | 2024-08-12發表 : 資安業者 IOActive的兩名安全研究人員Enrique Nissim與Krzysztof Okupski在上周舉行的 : Defcon駭客會議上,揭露了一個存在於AMD晶片的安全漏洞,被研究人員命名為Sinkclose的 : 漏洞將允許駭客於系統管理模式(System Management Mode,SMM)執行程式碼,而且已存在 : 近20年。Sinkclose的漏洞編號為CVE-2023-31315,波及絕大多數的AMD處理器,從行動處理 : 器、桌面處理器、工作站處理器到資料中心處理器等,估計影響數億臺裝置。 : 根據AMD的簡要說明,CVE-2023-31315漏洞存在於模型特定暫存器(Model Specific Regist : er,MSR)的驗證不當,允許具備Ring 0存取權限的惡意程式,即便是在系統管理中斷(Sys : tem Management Interrupt,SMI)上鎖時,都能修改SMM配置,因而可執行任意程式。 接下來就跳到這邊 也就是上面講的問題. SMM本來身為最高權限的程式碼, 並且設計 上在鎖定之後就不允許修改 從而保證程式碼是安全的. 可是這邊開了個洞 讓入侵者有機會從OS階段的ring0就直接修改SMM裡面的東西 先不管這件事情的先決條件是什麼(原文也沒有講清楚).如果載入的OS本身 ring0也已 經被污染那就的確可以透過這個漏洞去入侵SMM, 再來就如上面的例子, 也許可以修改 SPI ROM內容了. SPI ROM被污染後 那下次開機執行的自然還是污染的程式碼. : 至於Nissim與Okupski則說,SMM為x86架構最強大的執行模式之一,該層級的程式碼對於Hyp : ervisor及作業系統等級的保護機制而言是不可見的,包括反欺騙引擎及反病毒系統;在研究 : AMD處理器時,他們發現用來保護SMM的一個重要元件含有缺陷,而且快20年了都沒有被發現 : 。 : 即使研究人員並未公布詳細的漏洞細節,也承諾尚不會釋出概念性驗證攻擊程式,但他們向 : Wired透露,此一漏洞最早可追溯到2006年甚至更早之前的AMD晶片,但駭客必須先可存取AM : D的PC或伺服器,之後擴張其權限,進而於晶片上植入無法受到系統或防毒軟體偵測或保護的 : 惡意程式,就算是重新安裝作業系統也無濟於事。 : 這個意思就是,倘若使用者的AMD處理器已被駭客入侵,唯一的解法就是將它丟掉,沒有其它 : 的修補方法。 至於這部分 濠洨吧=_= 原文好像也沒這麼講. SMM也只不過就是 一個權限最高的"RAM", 所以除非你能寫入SPI ROM, 不然開機他就會消失, 不存在什麼要丟掉. 就算SPI ROM被寫入 完整重新改寫SPI ROM也能夠消除掉 除非CPU SOC內建SPI ROM還鎖住不能改寫..x86現在市面上應該沒有這種東西 說到SMM在現代系統中的應用,大概有一些像是, 剛說的SPI保護 還有某些安全性驗證, 或是一些廠商自訂的介面/服務, 在Server則是有很重要的 RAS(可靠性、可用性和可維護性)應用, 的確可謂之重要而又脆弱. 其實之前UEFI三不五時就一直在修各種SMM漏洞, 像是利用buffer溢位之類有的沒有 的東西去"騙" SMM裡面的程式碼作一些不該做的事情. 當然照這次的漏洞, 看起來好像是可以更直觀的去改SMM程式, 的確是有相當高的危險性 不過x86陣營自然也有意識到SMM的缺點 最大的問題就是時間暫停這件事情 SMI一多必然會影響系統效能, 在大型Server時間就是金錢的世界中,x86陣營也一 直在盡量避免SMM的使用, 不久的將來也許就可以在周邊條件符合的環境下,直接 關閉SMM功能了. 到這邊P幣就騙夠了 謝謝各位的耐心觀看:P : 不過,不管是IOActive或AMD都認為要攻陷CVE-2023-31315漏洞並不容易。 : AMD已於上周修補了大多數的處理器,但並不打算修補AMD Ryzen 3000 Series桌面處理器, : 使得有用戶抱怨,3000系列是在2019年及2020年推出,它們存在還不到5年,還有很多人在使 : 用,也依然強大,呼籲AMD應該要重視這些用戶。 : https://www.ithome.com.tw/news/164412 : Intel:你看AMD也有問題吧,我還送刺客教條還算佛了吧 : 水桶都聽到咕嚕咕嚕的聲音了 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.134.212.51 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/PC_Shopping/M.1723465898.A.94D.html
smallreader: 解惑給推111.254.177.213 08/12 20:35
a58524andy: 科普推 149.22.87.140 08/12 20:37
ericinttu: 跟我想的差不多 有看沒有懂 114.44.142.32 08/12 20:39
canandmap: 推 36.228.133.92 08/12 20:51
spfy: https://i.imgur.com/cXOWffS.png 39.15.9.188 08/12 20:57
Altair: 懂了 多重宇宙的另個我應該懂了180.217.211.250 08/12 21:01
kuroshizu21: 得推一下, 其實真的還寫得蠻容易理解 114.47.72.217 08/12 21:13
kuroshizu21: 的, 可以明白這個事情大概是怎麼一回 114.47.72.217 08/12 21:14
kuroshizu21: 事...至於專業的細節, 外行人的我當 114.47.72.217 08/12 21:14
kuroshizu21: 然是不會懂, 也應該不需要懂(喂~~~ 114.47.72.217 08/12 21:15
riverkid20: 好像跟我想的差不多,但我看不懂,推 36.234.100.176 08/12 21:18
commandoEX: 簡單來說就是歷史共業(? 118.171.170.27 08/12 21:18
endorphin424: 推簡單明白,所以這東西就是時代必 27.247.195.46 08/12 21:20
endorphin424: 然產物,以後有機會淘汰就是了對吧 27.247.195.46 08/12 21:20
sellgd: 在電蝦推 跟我想的差不多 是政確的事嗎? 113.61.227.70 08/12 21:20
jhjhs33504: 這跟Intel ME的漏洞應該是差不多嚴重 36.228.23.163 08/12 21:25
jhjhs33504: 架構問題比較難完全修復最好直接蛋雕 36.228.23.163 08/12 21:25
跟Intel ME嚴格說來是不太一樣. ME漏洞會直接暴露出來讓人可以直接攻擊,入侵後就 基本無敵什麼都能做,要偷資料要改SPI, 應該都可以做得到. SMM漏洞照說明你得要先想辦法入侵OS取得ring0權限, 然後再跑進SMM去偷做事 不過修復上我就不知道這次對於AMD來說好不好修理. SMM本身並不是造成漏洞的主要因素, 問題是在CPU鎖定SMM要用到的RAM,又叫SMRAM 這個鎖定機制的安全性現在有問題. 所以如果AMD能在AGESA又或是microcode去修改 鎖定機制應該就ok.
abc21086999: 聽起來是A片的情節 220.136.194.70 08/12 21:28
Suicopas: 推 59.126.46.72 08/12 22:13
orze04: 可以篡改ring0 的部分,那一堆事都可以辦 114.136.57.150 08/12 22:35
orze04: 到了 114.136.57.150 08/12 22:35
v86861062: 推推 220.134.60.79 08/12 22:36
terry12369: https://imgur.com/6DIELvI.jpg 36.232.184.228 08/12 22:36
DivineSX: 推 114.40.165.55 08/12 22:40
yymeow: 專業推推 114.37.16.242 08/12 22:41
dos01: 我還是沒很懂 看起來SMM就是一個弊大於利 182.155.78.98 08/12 22:41
dos01: 的東西 為什麼還要讓他繼續存在? 182.155.78.98 08/12 22:41
因為幾十年來大家都是這麼過的(X)
avans: 推淺顯易懂的解說! 42.79.174.79 08/12 22:55
wahaha99: 我猜 存在的理由就是為了相容 118.169.16.33 08/12 23:02
wahaha99: 相容些很古老、很底層的東西 118.169.16.33 08/12 23:02
albertfeng: 推科普 雖然我看不懂 122.117.6.9 08/12 23:09
E7lijah: https://i.imgur.com/zNYkiOG.jpeg 39.9.129.21 08/12 23:10
futakinohi: 跟我想的一樣 223.140.116.78 08/12 23:14
cancelpc: 就跟Intel的ME一樣太上皇111.249.135.146 08/12 23:17
x20165: 關機還能入侵嗎?111.246.123.215 08/12 23:35
不能
jacky40383: 嗯 好 懂了 111.240.77.228 08/12 23:41
Arbin: 但這感覺是CPU的太上皇 不像ME管很多?220.136.220.210 08/12 23:49
SMM是CPU的隱藏第二人格 ME是隱形地縛靈管家, CPU是住在這個家的人.
orangesabc: 看不懂 42.72.234.151 08/12 23:56
sdbb: 謝謝 112.104.64.201 08/13 00:24
s25g5d4: 不是 拿掉洞越多阿 韌體直接隨便改欸 1.34.245.37 08/13 00:31
沒錯你拔掉以前能靠SMM擋住的一些東西又要另外處理了
ohmylove347: 知識推 1.160.86.235 08/13 00:40
wild2012: 意思就是 一般人無所謂 server有點影響 61.231.136.183 08/13 00:51
wild2012: 比起INTEL 根本不算個事... 61.231.136.183 08/13 00:52
理論上當然是Server影響比較大, 畢竟上面還會跑一些重要的服務, 又真正關係到 資安問題 對於client來說,要怎麼從這個漏洞去盜取你的重要資料, 以這個年代來說 也就是一些帳號密碼, 那是另外一個故事了.
yys310: 推推 140.114.18.126 08/13 01:13
jjjj222: 基本上關心這種資安的東西, 就會知道 123.193.198.55 08/13 02:04
jjjj222: 一堆研究結果的觸發條件都很嚴苛... 123.193.198.55 08/13 02:04
jjjj222: 看多了以後我都懶得看了.. 真的太難 123.193.198.55 08/13 02:05
jjjj222: 反正我資料的價值絕對<<<他們要花的資源 123.193.198.55 08/13 02:06
bitcch: 感謝科普 之前還不知道有這東西 101.10.97.141 08/13 02:30
not5566: 魔眼4什麼 114.136.98.190 08/13 03:09
窩不知道, 可能要問小姐姐
tomsawyer: 聽起來對標的是intel ME? 1.200.97.150 08/13 03:44
不是喔, 其實有很大的差別. 與Intel ME同等地位的, 目前來說算是AMD PSP, ARM上可以把他想成類似XCP. 跟SMM完全不同的地方在於 Intel ME/ AMD PSP本身不是跑在你主要CPU上的 他們兩個都是在PCH or CPU SOC上面有多埋一顆小晶片,ME好像是類似atom架構 PSP則其實是一顆小ARM. 這個小晶片才是在執行ME/PSP的人. SMM真正要找個對應的東西的話, 他比較像是ARM的Trust Zone. 都是在同一顆主晶片上分割一部分資源來執行, SMM/TrustZone都有高於一般程序的權限, 而且對一般程序來說這兩個都 像是隱形人. 不過TrustZone的執行不像SMM會整個進入時間暫停一樣的狀態
jay0215: 有看有推!118.167.230.105 08/13 04:58
jyhfang: 厲害 謝分享 220.134.41.251 08/13 05:01
ltytw: 快推 免的別人以為我 114.33.46.227 08/13 07:06
quamtum: 如果都能改bios,那一開始就進smm就好, 61.230.27.193 08/13 07:10
quamtum: 不用使用任何漏洞 61.230.27.193 08/13 07:11
quamtum: smm可以做很多事,例如bios gui的usb 61.230.27.193 08/13 07:12
quamtum: driver可以放在這 61.230.27.193 08/13 07:12
quamtum: windows/linux也會利用smi做想做的事情, 61.230.27.193 08/13 07:14
quamtum: 拿掉很多os需要改 61.230.27.193 08/13 07:14
其實以Windows/Linux來說 他本身是不需要SMI的. SMM設計上其實就是故意要獨立於OS之外, 讓OS看不見他 但Windows下/Linux下有沒有會遇到SMI的狀況呢? 還是有. 要舉例又要提到SPI寫入, 例如當Windows/Linux需要寫入UEFI variable, 他會呼叫UEFI service, 然後uefi service會轉發SMI進SMM再去寫入SPI ROM. 對OS來說其實他是不知道後半段UEFI service發了SMI這件事情的. 另外一個例子是shutdown或是sleep, 這個部分則是晶片組會在收到OS要求shutdown/ sleep要求時, 發出SMI, 再跑去SMM裡面處理一些前置作業, 才進入shutdown/sleep. ※ 編輯: comipa (36.225.63.74 臺灣), 08/13/2024 07:53:24
azumanga: 推。 114.33.215.99 08/13 07:56
cmshow: 推科普長知識 118.231.145.57 08/13 08:39
warshipchiu: 專業推 27.242.128.143 08/13 09:24
pttbeigowow: 那該買amd還是intel 請大大解惑101.137.179.224 08/13 09:29
skyclam: 能讓smm driver被置換掉,代表oem完全沒 111.83.32.78 08/13 09:43
skyclam: 對spi rom做加密, 三好加一好而已 111.83.32.78 08/13 09:43
kaltu: 這是整個攻擊鏈第二步以後要用到的東西,不 100.8.245.106 08/13 09:45
kaltu: 能說不是第一步所以就不用管 100.8.245.106 08/13 09:45
kaltu: 另外說只有server要在意也是常見的迷思,任 100.8.245.106 08/13 09:45
kaltu: 何人,在這個遠端工作的時代,只要你的電腦 100.8.245.106 08/13 09:45
kaltu: 裡有存取你公司的帳號密碼,你就是有價值目 100.8.245.106 08/13 09:45
kaltu: 標 100.8.245.106 08/13 09:45
kaltu: 就算你任職的公司也不怎麼重要,只要你公司 100.8.245.106 08/13 09:45
kaltu: 的某個其他部門有跟稍微重要一點的其他客戶 100.8.245.106 08/13 09:45
kaltu: 有系統上的連線就有價值 100.8.245.106 08/13 09:45
kaltu: 不是你本身有價值而是你的存取權有價值 100.8.245.106 08/13 09:45
kaltu: 很多人以為自己不過就是個小咖不用怕,這種 100.8.245.106 08/13 09:45
kaltu: 心態就是出事的前奏,你作為整個攻擊鏈的一 100.8.245.106 08/13 09:45
kaltu: 個小踏板還是有攻擊價值的 100.8.245.106 08/13 09:45
kaltu: 另外其實SMM就把他想成虛擬機控制器就好了 100.8.245.106 08/13 09:48
kaltu: ,你的作業系統是在他之後的,平時都很透明 100.8.245.106 08/13 09:48
kaltu: ,但要搞事的時候理論上更高層的程式包含作 100.8.245.106 08/13 09:48
kaltu: 業系統在內,是不會知道他幹了什麼的 100.8.245.106 08/13 09:48
Glacier319: 之前windows不支援thunderbolt 所 42.75.237.7 08/13 10:08
Glacier319: 以driver做不到的部分都是靠BIOS裡 42.75.237.7 08/13 10:08
Glacier319: 的SMI去硬搞 快速插拔幾次後window 42.75.237.7 08/13 10:08
Glacier319: s就藍屏了 42.75.237.7 08/13 10:08
Garrys: 推! 114.42.196.86 08/13 11:38
Amulet1: 看懂了 AMD YES 61.222.194.233 08/13 13:30
wei115: 不是太懂,uefi載入不是會有驗證,所以修 27.52.101.1 08/13 15:07
wei115: 改後的uefi無法啟動,但為什麼可以改spi 27.52.101.1 08/13 15:07
wei115: rom後還能啟動? 27.52.101.1 08/13 15:07
wei115: 喔喔,看到前一篇文有解釋了,原來是系統 27.52.101.1 08/13 15:09
wei115: 廠沒開 27.52.101.1 08/13 15:09
理由: 1.系統廠沒開AMD提供的驗證機制(Platform Secure Boot) 2.UEFI部分本身的驗證有可能被幹掉 要講這個會講到root of trust/chain of trust的概念. 下次好了:P ※ 編輯: comipa (36.225.63.74 臺灣), 08/13/2024 15:35:17
xiaotee: 謝謝科普 101.8.41.34 08/13 17:32
smallreader: platform secure boot多一個字,是不 223.139.135.3 08/13 17:47
smallreader: 是跟安全開機不一樣的東西? 223.139.135.3 08/13 17:47
KonBanwarire: sb是edk2的吧,amd psp相關的東西 49.216.17.140 08/13 17:53
KonBanwarire: 也不是系統廠想關就關的 49.216.17.140 08/13 17:53
skyclam: psb跟secure boot是不一樣的東西喔 111.83.32.78 08/13 18:06
沒錯 他是不同的東西 雖然都是安全性相關 就乾脆順便講下好了. UEFI的secure boot是什麼? 簡單來說就只是 驗證"將要執行"的模組的可靠性 問題在於 那從CPU開機第一時間拾取程式碼的時候, 誰知道這個程式碼可不可靠? 這就是所謂的root of trust, 你的整個系統平台上誰來負責做第一棒安全性驗證的問題 以純UEFI沒有其他機制輔助的情境會變成: 1. CPU fetch UEFI (SEC/PEI/DXE...etc) 2. UEFI 安全性模組啟動 3. UEFI 安全性模組負責在接下來的模組要被執行的時候一一做安全性驗證 4. UEFI 安全性模組最後要驗證OS的開機程序 5. 交棒給OS 所以在#2之前其實也沒有辦法保證安全性 AMD 的Platform Secure Boot或是其他廠商的類似功能就是在 #1之前(或同時)就去驗證整個UEFI又或是其他韌體的可靠性 接著才允許CPU開始執行fetch來的程式, 在這裡他就是root of trust的角色 而且這個root of trust同時必須保證自己的安全性 所以通常會搭配某種機制讓平台上可以去進行某種綁定以策安全 然後我們跟著上面的途徑走, #2以後負責驗證的這個角色換成了UEFI安全性模組 在系統有多個韌體模組的情況下, 這就會像是接力賽跑一樣, 負責做驗證的人一棒 一棒往下接力,這個就是所謂的chain of trust. ※ 編輯: comipa (220.134.212.51 臺灣), 08/13/2024 19:49:36 ※ 編輯: comipa (220.134.212.51 臺灣), 08/13/2024 19:50:49 ※ 編輯: comipa (220.134.212.51 臺灣), 08/13/2024 19:51:35 ※ 編輯: comipa (220.134.212.51 臺灣), 08/13/2024 19:54:36
smallreader: 想再問Windows裡面有個驅動(系統裝置111.254.177.213 08/13 20:05
smallreader: )叫 dynamic root of trust 也是應用111.254.177.213 08/13 20:05
smallreader: 到同一個root of trust來源嗎~?111.254.177.213 08/13 20:05
smallreader: 自動更新所裝的這個DRTM不曉得是什麼111.254.177.213 08/13 20:08
smallreader: 謝謝,查完看到DRTM也是開機最初載入111.254.177.213 08/13 20:22
smallreader: 不受信任的代碼,沒有處理#1之前驗證111.254.177.213 08/13 20:22
skyclam: 廠商不肯開psb多半是想保留cpu的二手市223.141.244.140 08/13 20:40
skyclam: 場吧,開了會鎖cpu的223.141.244.140 08/13 20:40
smallreader: 哇靠 開了會鎖CPU 一種蘋果T1的概念?111.254.177.213 08/13 20:48
weimr: 推 61.224.132.146 08/13 22:04
commandoEX: 沒有二手市場廠商比較爽吧 118.171.170.27 08/13 22:59
yunf: 簡單來說就是有人可以潛伏在你的主機板裡面 101.12.22.71 08/14 00:01
yunf: 就算你還原系統也沒有用 解決方法就是 離線 101.12.22.71 08/14 00:01
yunf: 還原系統 更新補丁 包括覆寫 bios 再上線更 101.12.22.71 08/14 00:01
yunf: 厲害一點的就是把它備份起來再把惡意程式抓 101.12.22.71 08/14 00:01
yunf: 出來看他裡面到底是什麼 101.12.22.71 08/14 00:01
yunf: 再修正一下可能是任何硬體 說不定存在於可程 101.12.22.71 08/14 00:04
yunf: 式化的電競滑鼠面 還有無線網路設備都有可能 101.12.22.71 08/14 00:04
yunf: 只要是他能夠被改寫系統會讀取的都有可能 101.12.22.71 08/14 00:04
yunf: 其實這都還只是在講程式化的部分都還沒有講 101.12.22.71 08/14 00:09
yunf: 到晶片的部分 101.12.22.71 08/14 00:09
wardraw: 知識有長有推 124.11.129.176 08/14 10:52
ry3298: 推 111.248.145.70 08/15 00:24