1. IoT安全现状与威胁分析
大家好,我是你们这期课程的老朋友。今天咱们先不急着动手搭沙箱,得先把对手摸清楚。你想想看,一个连操作系统都精简到极致的传感器节点,凭什么能成为黑客的香饽饽?
我做了十几年安全,前五年主要跟PC和服务器打交道。后来转做IoT,第一次拿到一个智能灯泡的固件,用binwalk一解,好家伙,里面直接躺着一个硬编码的root密码。那一刻我就知道,这行水很深。
核心观点:IoT安全不是传统安全的子集,而是一个全新的战场。设备数量庞大、资源受限、碎片化严重,这三个特点决定了攻击面远比我们想象的要广。
1.1 IoT设备面临的主要安全威胁
威胁分很多种,但我习惯把它们归为三类:设备层、网络层和云端/应用层。咱们一个一个说。
1.1.1 设备层威胁
这是最容易被忽视的。设备本身跑在裸金属或者轻量级RTOS上,没有传统操作系统的隔离机制。
- 固件逆向与篡改:攻击者拿到固件,反汇编找漏洞。我在项目中遇到过,某款IP摄像头的固件没加密,直接用strings命令就能看到后台数据库连接字符串。
- 物理接口攻击:UART、JTAG、SPI这些调试接口没做保护。焊几根线,接上逻辑分析仪,就能dump出整个flash内容。
- 硬编码凭据:厂商为了方便,出厂设置一个万能密码。用户不改,攻击者直接登录。
- 不安全启动:没有签名校验,攻击者换一个恶意固件,设备就变成肉鸡了。
1.1.2 网络层威胁
IoT设备通常通过Wi-Fi、Zigbee、BLE、LoRa等协议联网。这些协议在设计之初,安全考虑往往不够周全。
- 中间人攻击:Wi-Fi网络不加密,或者使用WEP这种老古董协议。攻击者可以监听、篡改通信数据。
- 重放攻击:抓到一个合法的控制指令包,反复发送。我曾经帮一个智能门锁厂商做渗透测试,发现它的蓝牙指令没有时间戳和序列号,抓一次包就能无限次开门。
- 协议漏洞:Zigbee的密钥分发机制、BLE的配对过程,都有被攻破的先例。
1.1.3 云端/应用层威胁
设备把数据上传到云平台,用户通过手机App控制。这两端也是重灾区。
- API接口滥用:云端的REST API没有做身份验证或权限控制。攻击者可以直接调用接口,批量获取所有设备的数据。
- 移动App逆向:App里硬编码了云端的API Key或者Token。反编译一下,就能拿到。
- 数据泄露:传输过程不加密,或者云端存储的数据库没做脱敏处理。
避坑指南:我曾经接手过一个项目,厂商把所有精力都花在设备固件加固上,结果云端API连最基本的HTTPS都没用。攻击者直接在公共Wi-Fi上抓包,用户的视频流一览无余。记住,安全是木桶效应,短板决定整体水位。
1.2 常见攻击向量
攻击向量就是攻击者进入系统的路径。我整理了一个表格,方便大家对照。
| 攻击向量 | 目标层 | 典型手法 | 危害等级 |
|---|---|---|---|
| 固件提取与分析 | 设备层 | 通过UART/JTAG dump固件,使用binwalk、Ghidra逆向 | 高 |
| 网络嗅探与中间人 | 网络层 | ARP欺骗、DNS劫持、SSL剥离 | 高 |
| Web/API漏洞利用 | 云端层 | SQL注入、命令注入、越权访问 | 极高 |
| 物理侧信道攻击 | 设备层 | 功耗分析、电磁辐射分析、故障注入 | 中 |
| 供应链污染 | 全链路 | 在固件或SDK中植入后门 | 极高 |
| 僵尸网络感染 | 设备层 | 利用弱口令或已知漏洞植入恶意代码 | 极高 |
嗯,这里要注意,供应链污染是近几年最头疼的。你买的芯片或者模组,里面可能已经被人动了手脚。我有个朋友做智能家居网关,用了某款第三方Wi-Fi模组,结果模组固件里自带了一个反向shell。这事儿查了三个月才定位到源头。
1.3 恶意代码类型概述
IoT恶意代码跟PC上的病毒、木马不太一样。因为硬件架构不同(ARM、MIPS、RISC-V),指令集不同,所以恶意代码需要交叉编译。而且IoT设备通常没有显示器,所以恶意代码的目标很纯粹:控制设备、窃取数据、发起攻击。
1.3.1 僵尸网络(Botnet)
这是IoT领域最臭名昭著的恶意代码类型。Mirai就是典型代表。
- 感染方式:扫描公网上的Telnet/SSH端口,用弱口令字典暴力破解。
- 行为:感染后,设备变成僵尸节点,等待C2服务器下发指令。通常用于发起DDoS攻击。
- 变种:Mirai之后出现了大量变种,比如Satori、Reaper,它们开始利用漏洞传播,不再只靠弱口令。
个人经验:我在2016年Mirai爆发时,帮一个ISP做应急响应。他们一个机房里,超过2000台IP摄像头被感染。这些摄像头平时正常录像,但一到凌晨两点,就集体向一个游戏服务器发起SYN Flood。你想想看,2000个设备同时发包,带宽直接打满。后来我们写了个脚本,批量修改设备默认密码,才把问题压下去。
1.3.2 挖矿木马
IoT设备CPU性能虽然弱,但架不住数量多。攻击者把挖矿程序植入设备,利用设备的算力挖门罗币(Monero)这类CPU友好型加密货币。
- 感染方式:利用漏洞或弱口令上传挖矿二进制文件。
- 行为:CPU占用率飙升,设备发热严重,响应变慢。
- 隐蔽性:有些挖矿木马会伪装成系统进程,比如crond、kworker。
1.3.3 勒索软件
虽然IoT勒索软件不如PC上那么普遍,但已经出现了苗头。攻击者加密设备上的配置文件或存储数据,然后索要赎金。
- 目标:智能门锁、NAS设备、工业控制器。
- 危害:设备无法正常使用,数据丢失。
- 难点:IoT设备存储空间小,恢复难度大,很多用户选择直接换新设备。
1.3.4 信息窃取与后门
这类恶意代码比较安静,不搞破坏,只偷数据。
- 行为:监听网络流量、窃取摄像头视频流、读取传感器数据。
- 后门:在设备上开一个隐蔽端口,或者定期向C2服务器外传数据。
- 案例:某款智能音箱被植入后门,攻击者可以远程开启麦克风,监听用户对话。
1.4 知识体系总览
说了这么多,咱们用一张图把这一章的核心逻辑串起来。这张图也是后续课程的地图。
这张图把咱们今天讲的内容串起来了。从设备、网络、云端三个层面的威胁出发,引出对应的攻击向量,再落到具体的恶意代码类型。最后,所有这些恶意代码,都会成为我们后续沙箱分析的目标样本。
我个人习惯,每接手一个新项目,第一件事就是画这么一张图。把资产、威胁、攻击路径理清楚,后面做防护和分析才有方向。你想想看,如果连对手从哪里进来、用什么武器都不知道,那沙箱搭得再漂亮,也只是个空壳子。