SS7对上一个文章的拓展

SS7协议漏洞与GT号码深度分析

SS7协议架构的深度剖析

SS7协议是一个复杂的分层协议栈,每层都有特定功能:

  1. MTP层(消息传输部分)

    • MTP1:物理层,定义物理接口和电气特性
    • MTP2:数据链路层,提供可靠的点对点信息传输
    • MTP3:网络层,负责消息路由、流量管理和网络管理
  2. SCCP层(信令连接控制部分)

    • 提供扩展的寻址能力,特别是通过GT号码
    • 提供面向连接和无连接的服务
    • 支持全局标题转换(GTT)功能
  3. TCAP层(事务能力应用部分)

    • 支持非电路相关的远程操作
    • 提供请求/响应事务处理能力
    • 封装MAP、CAMEL等上层应用协议
  4. MAP层(移动应用部分)

    • 支持移动通信特有业务逻辑
    • 定义漫游、短信、位置更新等操作
    • 包含大量可能被滥用的操作码

GT号码结构与解析机制

GT号码不仅仅是一串数字,而是包含多个语义字段的结构化数据:

  1. 详细字段分解

    • 转换类型(TT):通常0-255,指示GT如何被解析
    • 编号方案(NP):识别号码类型(ISDN、数据网络等)
    • 编码方案(ES):指示号码如何编码(BCD、国家特定等)
    • 自然地址指示器(NAI):国际、国内、网络特定等
  2. GT号码的路由过程

    • 当SS7消息进入网络,首先由STP执行GTT
    • 查询路由表将GT号码转换为点码(PC)
    • 根据转换结果转发消息至下一跳
    • 可能经过多个STP节点的级联GTT过程
  3. GT号码命名规则

    • E.164格式:符合国际电话号码标准(如+86 10 12345678)
    • E.212格式:IMSI号码(如460 01 1234567890)
    • E.214格式:移动全局标题(MGT),用于HLR寻址

SS7漏洞利用技术深度分析

信令监听攻击详解

攻击者可通过以下方式实施信令监听:

  1. 获取SS7接入点

    • 通过合法运营商身份申请SS7连接
    • 利用弱配置的SIGTRAN(IP上的SS7)网关
    • 通过已被入侵的第三方SS7节点访问网络
  2. 监听流量

    • 配置网络接口为混杂模式
    • 使用信令分析工具(如Wireshark+SS7插件)捕获流量
    • 实时解析MAP、TCAP、SCCP等层消息
  3. 筛选目标信息

    • 根据IMSI、MSISDN等标识符过滤消息
    • 重点关注位置更新、认证等敏感操作
    • 提取呼叫建立、短信传递等信息

位置追踪的技术实现细节

位置追踪主要通过以下MAP操作实现:

  1. SendRoutingInfoForSM

    • 正常用途:用于短信投递定位接收方
    • 滥用方式:不实际发送短信,仅获取位置信息
    • 返回数据:包含IMSI及服务MSC地址
    • 攻击代码关键部分:
    // 构造目标MSISDN
    ISDNAddressString msisdn = mapParameterFactory.createISDNAddressString(
        AddressNature.international_number, 
        NumberingPlan.ISDN, 
        targetNumber);
    
    // 发送请求
    mapDialogSms.addSendRoutingInfoForSMRequest(
        msisdn,  // 目标手机号
        true,    // SM-RP-PRI标志
        null,    // 服务中心地址
        null,    // 额外参数
        null     // IMSI
    );
    
  2. AnyTimeInterrogation

    • 正常用途:用于预付费系统查询用户状态
    • 滥用方式:无条件查询用户精确位置
    • 返回数据:包含LAC(位置区码)和CI(小区标识)
    • 防护难点:大多数网络默认允许此操作
  3. ProvideSubscriberInfo

    • 正常用途:HLR向VLR请求用户状态
    • 滥用方式:伪装成HLR查询用户位置
    • 返回数据:包含IMEI、位置信息、用户状态
    • 实施条件:需要预先知道目标用户IMSI

