※ 引述《hn9480412 (ilinker)》之铭言:
来赚点P币好惹, 捞不到船想去发钱了OTL
简单来说这个问题牵涉到两个重点
1.Lojax(computrace)本身的问题
Lojax是一套电脑防盗的方案, 在UEFI firmware里面会有一只小driver, 然后搭配
OS下的应用程式(就是后面提到的rpcnetp.exe autoche.exe等)
https://en.wikipedia.org/wiki/LoJack_for_Laptops
就很像Find my phone的感觉就对了
那么因为在UEFI firmware里面有这只小driver,假如你电脑被干走 你就可以把系统锁住
让小偷开不了OS 或是做远端砍光资料等等的处理.
这个FW+SW的环境刚好就被拿来利用了
2.UEFI firmware (BIOS)本身的安全机制
https://technews.tw/2018/10/01/eset-uefi-rootkit-lojax/
这件事看这边的图会比较清楚
https://tinyurl.com/ycnpn66s
图中的 BIOSWE BLE SMM_BWP都是芯片组提供的功能 Intel应该是5系列之后都有提供
但是制造商有没有开启这个功能是另外一件事
假如硬件制造商都有开启这些功能的话 要写入SPI(主机板上那颗flash)的时候
UEFI firmware 本身会进入SMM mode, 再由firmware本身SMM mode的code来写入SPI
也就是必须要过一手, 这边UEFI firmware本身就会有些机制来验证要写入的东西
是不是安全的, 所以要是有开这机制 就不容易偷写东西进SPI了
PS1: 如果走图中的No->Yes->Yes路线, 就表示系统有把这个保护机制打开
如果没有开启这个功能的话 OS下可以直接存取SPI硬写,不需要过一手给UEFI firmware
这就是文中说的透过RWEverything签署过的RwDrv.sys来写入SPI.
到这边你的OS跟你的UEFI firmware都中招了
接下来就算把OS重灌, 还是会被UEFI firmware再把rpcnetp.exe autoche.exe修改成
有毒的版本. 不过我不确定他这段是怎么做的 UEFI firmware并非完整OS, 要用暴力法
去扫整个HDD来改上面两只档案跟registry, 感觉也太麻烦而且很慢, 应该会被发现吧?
再来说说提到的Secure boot. Secure boot就是在开机过程中, 需要校验每个
UEFI firmware要执行的模组的安全签章, 所以理论上像这个case, 修改过的模组
是无法被执行的. 但是个讲法其实有矛盾之处. 当你的FW都能被改了 你确定你的
校验机制还真的是正常的吗? 以这个case来说的确是正常的(因为这个病毒没有
偷改校验机制) 但是这件事无法被保证.
不过基本上, 前面的芯片组本身保护机制, 在有支援Secureboot的系统上, 应该都要
被开启. 当然硬件厂商是不是都有照规范走, 这就不知道了.
至于中招的复原, 的确就是FW重刷, HDD重灌
跟CIH的比较嘛, 我觉得以前的病毒主要目的是破坏 现在的病毒一堆排队要干你资料.
明枪易躲暗箭难防 偷干资料的机车多了吧? 而且没发现还不知道要被干走多少资料勒.
以上废文结束.
PS2: Server, data center, 工业电脑之类的 可能有相当数量根本没开这保护机制..
PS3: 更进一步的保护就是例如Secure flash, 在UEFI firmware执行完毕之后
将SPI写入完全禁止, 要更新FW必须要将FW放在某个地方, 然后系统重启
之后由UEFI firmware本身自己去读新FW, 校验后才写入SPI.
: SPI快闪存储器才行。另外,这个攻击影响较旧的芯片组,因此确保关键系统使用2008年
: 后,英特尔5系列内建Platform Controller Hub的更新芯片组,也能避免遭受攻击。
: https://www.ithome.com.tw/news/126208
: 至少这十年内的主机应该是不会有什么影响啦
: 不过与当时的CIH相比好像又有一点人性了。至少不是把整个EFI韧体洗掉连开机都不行了