
在今天快速变化的数字环境中,许多组织和个人仍依赖旧硬件进行关键操作。尽管使用遗留系统看似具有成本效益或便利,但它带来了严重的安全风险,这些风险常常被低估。这篇长篇技术博客将探讨旧硬件如何对您的网络安全姿态引入新威胁——包括硬件后门、默认凭据、无法修补的漏洞以及现实世界的攻击技术。我们还将提供实用的扫描命令和代码示例,用于检测环境中的风险硬件,使其对初学者和高级用户都有用。
组织通常继续使用超过预期使用寿命的遗留服务器、路由器、台式机、嵌入式设备或消费电子产品。理由包括“如果没有坏,就不用修”的心态、预算限制或与旧软件兼容的需求。
然而,旧硬件成为安全负担由于:
旧硬件的架构、固件和嵌入式安全性很少能与今天的攻击环境相匹配。这使得威胁行为者能够以传统软件安全防御无法检测到的方式利用漏洞。
硬件后门是一种设备物理设计中的有意或意外缺陷,允许绕过安全机制。与基于软件的恶意软件不同,硬件后门可以在制造阶段、供应链或固件阶段插入,极难检测或修复,除非更换物理组件。
后门可能存在于:
安全研究员 Jonathan Brossard 展示了一个基于硬件的后门(Rakshasa),该后门更换系统 BIOS/UEFI 为受损固件,实现隐秘持久性。安装后,恶意软件可以:
2018 年,彭博社报道称,中国供应链篡改据称在 Supermicro 主板中插入恶意芯片,可能启用远程后门访问。尽管仍有争议,但这些揭露显示全球供应链风险。
今天,来自 Intel 和 AMD 的顶级 CPU 集成了低级管理引擎,如 Intel Management Engine (IME) 和 AMD Platform Security Processor (PSP):
正如 r/privacy subreddit 中所讨论的:
现代 Intel 和 AMD 处理器允许通过硬件进行远程访问,并具有允许远程关闭开关的最深级别权限...
Brossard 提出的 Rakshasa 以以下特性著称:
技术概要来自 Hacker News 文章:
"……后门允许攻击者随时远程访问受感染的系统,甚至在系统彻底清除后重新安装恶意软件。"
Jonathan Brossard 的 Rakshasa BIOS 后门 - 演示幻灯片
遗留硬件(路由器、打印机、摄像机、物联网和工业设备)通常附带:
攻击者频繁扫描这些暴露的设备。如 Shodan 这样的搜索引擎可以找到开放 telnet/SSH/http 管理端口的连接设备,任何人都能使用默认凭据登录并获得控制权。
固件通常:
旧固件中的漏洞可以让攻击者轻松掌控全部设备,而供应商通常缺乏这些设备的升级路径。
当硬件达到“寿命终止”时,供应商停止支持:
攻击者可以开发公开漏洞(无处可藏),因为设备无法修复。
2018 年披露的 Meltdown 和 Spectre CPU 漏洞显示基础硬件设计如何引入普遍风险。这些漏洞允许攻击者:
对一些芯片的补丁根本不可行,尤其是对于缺乏微码更新机制的旧处理器。旧设备仍然永久可被攻击。
其他无法修补的缺陷:
识别硬件并检查供应商、型号和固件版本:
sudo dmidecode | less
列出 PCI/USB 设备,包括网络控制器:
lspci
lsusb
枚举 CPU 支持并发现微码年龄:
cat /proc/cpuinfo
dmesg | grep microcode
查询当前 BIOS/UEFI 版本:
sudo dmidecode -t bios
定位网络上可能具有默认凭据或过时固件的所有设备:
nmap -sV 192.168.1.0/24
扫描常见默认凭据端口(http/telnet/ssh):
nmap -p 22,23,80,443,8080 192.168.1.0/24
curl 和 wget):curl -s http://<device-ip>/ | grep -i firmware
#!/bin/bash
echo "收集 BIOS 信息..."
sudo dmidecode -t bios | grep -E 'Vendor|Version|Release Date'
echo "检测 CPU..."
cat /proc/cpuinfo | grep -E 'model name|flags' | uniq
import nmap
nm = nmap.PortScanner()
nm.scan('192.168.1.0/24', arguments='-sV -p 22,23,80,443,8080')
for host in nm.all_hosts():
print("Host : %s" % host)
for proto in nm[host].all_protocols():
print("Protocol : %s" % proto)
ports = nm[host][proto].keys()
for port in ports:
service = nm[host][proto][port]['product']
version = nm[host][proto][port]['version']
print("Port : %s\tService: %s\tVersion: %s" % (port, service, version))
在已识别的设备上,使用 hydra 检查默认凭据:
hydra -L users.txt -P passwords.txt <device-ip> http-get
警告: 仅用于您拥有或经授权测试的设备!
正如我们所探讨的,旧硬件不仅是性能瓶颈——它还是一个安全火药桶。从硬件后门、默认凭据和无法修补的漏洞,到现代和遗留的攻击现实,过时设备在最深层次上破坏您的安全态势。利用这些弱点的攻击不再是理论上的;它们已经是重大战极和持久威胁的根源。
行动步骤:
通过主动管理,您可以最大限度减少过时技术带来的风险,并防御经典和现代硬件相关威胁。
通过了解和解决过时硬件的安全风险,您不仅在保护您的基础设施——还在帮助保障更广泛的数字生态系统。