呼叫/短信拦截技术详解

  1. UpdateLocation攻击

    • 攻击者伪装成新的VLR/MSC发送位置更新
    • HLR将用户记录更新为攻击者控制的"位置"
    • 所有呼叫和短信被路由至攻击者伪造的位置
    • 攻击代码关键部分:
    // 构造UpdateLocation请求
    IMSI imsi = mapParameterFactory.createIMSI(targetIMSI);
    ISDNAddressString mscNumber = mapParameterFactory.createISDNAddressString(
        AddressNature.international_number,
        NumberingPlan.ISDN,
        attackerMSCNumber);  // 攻击者控制的MSC号码
    
    // 发送请求
    mapDialogMobility.addUpdateLocationRequest(
        imsi,             // 目标IMSI
        mscNumber,        // 攻击者MSC号码
        null,             // VLR号码(可省略)
        null,             // LMSI
        null,             // 支持特性
        null,             // 网络类型
        null,             // VLR能力
        false,            // 通知支持
        null              // 额外参数
    );
    
  2. InsertSubscriberData操作滥用

    • 攻击者伪装成HLR向VLR发送ISD请求
    • 修改用户的服务配置(如呼叫转移设置)
    • 将呼叫或短信转发至攻击者控制的终端
    • 防护难点:VLR通常默认信任来自HLR的请求
  3. CancelLocation攻击

    • 伪装成HLR向当前VLR发送取消位置请求
    • 导致用户从网络中注销
    • 之后可结合UpdateLocation攻击劫持用户
    • 实施条件:需要知道目标用户当前服务VLR

SS7安全防护的深度技术方案

信令防火墙技术细节

现代SS7信令防火墙通常基于以下技术原理:

  1. 静态规则引擎

    • 基于源/目的地地址过滤(GT、PC、SSN)
    • 基于操作码(OpCode)过滤敏感操作
    • 基于消息类型和参数过滤异常请求
    • 配置示例:
    # 拒绝国际GT对本地用户的ATI请求
    RULE: {
      OPERATION: MAP_ATI,
      SOURCE: {GT_PREFIX: !^46},
      DESTINATION: {GT_PREFIX: ^46},
      ACTION: BLOCK
    }
    
  2. 行为分析引擎

    • 建立SS7信令流量基线
    • 检测异常操作模式(如过频ATI请求)
    • 识别不符合协议标准的消息序列
    • 实现示例:
    # 检测短时间内对同一用户的多次位置查询
    def detect_location_tracking(messages, threshold=5, timeframe=300):
        tracking_attempts = {}
        for msg in messages:
            if msg.operation in [MAP_SRI_SM, MAP_ATI, MAP_PSI]:
                target = msg.get_msisdn() or msg.get_imsi()
                if target not in tracking_attempts:
                    tracking_attempts[target] = []
                tracking_attempts[target].append(msg.timestamp)
        
        # 检测阈值
        for target, timestamps in tracking_attempts.items():
            recent_attempts = [t for t in timestamps 
                              if t > current_time - timeframe]
            if len(recent_attempts) > threshold:
                raise_alarm(f"可能的位置追踪攻击: {target}")
    
  3. 深度包检测

    • 解析完整的TCAP/MAP消息结构
    • 验证消息内容与控制字段一致性
    • 检测参数篡改和协议违规

端到端加密解决方案

为防止SS7漏洞导致的隐私泄露,可实施的端到端加密方案:

  1. 信令层加密

    • 使用MAP层安全扩展(MAP-SE)
    • 实施TCAP密码机制
    • 在边界网关间建立IPsec隧道
    • 部署示例:
    # IPsec配置示例(简化)
    conn ss7-peer1
        authby=secret
        left=192.0.2.1
        leftid=@operator-a
        leftprotoport=sctp/2905
        right=203.0.113.5
        rightid=@operator-b
        rightprotoport=sctp/2905
        ike=aes256-sha2;modp2048
        esp=aes256-sha2
        auto=start
    
  2. 应用层加密

    • 对关键用户数据使用端到端加密
    • 使用加密SIM卡增强认证安全
    • 部署加密短信和加密语音服务

实践案例分析

案例1:大规模位置跟踪攻击

2014年一个研究团队演示了如何利用SS7漏洞跟踪全球多个国家的移动用户位置。他们的技术流程是:

  1. 获取SS7网络接入点(通过第三方信令服务提供商)
  2. 开发一个使用MAP_SEND_ROUTING_INFO_FOR_SM请求的自动化系统
  3. 向多个国家的运营商发送请求,测试防护水平
  4. 成功从80%以上的测试网络获取位置信息
  5. 通过每30分钟发送一次请求,实现连续位置跟踪

该研究突显了几个关键问题:

  • 大多数运营商没有针对此类请求的限制
  • 缺乏对国际GT号码的有效过滤
  • 没有检测频繁位置查询的异常检测机制

案例2:银行短信拦截攻击

