联想在其笔记本电脑中隐藏了不可移除的软件,不幸的是,这个软件造成了很大的安全隐患。
如果这个“垃圾”软件从操作系统中被删除,不管是完全重装操作系统还是格式化硬盘,电脑的固件还是会悄悄地自动地在下次电脑启动时重新安装到系统中。
内置在电脑主板固件上的是一段名为“联想服务引擎”(LSE)的代码,如果操作系统重装,LSE就会在下次启动时,在Windows系统启动前执行。
LSE会确保C:\Windows\system32\autochk.exe是联想autochk.exe文件的变体,如果是微软的官方版本,它就会将其移除并取而代之。在系统启动时,还会检测文件系统以确定自身没有被破坏。
它还能保证联想的更新程序 LenovoUpdate.exe和LenovoCheck.exe位于system32目录下,否则就会在下次启动中把这两个程序复制进去。如果手动将其删除或卸载,下次系统启动后它又会通过固件中的代码不请自来。
LenovoUpdate.exe和LenovoCheck.exe在系统启动时会以管理员权限自动启动,并自动连接互联网下载和安装驱动程序。美其名曰:优化器,实际上它可以在计算机上做任何事情。
LSE利用微软Windows平台二进制表(WPBT)来达到自身的目的。WPBT允许PC生产商从主板固件将驱动、程序和其他文件插入操作系统。
WPBT存储在固件中,它告诉Windows内存何处可以找到可执行程序运行,并负责文件的安装,而这一切都在操作系统启动之前。
微软的官方文档这样写道:
在操作系统安装过程中,Windows会读取WPBT来获得平台二进制的物理内存地址。
“在操作系统安装过程中,二进制代码必须为本机,并且是用户模式的应用才会被Windows会话管理器执行。Windows会在磁盘上写入一个平面镜像,而会话管理器则会启动这些进程。”
WPBT的文档强调:
WPBT最初目的是使得一些关键的系统软件得以保留,即使在操作系统被改变或是以“干净”的配置重新安全装的情况下……因为这个功能提供在Windows环境下持久执行系统软件的能力在Windows系统配置中被强行保留的能力。基于WPBT的解决方案要做到安全最大化,避免Windows用户处于被利用的环境下,因此这种能力是至关重要的。
但这是安全最大化么?显然不是。安全研究人员Roel Schouwenberg发现并报告了一个LSE中的缓冲溢出漏洞,利用这个漏洞可以入侵低权限的系统软件并获得管理员权限。
当获悉这个漏洞时,联想认为在使用WPBT的强大功能上,其LSE和微软的安全指南有冲突,并决定将LSE从新的笔记本电脑中彻底移除。
联想还从新型的桌面计算机中移除了LSE,这些桌面计算机会回传主系统数据但是不会下载或安装额外的软件。
下面是受影响的台式和笔记本电脑型号的名单,它们都预置了Windows7或者Windows8.x操作系统。通过这个名单可以看出,53款型号的设备均含有此漏洞,但Think系列的PC并没有安装LSE。
Lenovo Notebook
• Flex 2 Pro 15 (Broadwell)
• Flex 2 Pro 15 (Haswell)
• Flex 3 1120
• Flex 3 1470/1570
• G40-80/G50-80/G50-80 Touch
• S41-70/U41-70
• S435/M40-35
• V3000
• Y40-80
• Yoga 3 11
• Yoga 3 14
• Z41-70/Z51-70
• Z70-80/G70-80
Lenovo Desktop
World Wide
• A540/A740
• B4030
• B5030
• B5035
• B750
• H3000
• H3050
• H5000
• H5050
• H5055
• Horizon 2 27
• Horizon 2e(Yoga Home 500)
• Horizon 2S
• C260
• C2005
• C2030
• C4005
• C4030
• C5030
• X310(A78)
• X315(B85)
Lenovo Desktop
China Only
• D3000
• D5050
• D5055
• F5000
• F5050
• F5055
• G5000
• G5050
• G5055
• YT A5700k
• YT A7700k
• YT M2620n
• YT M5310n
• YT M5790n
• YT M7100n
• YT S4005
• YT S4030
• YT S4040
• YT S5030
移除工具地址:http://support.lenovo.com/nz/en/downloads/ds104370