50万奖金+官方证书,深圳国际金融科技大赛正式启动,点击报名 了解详情
写点什么

CPU 特性漏洞!如何更新 microcode 以缓解未被修复的 Spectre 漏洞问题?

  • 2020-04-12
  • 本文字数:1466 字

    阅读完需:约 5 分钟

CPU特性漏洞!如何更新microcode以缓解未被修复的Spectre漏洞问题?

引言

近来 Google 的 Project Zero 团队公布的 Spectre 和 Meltdown 漏洞,可谓一石激起千层浪,业内各个硬件软件厂商开源社区都在积极参与漏洞修复。


据悉,漏洞会造成 CPU 运作机制上的信息泄露,低权级的攻击者可以通过漏洞来远程泄露(浏览器形式)用户信息或本地泄露更高权级的内存信息。


Meltdown 是最早被修复的,在 Kernel 中开启 KPTI 就可以缓解该问题, Spectre 则依然在火热进行中。而作为漏洞的始作俑者 Intel,Spectre 漏洞的 Intel 官方缓解方案也于近日放出。 当然目前很多更新并非真正的修复,而是在最大程度抵御和缓解相关攻击。

更新 microcode

通过更新 microcode 和系统补丁可以缓解 Spectre Var. 2 漏洞,也就是 CVE-2017-5715 branch target injection。 除了在 BIOS 中可以更新 microcode 之外,Kernel 也提供了更新 microcode 的机制。本文只关注在如何在 RancherOS 上更新 microcode。


下载最新的 Intel microcode 版本,注意 microcode 一般并不是适用所有的 CPU,比如 20180108 这个版本,主要是以下 CPU 才会起作用:




下载并解压缩之后,你会发现一个是 intel-ucode 目录下一些文件,另外一个单独的 microcode.dat 文件。 前者是支持热加载方式,也是现在比较推荐的方式;后者是传统更新方式,需要在 initrd 中加入 microcode 加载。 对于 RancherOS,前者比较合适,使用起来相对简单。


若要在内核支持更新 microcode,需要在编译内核时加入以下配置(RancherOS 已经开启):


CONFIG_MICROCODE=yCONFIG_MICROCODE_INTEL=yCONFIG_MICROCODE_AMD=yCONFIG_MICROCODE_OLD_INTERFACE=y #支持传统方式,开启此项
复制代码


安装过程比较简单,几乎每个版本的 microcode 都有相应的 releasnote,大致如下:


# Make sure /sys/devices/system/cpu/microcode/reload exits:$ ls -l /sys/devices/system/cpu/microcode/reload
# You must copy all files from intel-ucode to /lib/firmware/intel-ucode/ using the cp command$ sudo cp -v intel-ucode/* /lib/firmware/intel-ucode/
# You just copied intel-ucode directory to /lib/firmware/. Write the reload interface to 1 to reload the microcode files:$ echo 1 > /sys/devices/system/cpu/microcode/reload
复制代码


无论更新成功与否,在 dmesg 中都会查看到相关信息,比如:


$ dmesg | grep microcode [   13.659429] microcode: sig=0x306f2, pf=0x1, revision=0x36 [   13.665981] microcode: Microcode Update Driver: v2.01 <tigran@aivazian.fsnet.co.uk>, Peter Oruba [  510.899733] microcode: updated to revision 0x3b, date = 2017-11-17  # 这条msg很重要
复制代码


查看 cpuinfo,再次确认 microcode 版本,不同的 CPU 型号,升级后对应的 microcode 版本是不同的:


$ cat /proc/cpuinfo |grep "model\|microcode\|stepping\|family" |head -n 5cpu family   : 6model        : 63model name   : Intel(R) Xeon(R) CPU E5-2640 v3 @ 2.60GHz stepping     : 2microcode    : 0x3b #之前是0x36
复制代码


然后在 cloud-config 中在 runcmd 添加脚本,保证每次启动都加载最新版本的 microcode:


runcmd:- echo 1 > /sys/devices/system/cpu/microcode/reload
复制代码

总结

