8200 网络安全训练营

© 2025 8200 网络安全训练营

什么是SS7攻击以及如何保护自己

什么是SS7攻击以及如何保护自己

SS7攻击利用过时的电信协议漏洞来拦截短信、通话或追踪位置,这对于依赖短信进行身份验证的用户来说构成了风险。了解如何保护自己。
# 什么是 SS7 攻击?深入的技术探讨

信令系统7(SS7)是一套已经使用了数十年的电话信令协议,使全球电信网络能够交换呼叫建立、路由和控制信息。然而,随着网络的发展,针对它们的威胁也在不断演变。在本文中,我们将详细探讨 SS7 攻击——从 SS7 协议的基本原理,到现实世界中的利用案例、防护措施以及供那些希望了解这些攻击技术基础的技术代码示例。

本长篇指南适用于网络安全专业人士以及希望深入了解当今电信基础设施中最被低估的漏洞之一的爱好者。我们将涵盖基本概念、先进的利用技术以及带有实用代码示例和命令的缓解策略。

> **关键词:** SS7 攻击,信令系统7漏洞,电信安全,短信拦截,双因素认证 (2FA),网络安全,网络协议分析,Bash,Python

---

## 目录

1. [引言](#引言)
2. [SS7 概述](#ss7-概述)
   - [历史与目的](#历史与目的)
   - [SS7 的工作原理](#ss7-的工作原理)
3. [理解 SS7 攻击](#理解-ss7-攻击)
   - [常见的攻击途径](#常见的攻击途径)
   - [SS7 协议中的漏洞](#ss7-协议中的漏洞)
   - [现实案例](#现实案例)
4. [攻击场景与威胁模型](#攻击场景与威胁模型)
   - [拦截电话与短信](#拦截电话与短信)
   - [位置追踪](#位置追踪)
   - [拒绝服务攻击](#拒绝服务攻击)
5. [对双因素认证 (2FA) 的影响](#对双因素认证-2fa-的影响)
6. [防御措施与最佳实践](#防御措施与最佳实践)
   - [个人的缓解策略](#个人的缓解策略)
   - [运营商与企业的缓解策略](#运营商与企业的缓解策略)
7. [动手实例:扫描与分析](#动手实例扫描与分析)
   - [Bash 脚本示例](#bash-脚本示例)
   - [Python 脚本示例](#python-脚本示例)
8. [高级 SS7 攻击技术:模拟实验室演练](#高级-ss7-攻击技术-模拟实验室演练)
9. [未来电信安全的考虑](#未来电信安全的考虑)
10. [总结](#总结)
11. [参考资料](#参考资料)

---

## 引言

在过去的十年中,网络安全威胁经历了巨大的演变,利用了所有可用的数字基础设施。其中一个较为不为人知但日益危险的漏洞出现在 SS7 网络中。虽然 SS7 设计于数十年前,但它仍是现代电信系统的骨干。其过时的安全模型使其容易受到各种攻击,允许恶意攻击者拦截电话和短信、跟踪实时位置,甚至可能绕过双因素认证保护措施。

这篇博客文章将作为对 SS7 攻击的广泛技术概述,从基本原理入手,逐步扩展到高级利用技术。我们还将分享实用的代码示例(包括 Bash 和 Python),以展示如何在受控环境中对 SS7 活动的某些方面进行监控、分析及模拟。

---

## SS7 概述

### 历史与目的

SS7(信令系统7)在20世纪70年代被标准化,并成为全球电信信令的标准。最初的设计用于支持公共交换电话网络(PSTN)中的呼叫路由和计费流程,后来发展为支持诸如短信传输、漫游以及号码转换等多种功能。

其广泛采用部分原因在于其可靠性——SS7 确保无论电话始发地在哪里,呼叫和短信都能得到正确的路由。然而,长久的发展也伴随着风险。SS7 协议的许多组件设计时所考虑的主要威胁模型是意外配置错误,而非有意的网络攻击。

### SS7 的工作原理

从本质上讲,SS7 是一套供电信网络交换路由信息和管理网络服务的协议。其组件包括:

- **消息传输部分 (MTP):** 负责信令消息的可靠传输。
- **信令连接控制部分 (SCCP):** 提供额外的路由功能。
- **ISDN 用户部分 (ISUP):** 用于呼叫建立、管理和终止。
- **事务能力应用部分 (TCAP):** 管理与数据库(如归属位置寄存器)相关的查询和响应。

这些组件协同工作,从而实现了呼叫的建立、终止、短信路由和位置更新等任务。由于几乎所有电信运营商都使用 SS7,其设计中固有的漏洞可能带来全球性的影响。

---

## 理解 SS7 攻击

### 常见的攻击途径

SS7 攻击利用了该协议缺乏强大认证机制的弱点。一些常见的攻击途径包括:

- **电话与短信拦截:** 攻击者拦截或重定向本应发送到特定电话号码的通信。
- **位置追踪:** 由于 SS7 消息会向网络报告手机位置,攻击者可以跟踪用户的实时位置。
- **身份冒充:** 通过伪造信令消息,攻击者可以冒充合法的网络实体。
- **拒绝服务 (DoS):** 通过向信令网络发送大量欺诈或恶意消息,攻击者可能会中断正常服务。

### SS7 协议中的漏洞

1. **缺乏端到端认证:**  
   SS7 协议在设计时假设网络上的所有节点都是可信的。一旦获得网络节点的访问权限,攻击者便可以在没有适当验证的情况下注入恶意消息。

2. **弱加密实践:**  
   历史上,SS7 网络并没有采用强加密措施,使得信令数据易于被截获。

3. **全球互联性:**  
   SS7 网络在跨国界之间实现无缝互联,一个网络中的漏洞可能允许攻击者从任何国家访问其它网络中的数据。

### 现实案例

多个文献记录的漏洞利用案例展示了 SS7 攻击的后果:

- **金融交易中的短信拦截:**  
  许多金融机构依赖短信形式的双因素认证 (2FA) 来进行交易授权。在一些高调案例中,攻击者拦截了这些短信,从而未经授权地访问银行账户或实施欺诈性交易。

- **定位追踪用于定向攻击:**  
  在一个显著案例中,攻击者利用 SS7 漏洞追踪了一位高调目标的位置,从而使得对其进行实体监控和协调攻击成为可能。

- **流氓运营商员工:**  
  鉴于每个移动运营商都拥有对 SS7 的访问权限,出于恶意的内部人员可以操纵信令消息,实施电话号码劫持或服务中断攻击。

这些案例强调了 SS7 漏洞的严重性,表明个人和企业都需要意识到这些风险。

---

## 攻击场景与威胁模型

### 拦截电话与短信

SS7 攻击经常涉及针对特定电话号码拦截语音通话或短信。攻击者可以:

1. **重定向呼叫路由:**  
   通过发送伪造的 SS7 消息,攻击者可以更改呼叫的路由信息,将其从原定接收者转接到受控设备。

2. **短信拦截:**  
   类似地,攻击者可以请求将短信重新定向到他们控制的号码。这在短信用于发送 2FA 验证码时尤其危险,从而为攻击者绕过重要安全措施提供了途径。

### 位置追踪

利用 SS7 固有的功能(例如位置更新消息),攻击者可以:

1. **确定实时位置:**  
   SS7 网络会不断更新手机的位置以便于服务管理。通过访问这些更新信息,恶意攻击者可以推断出个人当前位置。

2. **绘制运动轨迹:**  
   随着时间的推移,攻击者可以追踪一个人的位置历史,揭示可以被用于定向钓鱼或实体攻击的模式。

### 拒绝服务攻击

攻击者还可以对移动网络发动拒绝服务攻击,通过:

1. **过载信令信道:**  
   发送大量恶意信令消息可能会导致合法通信延迟或丢失。
   
2. **服务中断:**  
   通过破坏信令消息,攻击者可能会暂时中断呼叫和短信的路由,导致网络可用性的大范围中断。

---

## 对双因素认证 (2FA) 的影响

### 短信双因素认证的弱点

许多组织,包括金融机构和大型科技公司(例如 Stripe),依赖短信双因素认证 (2FA)。虽然这种方法便捷,但在 SS7 攻击下存在显著漏洞:
  
- **验证码拦截:**  
  攻击者拦截含有认证验证码的短信,从而可以冒充用户进行操作。
  
- **账户劫持:**  
  一旦获得 2FA 验证码,攻击者能够绕过其它安全层级,未经授权地访问敏感账户或金融系统。

### 缓解短信漏洞的最佳实践

- **改用认证器应用:**  
  基于时间的一次性密码 (TOTP) 应用,例如 Google Authenticator 或 Authy,提供了更为安全的替代方案。
  
- **使用硬件安全密钥:**  
  像 YubiKey 这样的物理设备增加了一道免受 SS7 漏洞侵害的安全防线。
  
- **运营商层面的安全增强:**  
  网络运营商可以实施加强监控和异常检测系统,以标记可疑的 SS7 活动。

通过理解 SS7 攻击对基于短信的 2FA 的影响,用户和组织可以对其安全态势作出更明智的决策。

---

## 防御措施与最佳实践

由于 SS7 深深嵌入在传统系统中,因此缓解其漏洞具有一定挑战性。然而,有几种策略可以降低风险:

### 个人的缓解策略

1. **避免使用短信进行 2FA:**  
   在可能的情况下,禁用基于短信的双因素认证,转而采用如硬件令牌或认证器应用等更安全的替代方案。

2. **保持警觉:**  
   了解最新的 SS7 漏洞信息,并订阅来自可信来源的相关安全通告。

3. **定期检查账户:**  
   频繁审查账户活动,以发现可能表明未经授权访问的异常情况。

### 运营商与企业的缓解策略

1. **增强网络监控:**  
   实施异常检测系统,以追踪可能表明 SS7 攻击的不寻常信令模式。

2. **严格的访问控制:**  
   将对 SS7 网络元素的内部访问权限限制为仅限可信人员,并建立严格的审计记录。

3. **安全协议升级:**  
   虽然 SS7 本身已经过时,但运营商可以在其基础上增加额外的安全层(例如加密以及网络管理界面的双因素认证)。

4. **运营商之间的协作:**  
   鉴于 SS7 实现了全球互联,运营商必须在威胁情报共享和事件响应方面密切协作。

5. **研究与培训:**  
   定期参与网络安全培训和模拟演练,以确保团队为应对高级利用场景做好充分准备。

尽管这些措施可以降低风险,但必须理解 SS7 的基本设计本身就使其固有地易受攻击。长期解决方案可能需要对全球电信信令基础设施进行彻底改革。

---

## 动手实例:扫描与分析

对于希望深入了解 SS7 漏洞的安全专业人员来说,下面提供一些代码示例和扫描命令,模拟 SS7 交互和日志记录的部分流程。

### Bash 脚本示例

下面的 Bash 脚本模拟了扫描日志文件以寻找异常网络信令活动的过程。该示例代码仅用于教育目的——在未获得适当授权的情况下,请勿在生产环境中使用。

```bash
#!/bin/bash
# ss7_log_scanner.sh
# 该脚本扫描日志文件中是否存在可疑的 SS7 活动模式

LOG_FILE="/var/log/ss7_signaling.log"
SUSPICIOUS_PATTERNS=("UpdateLocation" "RouteInfo" "Refusal" "Redirect")

echo "启动 SS7 日志扫描..."
if [[ ! -f "$LOG_FILE" ]]; then
    echo "未找到日志文件: $LOG_FILE"
    exit 1
fi

while IFS= read -r line; do
    for pattern in "${SUSPICIOUS_PATTERNS[@]}"; do
        if echo "$line" | grep -q "$pattern"; then
            echo "检测到可疑活动: $line"
        fi
    done
done < "$LOG_FILE"

echo "扫描结束。"
说明:
  • 该脚本设置了日志文件路径,并定义了可疑的 SS7 信令模式。
  • 脚本逐行读取日志文件,以检测是否有与这些模式匹配的条目。
  • 检测到的可疑行将被打印出来供进一步检查。

Python 脚本示例

下面是一个 Python 脚本示例,用于解析 JSON 格式日志文件中的 SS7 信令消息。该示例演示了如何自动检测潜在 SS7 攻击的过程。

#!/usr/bin/env python3
import json
import sys

# 定义 SS7 信令消息中可疑的关键字
SUSPICIOUS_KEYS = ['UpdateLocation', 'Redirect', 'RouteInfo', 'UnauthorizedAccess']

def parse_log(file_path):
    try:
        with open(file_path, 'r') as f:
            data = json.load(f)
    except Exception as e:
        print(f"读取日志文件出错: {e}")
        sys.exit(1)

    suspicious_events = []
    for event in data:
        # 假设每个 event 是一个表示 SS7 消息的字典
        for key in SUSPICIOUS_KEYS:
            if key in event.get("message", ""):
                suspicious_events.append(event)
                break

    return suspicious_events

def main():
    if len(sys.argv) != 2:
        print("用法:python ss7_parser.py <日志文件路径>")
        sys.exit(1)
    
    log_file = sys.argv[1]
    events = parse_log(log_file)
    
    if events:
        print("检测到可疑 SS7 事件:")
        for event in events:
            print(json.dumps(event, indent=4))
    else:
        print("未检测到可疑事件。")

if __name__ == '__main__':
    main()
说明:
  • 该 Python 脚本要求输入一个 JSON 格式的日志文件。
  • 脚本在每个日志条目的 message 字段中搜索关键的 SS7 信令术语。
  • 检测到的可疑事件将以格式化的方式打印出来供检查。

这些示例可以扩展或改编成更复杂的监控方案。在实际场景中,将异常检测与 SIEM(安全信息与事件管理)系统整合,可以为电信网络提供自动化和可扩展的监控。


高级 SS7 攻击技术:模拟实验室演练

为了更深入地了解,网络安全专业人员可以通过模拟实验室来探索 SS7 攻击。下面是模拟实验室环境可能包含的内容:

  1. 实验室环境搭建:

    • 构建一个虚拟 SS7 网络环境,以模拟真实的电信基础设施。
    • 配置工具以在受控环境中生成合法和恶意的 SS7 信令消息。
  2. 模拟攻击:

    • 短信拦截模拟:
      攻击节点发送伪造的 SS7 消息,将含有 2FA 验证码的短信重定向到指定号码。
    • 位置追踪模拟:
      实验室中监控位置更新消息并绘制设备运动轨迹。
    • 拒绝服务模拟:
      发送大量信令消息以模拟 DoS 攻击,使参与者观察网络的响应和恢复过程。
  3. 实验室分析工具:

    • 配置有 SS7 分析器的抓包工具(如 Wireshark)。
    • 使用类似上述所示的定制脚本来解析信令日志。
    • 使用可视化仪表板来绘制流量异常和可疑模式。
  4. 学习成果:

    • 了解导致劫持的 SS7 消息序列。
    • 重现攻击场景,从而更好地设计防御机制。
    • 制定专门针对 SS7 攻击的应急响应计划。

尽管高级实验室需要大量的搭建工作,许多培训平台如今已提供专门面向电信安全的虚拟环境,为红队和蓝队成员提供宝贵的实战经验。


未来电信安全的考虑

随着我们逐步迈入5G及更高时代,传统 SS7 协议与新技术的融合带来了显著的安全挑战。以下是为使电信安全面向未来应考虑的因素:

  1. 向安全协议过渡:

    • 行业必须逐步过渡到设计时充分考虑现代网络安全的协议。
    • 在研究 5G 核心网络漏洞时,必须考虑与传统系统的潜在相互作用。
  2. 增强互操作性与协作:

    • 移动运营商与监管机构需要紧密合作,采取统一的安全措施和标准。
    • 通过电信公司之间的信息共享平台,可迅速发现并缓解新出现的威胁。
  3. 投资于安全运维:

    • 持续的安全监控、应急响应演练和培训将至关重要。
    • 引入基于机器学习的高级分析,有助于发现传统系统可能忽略的细微异常。
  4. 法规与合规:

    • 全球各地的监管机构已日益重视电信漏洞问题。
    • 更严格的指导方针和对运营商的强制安全要求,尽管在改造长期存在的协议时面临挑战,也能推动安全改进。
  5. 用户教育:

    • 最终,运营商层面的安全防护与终端用户教育相结合才是关键。
    • 应鼓励用户放弃脆弱的方法(如基于短信的 2FA),转而采用更稳健的认证方式。

总结

SS7 攻击对全球电信和整个网络安全构成了严重威胁。从拦截电话和短信,到跟踪实时位置,再到通过短信双因素认证实现未经授权访问,这些攻击的危害无处不在。了解 SS7 协议中存在的漏洞以及攻击者使用的实际技术,对于电信运营商和终端用户都至关重要。

尽管 SS7 协议多年来实现了无缝通信,但其固有的设计缺陷——主要是缺乏强有力的认证和加密措施——给攻击者留下了可乘之机。通过详细的说明、实践代码示例以及模拟实验室演练,本文旨在使网络安全专家具备理解和缓解 SS7 相关风险的必要知识。

总之,只要 SS7 仍然是电信基础设施的一个重要部分,增强对其漏洞的认知以及采取积极的安全措施都是不可或缺的。通过逐步淘汰基于短信的认证并实施多层安全防护策略,可以在行业致力于开发更安全的信令与通信替代方案的同时,降低相关风险。


参考资料

  1. 国际电信联盟(ITU)– SS7 概述:
    https://www.itu.int/en/ITU-T/ss7/Pages/default.aspx

  2. ETSI TS 101 220 – 信令系统7 (SS7) 消息传输部分:
    https://www.etsi.org/deliver/etsi_ts/101200_101299/101220/

  3. 维基百科 – 信令系统7:
    https://en.wikipedia.org/wiki/Signaling_System_No._7

  4. 美国国家标准与技术研究院(NIST)关于电信安全的特别出版物:
    https://www.nist.gov/publications/telecommunications-security

  5. Immersive Labs – 关于 SS7 利用的研讨会与实验室(模拟环境):
    https://www.immersivelabs.com

  6. SANS 研究院 – SS7 漏洞与攻击技术概述:
    https://www.sans.org/reading-room/whitepapers/telecom/ss7-hacking-passwords-37115


本文全面介绍了 SS7 攻击的技术基础——从基本信令协议功能到实践代码示例及模拟实验室环境。通过了解这些机制,防御者可以更好地保护网络并提高整体网络安全性。

🚀 准备好升级了吗?

将您的网络安全职业提升到新的水平

如果您觉得此内容有价值,请想象一下通过我们为期47周的综合精英培训计划,您可以取得怎样的成就。加入1,200多名学生,他们已通过8200部队的技术改变了职业生涯。

97% 就业率
精英8200部队技术
42个动手实践实验室