你电脑的CPU里被藏了台“小电脑”,可怕的是你什么都做不了

简介:

你知道吗?在你电脑的 CPU 里,还藏着一台“小电脑”,不仅文件系统、驱动、联网功能一应俱全,还能……能做的实在太多了。最可怕的是:你没法关掉它……

问你两个问题:

首先,你的电脑运行什么操作系统?

无非是 Windows 10、macOS,或者成百上千种 Linux 发行版的其中一个吧……

第二个问题:你的服务器,运行什么操作系统?

基本都是 Linux 吧……

但如果硅星人告诉你:你的电脑和服务器里,其实还藏着一台你根本不知道的神秘「小电脑」,运行着一个你根本不知道的神秘操作系统呢?来,搬好小板凳,开讲。

隐藏在 CPU 里的神秘「OS」

再问一个问题:你的电脑或者服务器用的什么处理器?

只要是 Mac/Windows PC/Chromebook,而且是最近几年购买的——肯定用的是英特尔的处理器,没有悬念。

而我们今天的主角,这台神秘的电脑和操作系统,就藏在英特尔处理器里。从 2006 年往后所有的英特尔处理器里,都植入了一个名叫 AMT 的技术。它的全称是:Active Management Technology(主动管理技术,也叫 ME, Management Engine)[1]

你电脑的CPU里被藏了台“小电脑”,可怕的是你什么都做不了

这么一大段字,硅星人帮你长求总一下:

首先,AMT 能够让英特尔远程维护升级处理器固件,以保护计算机不在处理器这个环节被攻破。

其次,如果你被解雇了,公司 IT 可以在处理器的层级远程控制你的电脑,该锁定锁定该重置重置,确保公司资料不外泄。

那么,AMT 又是怎么实现的呢?

这是因为,处理器里本来就运行着一个名叫 MINIX (mini-Unix) 的操作系统。它的体量非常小,通常只有 5MB 左右,在处理器出厂之前就已经写了进去。

也就是说:MINIX 是世界上最流行的操作系统——比 Linux 还流行……

有了 AMT 和 MINIX,你的 CPU,其实不是你的 CPU 了。AMT 就像寄生在你电脑里的一台「小电脑」一样。

它不但不受宿主的控制,反而会控制宿主![2]

就像科幻电影《黑衣人》(MIB) 的这一幕:

你电脑的CPU里被藏了台“小电脑”,可怕的是你什么都做不了

可是,AMT 怎么就控制了我们的电脑呢?

大家都知道 Google 云计算很厉害。作为云计算行业的巨头之一,Google 都的数据中心 不是每一台都运行 TPU 啦……还是要采购非常多的英特尔处理器。

但 Google 的工程师们发现:在我们的 Linux 操作系统和处理器硬件之间,还藏着至少 2½ 个内核;这些内核不但对 Google 完全不开放,而且还很容易遭受黑客攻击,攻击还有能力重写内核本身,Google 无法修复。

在下图中,Google 的工程师描述了这 2½ 到底都包括了些什么

你电脑的CPU里被藏了台“小电脑”,可怕的是你什么都做不了

你会看到 Ring 这个东西。它代表的是权限层级,数字越低离用户越远、权限越高。Ring 3 是用户在操作系统上能接触的内容,比如软件或者文件;Ring 2 到 1则是驱动,Ring 0 是操作系统内核,也是用户,而且是非常有经验的用户,比如专业的 IT 人士所能触碰和修改的最低层级。

但 Ring 0 并不是重点……再往下还有 Ring -1、-2 和 -3。一般人并不知道有负数层的存在,在大部分 Ring 示意图离都根本看不到负数层,因为它们并不是开放的。

你电脑的CPU里被藏了台“小电脑”,可怕的是你什么都做不了

负数层都在处理器内核上。如果你刷过 Android 手机第三方内核,可能知道 CPU 核心资源是可以调整的,这个能力通常在 Ring -2 上。至于 Ring -3,权限已经非常之高了……别说你或者 IT 小哥,连电脑公司(戴尔、惠普、苹果)都触碰不到。

而 MINIX 就运行在 Ring -3 上。这里,是属于芯片厂商的「绝对领域」。

你电脑的CPU里被藏了台“小电脑”,可怕的是你什么都做不了

麻雀虽小,五脏俱全

这个操作系统里都装了些什么呢?Google 的工程师继续研究,发现里面东西还真不少……

文件系统

CPU 资源分配

一套完整的驱动,包括 USB、联网 (IPV6)、声卡显卡等

TLS 加密通讯协议

一个网络服务器

完整的网络栈(跟联网没关系,你就理解为把各个元器件连接起来让数据互通)

