2. VoIP网络拓扑与威胁模型
大家好,我是老周。今天咱们聊聊VoIP网络长什么样,以及坏人能从哪些地方下手。
很多人觉得VoIP就是打个电话,能有什么安全问题?我刚开始接触这个领域时也这么想。直到有一次,我在客户现场看到他们的SIP服务器直接暴露在公网上,连个基本认证都没有……嗯,那场面,简直像把家门钥匙挂在门外。
2.1 典型VoIP网络架构
一个标准的VoIP网络,说白了就三样东西:终端、代理服务器、网关。我习惯把它们比作「电话机、总机、接线员」。
2.1.1 终端设备
终端就是用户手里的设备。常见的有:
- IP话机——最传统的SIP终端,直接连网线
- 软电话——手机或电脑上的App,比如Zoiper、Linphone
- ATA网关——把老式模拟话机转成IP信号的设备
我在项目中遇到过一家公司,全员用软电话,但WiFi密码是「12345678」。你想想看,攻击者只要连上WiFi,就能抓取所有通话的RTP流。这不是送人头吗?
2.1.2 代理服务器
SIP代理服务器是整个网络的大脑。它负责:
- 用户注册与认证
- 呼叫路由与转发
- 状态跟踪(谁在线、谁忙)
常见的开源方案有Asterisk、FreeSWITCH、Kamailio。商业方案有Cisco Unified Communications Manager、Avaya等。
2.1.3 网关
网关负责把SIP信令和RTP媒体流,转换成传统PSTN网络能懂的东西。说白了,就是VoIP世界和电话网之间的翻译官。
核心要点:网关往往是安全盲区。很多企业只关注服务器安全,却忘了网关也暴露在公网上。我曾经帮一家银行做渗透测试,发现他们的SIP网关居然允许匿名注册——任何人都能通过它打国际长途。
2.2 常见攻击面分析
攻击面,就是坏人能摸到的地方。我把它分成三个层面:信令层、媒体层、管理面。
2.2.1 信令层攻击
SIP信令是文本协议,说白了就是一堆HTTP风格的请求和响应。攻击者可以:
- SIP劫持——伪造REGISTER请求,冒充合法用户
- 中间人攻击——拦截并篡改INVITE请求,把通话转到自己的服务器
- 注册洪泛——发送大量REGISTER请求,耗尽服务器资源
⚠️ 避坑指南:我曾经遇到一个案例,攻击者通过ARP欺骗,在局域网内拦截了所有SIP流量。他修改了INVITE消息中的SDP部分,把RTP流指向自己的机器。结果呢?所有通话都被录音了,整整三个月没人发现。
2.2.2 媒体层攻击
媒体层主要处理RTP音频流。常见攻击包括:
- RTP注入——向通话中插入噪音或虚假音频
- RTP重放——录制一段对话,然后重新播放
- SRTP降级——强制让双方使用未加密的RTP
2.2.3 管理面攻击
这个最容易被忽视。很多VoIP服务器有Web管理界面,如果密码弱或者有漏洞,攻击者可以直接登录后台:
- 修改路由规则
- 导出通话记录
- 添加后门账号
2.3 攻击者能力假设
做安全,不能假设攻击者是傻子。我一般把攻击者分成三个等级:
| 等级 | 能力描述 | 典型场景 |
|---|---|---|
| L1 - 脚本小子 | 只会用现成工具,比如sipdump、sipcrack | 扫描公网上的SIP服务器,尝试弱口令 |
| L2 - 专业黑客 | 能编写自定义脚本,理解SIP协议细节 | 中间人攻击、SIP劫持、RTP注入 |
| L3 - 国家级 | 拥有零日漏洞、能攻破SRTP加密 | 针对特定目标的长期监听 |
我个人习惯按L2级别来设计防御。为什么?因为L1太弱,防住也没成就感;L3太强,普通企业根本扛不住。L2才是现实中真正会遇到的对手。
2.4 核心威胁模型图
下面这张图,是我自己总结的VoIP威胁模型。你看一眼就明白了:
💡 个人经验:我建议你在部署VoIP系统时,先画一张类似的拓扑图。把每个节点的攻击面标出来,然后逐个加固。这样做的好处是——你不会漏掉任何环节。我曾经见过一个团队,服务器加固得跟铁桶似的,结果网关暴露在公网上,被人家当跳板打国际长途,一个月话费多了十几万。
好了,这一章就到这里。记住一句话:VoIP安全不是单点防御,而是全链路防护。终端、服务器、网关,哪个环节出问题,整个系统都不安全。