2017年,一组犯罪分子利用SS7漏洞配合社会工程学攻击窃取银行账户资金:

  1. 首先通过网络钓鱼获取受害者银行凭证
  2. 利用SS7漏洞发送MAP_INSERT_SUBSCRIBER_DATA请求
  3. 修改受害者短信中心地址(SMSC)为攻击者控制的号码
  4. 执行银行转账,拦截含有二次验证码的短信
  5. 使用拦截的验证码完成转账

这一案例表明:

  • SS7漏洞与传统网络攻击结合威力巨大
  • 多因素认证若依赖SMS可被绕过
  • 需要多层防护而非单一安全措施

GT号码的滥用技术

攻击者滥用GT号码的方法包括:

  1. GT号码伪造

    • 使用可配置的SS7栈(如jSS7)动态修改源GT
    • 伪装成受信任实体(如HLR、SMSC等)
    • 示例代码:
    // 创建伪造的HLR GT
    GlobalTitle fakeHlrGt = sccpProvider.getParameterFactory()
        .createGlobalTitle(
            "46123456",  // 伪造的HLR号码
            0,           // 转换类型
            NumberingPlan.ISDN_TELEPHONY,
            null,
            NatureOfAddress.INTERNATIONAL
        );
    
    // 使用伪造GT作为源地址
    SccpAddress callingParty = sccpProvider.getParameterFactory()
        .createSccpAddress(
            RoutingIndicator.ROUTING_BASED_ON_GLOBAL_TITLE,
            fakeHlrGt,
            6,  // HLR子系统号
            0
        );
    
  2. GT路由操纵

    • 利用多个SS7网络间的路由信任关系
    • 通过中间网络隐藏攻击实际来源
    • 使用双重GT转换混淆攻击来源
  3. GT号码扫描

    • 系统性枚举可能的GT号码范围
    • 发送测试消息确定活跃的网元
    • 构建目标网络的拓扑图

防御SS7漏洞的最佳实践

运营商层面的细化防护措施

  1. 信令过滤策略优化

    • 实施分层过滤架构(网络边界、核心网等)
    • 为不同信令关系定制不同安全策略
    • 基于业务需求精细配置允许的操作
    • 配置示例:
    # 仅允许特定伙伴操作特定MAP服务
    PARTNER: Operator-A
    ALLOWED_OPERATIONS: 
      - MAP_SRI_SM  # 允许短信路由
      - MAP_SRI     # 允许呼叫路由
    DENIED_OPERATIONS:
      - MAP_ATI     # 禁止位置查询
      - MAP_UL      # 禁止位置更新
      - MAP_ISD     # 禁止插入用户数据
    
  2. 异常检测与响应

    • 部署实时监控系统对SS7流量进行分析
    • 建立正常业务流量基线模型
    • 检测异常的信令交互模式和频率
    • 实施自动响应机制(限流、阻断等)
    • 示例检测规则:
    # 检测短时间内对同一IMSI的多次位置更新请求
    RULE: {
      PATTERN: {
        OPERATION: MAP_UPDATE_LOCATION,
        COUNT: >3,
        TIMEFRAME: 60s,
        GROUP_BY: "imsi"
      },
      ACTION: BLOCK_TEMPORARY,
      BLOCK_DURATION: 300s,
      ALERT_LEVEL: HIGH
    }
    
  3. 边界STP加固

    • 实施严格的GTT表管理和审计
    • 限制国际网关的信令类型和目标范围
    • 对敏感操作实施双向认证

应用层防护措施

  1. 端到端加密通信

    • 推广Signal Protocol等端到端加密技术
    • 不依赖运营商基础设施的安全保障
    • 实现真正的端到端加密保护
  2. 位置隐私保护

    • 使用VPN隐藏真实网络标识
    • 减少位置服务使用,定期清除位置数据
    • 使用虚拟号码服务隔离真实身份
  3. 多渠道验证

    • 银行等敏感服务不应仅依赖SMS验证
    • 使用应用内推送、硬件令牌等替代方案
    • 实施基于风险的自适应认证策略

新一代移动网络的安全改进

5G网络在安全设计上有显著改进,特别是:

  1. 改进的认证架构

    • 5G-AKA认证框架加强网络互认证
    • 基于公钥基础设施(PKI)的网元认证
    • 支持端到端加密的网络切片隔离
  2. Diameter协议改进

    • 取代SS7的Diameter协议支持TLS/IPsec
    • 强制要求网元间的双向认证
    • 支持加密和完整性保护的信令传输
  3. 零信任安全模型

    • 不再假设核心网内部实体完全可信
    • 每次交互均需认证和授权
    • 最小权限原则限制敏感操作访问
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值