电脑该有的东西都齐活了,现在你知道为什么管它叫小电脑了吧……

你电脑的CPU里被藏了台“小电脑”,可怕的是你什么都做不了

至于这个小电脑都能做些什么,听完你一定会害怕的:

读取硬盘上的所有文件、记录键盘和鼠标、获取截图、联网上传和下载数据、查看所有运行中的程序、分配资源、打开和关闭程序、在防火墙打开/软件断网时通过物理网线/ WiFi 传输资料、开机和关机、在关机状态下提取缓存数据、重写处理器内核等等等等……

——它能做到所有上述的事情,而且还是在完全对用户隐秘的前提下。管理员账户?硬盘分区?双系统?别开玩笑了,你能做的所有事情都在 Ring 3,而 MINIX 的所作所为都在 Ring -3 上,你根本看不到。

你电脑的CPU里被藏了台“小电脑”,可怕的是你什么都做不了

重申一遍:这是 Ring -3 层级,是芯片厂商的绝对领域。

这个层级对你的电脑或服务器拥有百分之百的控制权,而这个至高无上的领域只属于芯片厂商。

(题外话:都说每次苹果发新手机,旧 iPhone 就会立变慢变费电。库克桌子上是不是真的有个按钮,我们可能无法知晓,但至少你现在知道,芯片厂商拥有这样的能力绝对不是都市传说……)

有后门就没有绝对安全

既然 Ring -3 权限只属于芯片厂商,那么好,如果芯片厂商都靠谱的话,应该不会出问题吧?

很遗憾,真相并非如此。

现实中,黑客可以通过很粗劣但很有效的方式,比如钓鱼邮件,比如社会工程学;或者更聪明的方式,比如通过可被 AMT 系统识别,能够直接进入处理器,但不会被防火墙阻挡住的特定流量 (SOL Traffic,下图) ,来获得一家企业的 IT 管理员的权限。

你电脑的CPU里被藏了台“小电脑”,可怕的是你什么都做不了

最一开始提到,英特尔赋予了企业管理员利用 AMT 渠道来管理办公硬件的能力,而黑客获取了管理员权限,也就掌握了 AMT 的控制权。进而,他们可以通过 AMT 渠道去控制更多的设备,扩大破坏力。前段时间,微软就已经发现了一个名叫 PLATINUM 的黑客机构/恶意软件,在利用这种方式藉由 AMT 的后门侵入了大量东南亚的电脑。[3]

今年 5 月,英特尔突然宣布了一个跟 AMT 有关的漏洞信息,并提供了补丁。结果安全专家们一看,这个漏洞已经开放了长达 7 年之久……Google 认为,这个漏洞可能已经导致超过 10 亿台设备暴露。

然而英特尔发布的只是一个补丁,意味着多加了一道锁。可只要 AMT 仍然留着,不给用户关闭的选择,根本没有任何本质上的区别。不管加多少道锁,后门依然是后门。

总结一下:AMT 能够联网和读取你的所有文件;它对常见的刷机免疫,能够自修复;它本身不是绝对安全的,有 bug,有漏洞;你以为你用的是最安全的 Linux 发行版,实际上这个充满着漏洞的系统能够在你眼皮底下控制 Linux……

这一切,难道不会让你感到毛骨悚然吗?

既然英特尔不给关也不给钥匙,人们开始自己研究关门的方法。

首先,迁移平台不现实。x86 处理器只有英特尔和 AMD,而AMD 也有一个同类技术,叫做 PSP,全称 Platform Security Processor,逻辑不同,功能近似——一句话概括:没比英特尔强多少……

AMT 还真的很不好处理。它成为了 处理器「开机」的一个必经的固件,如果你完全去除掉 AMT,就等于去掉了「开机键」,处理器可能开不了机,或者无法正常工作。

但好在 AMT 固件里面有很多组件(如前述对应“小电脑”的不同功能),而这些组件大多数都是可以去掉的。GitHub 上有一个 me_cleaner 工具,可以去掉联网、驱动、键盘记录器等各种 Ring -3 上压根不该出现的东西。

你电脑的CPU里被藏了台“小电脑”,可怕的是你什么都做不了

用这个工具刷机后,AMT 的固件尺寸从几 MB 降低到了 300K 左右,删掉的东西之多可想而知……进一步,Google 的工程师还想去掉 Ring -2 上的一些同样功能太强、太底层,很容易作为漏洞被利用的固件。他们用自己编写的开源文件管理系统替代原来的系统,不但加快了开机时间,还增强了系统的整体稳定性。