关于 Spectre Var. 2,我们依然在持续关注, 直接在内核编译中使用 Retpoline 指令替换技术,可以更简单方便的缓解 branch target injection, 现在内核已经支持了 Retpoline 指令替换的设置,但是也需要最新版本的 GCC 编译器的特性支持, 而带有 GCC 的新补丁的正式版本还没有发布,一旦 GCC 新版本发布,我们会马上更新内核并发布新的 RancherOS 版本。


2020-04-12 20:391613

评论

发布
暂无评论
发现更多内容

这几年让你大呼惊人的AI应用,都离不开这项技术

小红书技术REDtech

人工智能 自然语言处理 nlp 自然语言 自然语言理解

Apache APISIX 2.15 版本发布,为插件增加更多灵活性

API7.ai 技术团队

开源 后端 API网关 APISIX 网关

快速搞懂Seata分布式事务AT、TCC、SAGA、XA模式选型

知识浅谈

开源 8月月更

绝对最直白的MySQL MVCC机制总结,免费拿走

知识浅谈

开源 8月月更

基于深度学习的图像检索方法!

Geek_e369a5

图像搜索 图像检索

大咖说·图书分享 | Serverless工程实践:从入门到进阶

大咖说

Serverless 工程实践

大数据培训如何部署一个健壮的Airflow

小谷哥

兆骑科创创业赛事活动路演,高层次人才引进平台

兆骑科创凤阁

开篇-开启全新的.NET现代应用开发体验

MASA技术团队

.net 云原生 后端

太厉害了!腾讯T4大牛把《数据结构与算法》讲透了,带源码笔记

冉然学Java

编程 算法 排序 java\ 数据结构与算法、

想做好分布式架构?这个知识点一定要理解透彻

王小凡

Java 程序员 分布式 高并发

语音直播系统——做好敏感词汇屏蔽打造绿色社交环境

开源直播系统源码

软件开发 语聊房 直播系统源码 语音直播系统

并发模型和I/O模型介绍

C++后台开发

后端开发 I/O模型 C/C++后台开发 C/C++开发 并发模型

开源一夏 | 不会吧,十分钟就能上手Prometheus与Grafana监控SpringBoot项目

知识浅谈

开源 8月月更 SpringBoot实战

一文搞懂│php 中的 DI 依赖注入

设计模式 依赖注入 8月月更 高级编程

Python字体反爬之乐居字体反爬,一文看懂,一文学会

梦想橡皮擦

Python 爬虫 8月月更

中科驭数等单位牵头发布行业首部DPU评测方法技术白皮书

硬科技星球

AI+BI+可视化,Sugar BI架构深度剖析

百度Geek说

架构 数据

浅聊组合函数

掘金安东尼

前端 函数编程 8月月更

2022年值得尝试的7个MQTT客户端工具

EMQ映云科技

物联网 IoT mqtt 客户端 8月月更

二极管及其应用

厉昱辰

电子技术 8月月更

玉溪卷烟厂通过正确选择时序数据库 轻松应对超万亿行数据

TDengine

数据库 tdengine 时序数据库

《数字经济全景白皮书》银行业智能风控科技应用专题分析 发布

易观分析

金融 银行 数字经济全景白皮书

面试SQL语句,学会这些就够了!!!

程序员猪小哼

sql 实用SQl语句

国内IT市场还有发展吗?有哪些创新好用的IT运维工具可以推荐?

行云管家

云计算 多云管理 IT运维 云管理

Kubernetes资源编排系列之三: Kustomize篇

阿里云大数据AI技术

运维‘

IDO预售DAPP系统开发(NFT挖矿)

薇電13242772558

dapp

华为研究院19级研究员几年心得,终成趣谈网络协议文档,附大牛讲解

冉然学Java

数据库 编程 微服务 网络协议 java\

史上最全!47个“数字化转型”常见术语合集,看完秒懂~

优秀

数字化转型 数字化业务转型

浅析PM2实用入门指南

青年码农

Node pm2

兆骑科创双创服务平台,创业赛事活动,投融资对接平台

兆骑科创凤阁

CPU特性漏洞!如何更新microcode以缓解未被修复的Spectre漏洞问题?_文化 & 方法_Rancher_InfoQ精选文章