在技术界崇尚开源的一个重要原因在于,开源意味着人们可以明白它的机制,在攻守中不断进步,长期来看更安全。然而,英特尔和 AMD 将它们各自最底层操作系统的代码奉若神明,实际上的防火性能却不如它们想象的好。

所以,解决这个问题有两种思路,要么去掉,要么开源。但问题是,这两种,都会对芯片厂商的商业模式带来根本性的颠覆……

不过好在现在这个“小电脑”的存在已经完全暴露,越来越多的人开始关注这个问题。今年 5 月,电子前线基金会 (EFF) 也向英特尔喊话了,要求它:

提供 AMT 功能组件的详细清晰说明文档,告知用户查阅组件的命令,提供控制这些功能的用户界面;

允许用户查看 AMT 的核心代码来确认漏洞;

提供关闭 AMT 的方式,允许用户刷入社区开源的 AMT 固件,等等。

但很遗憾,英特尔目前仍然无动于衷……尴尬的是这种情况大家只能默默接受。英特尔是世界上最大的芯片供应商,对 Google 这样的云计算巨头来说迁移平台的代价成本太高了,几乎不可能,只有英特尔能满足需求。一切过后,最根本的问题仍然没有解决。

本质上,留着 AMT 和 MINIX 就是留着后门。去掉才能彻底关闭它。这也是 Google 的工程师开始研究移除 AMT 组件的根本原因所在:如果英特尔可以在自己最关键的业务后台保留后门,保留一个具有巨大的潜在信息安全隐患的漏洞,却拒绝提供合理解释,也不配合客户的要求给出关门的方法,那么大家只能各自行动了……

现在,你已经对这个隐秘的终极操作系统有了一个基本的认识。还在跟别人争吵 Windows、macOS、Linux 到底哪个操作系统最高贵?省省吧……咱们大家都是 MINIX 的用户……[4]

以及,听没听说过 NSA 的「棱镜」计划?是不是一直不明白怎么实现的?怀疑到底有没有那么强大的大规模控制和监视技术?

现在,你还怀疑么?

(完)



本文作者:翟跃斌
本文转自雷锋网禁止二次转载, 原文链接
目录
相关文章
|
3月前
|
设计模式 uml
在电脑主机(MainFrame)中只需要按下主机的开机按钮(on()),即可调用其它硬件设备和软件的启动方法,如内存(Memory)的自检(check())、CPU的运行(run())、硬盘(Hard
该博客文章通过一个电脑主机启动的示例代码,展示了外观模式(Facade Pattern)的设计模式,其中主机(MainFrame)类通过调用内部硬件组件(如内存、CPU、硬盘)和操作系统的启动方法来实现开机流程,同时讨论了外观模式的优缺点。
|
5月前
|
存储 缓存
电脑组装和维修02----认识cpu
电脑组装和维修02----认识cpu
|
6月前
|
机器学习/深度学习 编解码 缓存
CPU型号分析避坑指南——2、游戏电脑与办公电脑CPU该如何选择
CPU型号分析避坑指南——2、游戏电脑与办公电脑CPU该如何选择
108 0
|
12月前
|
监控 调度 Python
电脑监控软件所含的CPU资源监控的代码(使用psutil库)
本文使用psutil库来获取CPU使用率、运行的进程、CPU温度、风扇速度和CPU核心的工作情况。这些信息可用于自定义电脑监控软件的CPU资源监控功能
557 1
我的电脑的cpu、cpu核数
我的电脑的cpu、cpu核数
137 0
|
JSON 数据可视化 定位技术
python数据可视化开发(3):使用psutil和socket模块获取电脑系统信息(Mac地址、IP地址、主机名、系统用户、硬盘、CPU、内存、网络)
python数据可视化开发(3):使用psutil和socket模块获取电脑系统信息(Mac地址、IP地址、主机名、系统用户、硬盘、CPU、内存、网络)
291 0
|
存储 弹性计算 运维
阿里云电脑无影云桌面收费标准(CPU内存/云盘/互联网带宽)
阿里云电脑无影云桌面收费标准(CPU内存/云盘/互联网带宽)阿里云无影云电脑配置具体价格表,无影云桌面4核8G企业办公型云电脑可以免费使用3个月,无影云电脑地域不同价格不同,无影云电脑价格是由云桌面配置、云盘价格、互联网访问带宽价格、AD Connector 价格、桌面组共用桌面session 价格等费用组成
1004 0
|
PHP 开发者
PHP是如何和电脑CPU交互的?底层原理是什么?
PHP是如何和电脑CPU交互的?底层原理是什么?
|
缓存
电脑硬件知识入门之CPU篇
电脑硬件知识入门之CPU篇
电脑硬件知识入门之CPU篇