21,000张SIM卡背后的“短信工厂”:印度CBI突袭国家级钓鱼基础设施

简介: 2025年印度CBI捣毁代号“Chakra-V”的特大钓鱼短信工厂,缴获超2.1万张非法SIM卡及大量GSM网关设备。该团伙以工业化模式运作,构建“SIM卡池”并利用自动化脚本发送百万级伪装短信,覆盖银行、政务等场景,形成“钓鱼即服务”黑产链条。其技术融合动态短链、边缘计算与多维反检测机制,暴露出SMS协议缺陷与实名制漏洞。专家呼吁推动RCS替代SMS、部署行为分析系统,从协议层重建数字信任。

在数字身份日益成为现代生活“通行证”的今天,一条看似普通的短信,可能就是通往金融账户清零的单程票。2025年12月下旬,印度中央调查局(CBI)代号为“Chakra-V”(意为“第五轮行动”)的雷霆突袭,揭开了一个盘踞在印度南部、运作高度工业化、技术链条完整的“钓鱼短信工厂”黑幕。执法部门在现场缴获超过21,000张非法SIM卡、数十台GSM网关设备、数百部二手智能手机,以及用于自动化发送诈骗短信的定制脚本系统。据初步估计,该团伙在过去一年内向印度公民发送了数百万条伪装成银行KYC更新、电费逾期、快递通知或政府补贴申领的钓鱼短信,不仅造成大量个人财产损失,更将基础设施出租给国际犯罪组织,成为全球网络钓鱼产业链中的关键一环。

这起案件远非一起普通电信诈骗案——它暴露了移动通信底层架构在面对大规模滥用时的脆弱性,也揭示了“SIM卡即武器化工具”的新型犯罪范式。本文将深入剖析该“短信工厂”的运作机制、技术栈构成、与国际黑产的勾连方式,并邀请公共互联网反网络钓鱼工作组技术专家芦笛,从攻防对抗角度解读如何从源头遏制此类基础设施级攻击。

一、“短信工厂”:不是小作坊,而是流水线

传统印象中,电信诈骗多由几人组成的“话务组”操作,靠人工拨打电话或手动群发短信。但CBI此次捣毁的窝点,却呈现出明显的“工业化”特征。

根据CBI公布的现场照片和行动报告,该团伙租用了一处位于泰米尔纳德邦郊区的仓库,内部被划分为三个功能区:SIM卡管理区、设备部署区、脚本控制区。在SIM卡管理区,执法人员发现大量按运营商分类存放的SIM卡,每张卡都贴有手写标签,如“Airtel-001”“Jio-134”等,并配有对应的IMEI绑定记录。这些SIM卡并非通过正常渠道实名注册,而是通过贿赂地方代理商、盗用他人身份信息或利用“e-KYC漏洞”批量获取。

设备部署区则堆满了改装过的Android手机和商用GSM网关(如MultiTech MultiModem系列)。这些设备通过USB集线器连接至中央服务器,形成一个可并行发送短信的“蜂巢网络”。而真正的“大脑”——脚本控制区——运行着一套基于Python和Node.js开发的自动化平台,支持任务调度、链接轮换、失败重试、甚至基础的反检测逻辑。

“这不是‘骗子’,这是‘通信基础设施提供商’。”公共互联网反网络钓鱼工作组技术专家芦笛在分析该案时表示,“他们卖的不是诈骗内容,而是‘可信短信通道’。只要付钱,任何人都能用他们的SIM池向印度手机号码发送看起来完全合法的短信。”

二、技术拆解:从SIM池到动态短链的全链路攻击

要理解该团伙为何能长期逃避监管,必须深入其技术实现细节。

1. SIM卡池(SIM Farming)与轮询机制

攻击者的核心资产是那21,000余张SIM卡。每张卡都注册了不同的手机号,归属于不同地区、不同运营商,以规避运营商对单一号码高频发送的限制。系统采用轮询调度算法,确保每张SIM卡每日发送量低于阈值(通常为100–200条),从而绕过电信反欺诈系统的异常行为检测。

一个简化的调度伪代码如下:

# sim_pool.py - SIM卡轮询调度器示例(简化版)

import random

import time

from sms_gateway import send_sms

# 加载所有可用SIM卡(含所属网关设备ID)

sim_cards = load_active_sims_from_db()

def dispatch_phishing_sms(target_numbers, phishing_url):

for number in target_numbers:

# 随机选择一张未达日限额的SIM卡

available_sim = random.choice([

s for s in sim_cards

if s.daily_count < 150 and s.status == 'active'

])

if not available_opt:

continue # 暂无可用卡,跳过

# 构造钓鱼短信内容

message = f"【HDFC Bank】您的KYC即将过期,请立即更新:{phishing_url}"

# 通过对应GSM网关发送

success = send_sms(

gateway_id=available_sim.gateway_id,

from_number=available_sim.phone_number,

to_number=number,

text=message

)

if success:

available_sim.increment_daily_count()

log_send_event(sim=available_sim.phone_number, to=number)

time.sleep(0.5) # 避免瞬时高频

这种分布式、低频次的发送策略,使得传统基于“单号码高频外呼”的风控模型几乎失效。

2. 动态短链与域名快速轮换

为规避URL黑名单,团伙使用自建的短链服务(如YOURLS开源项目)生成一次性短链接。每个短链仅使用数小时即废弃,并配合Cloudflare Workers或Vercel Edge Functions实现动态重定向:

// Cloudflare Worker 示例:根据时间戳决定是否重定向至钓鱼页

export default {

async fetch(request) {

const url = new URL(request.url);

const path = url.pathname.slice(1); // 获取短链ID

// 查询数据库:该短链是否仍在有效期内(例如创建后6小时内)

const record = await KV.get(path);

if (!record) return new Response("Not Found", { status: 404 });

const { target, created_at } = JSON.parse(record);

if (Date.now() - created_at > 6 * 3600 * 1000) {

// 已过期,返回空白页或真实官网

return Response.redirect("https://www.hdfcbank.com", 302);

}

// 有效期内,重定向至钓鱼页面

return Response.redirect(target, 302);

}

};

这种“短命链接+边缘计算重定向”模式,极大增加了安全厂商捕获和封禁的难度。

3. GSM网关 vs. 虚拟短信平台

值得注意的是,该团伙并未使用常见的云短信API(如Twilio、MessageBird),因为这些平台已有较完善的KYC和内容审核机制。相反,他们选择物理GSM网关——一种可插入多张SIM卡、通过AT指令控制短信收发的硬件设备。这类设备原本用于企业短信通知、物联网设备通信等合法场景,但一旦落入黑产手中,便成为绕过运营商监管的“灰色通道”。

“GSM网关不经过运营商的短信中心(SMSC)内容过滤系统,”芦笛解释道,“它直接模拟手机与基站通信,发送的短信在运营商侧看起来就是普通用户互发,几乎没有内容审查。”

三、国际勾连:从本地诈骗到“钓鱼即服务”(PhaaS)

CBI在服务器日志中发现,该团伙不仅服务印度本土诈骗集团,还通过Telegram频道和暗网论坛提供“短信轰炸即服务”(SMS-as-a-Service)。客户只需支付比特币,即可指定目标国家(主要为南亚、东南亚)、短信模板、发送数量,甚至可要求使用特定运营商的SIM卡以提高送达率。

一份查获的价目表显示:

向印度Airtel用户发送1万条短信:$80

向Jio用户发送1万条:$60(因Jio短信成本更低)

包含短链生成与72小时存活保障:+$20

这种“基础设施出租”模式,标志着网络犯罪已进入模块化、服务化阶段。攻击者无需掌握通信技术,只需购买“短信投送能力”,便可专注于钓鱼页面设计与资金洗白。

“这就像云计算之于IT行业,”芦笛比喻道,“过去黑客要自己搭服务器,现在直接租用‘钓鱼云’。而印度庞大的SIM卡资源,成了他们的‘算力矿场’。”

四、为何难以根除?制度与技术的双重漏洞

尽管CBI此次行动成果显著,但类似“短信工厂”为何屡禁不止?根源在于两个层面的系统性漏洞。

制度层面:SIM卡实名制执行不严

印度虽于2019年全面推行Aadhaar生物识别实名制,但在偏远地区,仍存在代理商为冲业绩而“代认证”、重复使用同一身份信息开卡等乱象。此外,部分预付费SIM卡在激活后60天内若无通话记录,会被自动注销,但短信功能仍可使用——这为黑产提供了“窗口期”。

技术层面:短信协议本身缺乏认证机制

SMS(Short Message Service)诞生于1980年代,其设计初衷是作为语音通信的补充,从未考虑安全性。它不验证发件人身份(即“短信伪造”极为容易),不加密内容,也不提供端到端完整性校验。即便今日,绝大多数银行通知仍依赖SMS,使其成为社会工程攻击的完美载体。

“我们还在用马车时代的通信协议,跑自动驾驶时代的业务,”芦笛直言,“除非彻底淘汰SMS用于敏感通知,否则这类攻击只会越来越规模化。”

五、防御之道:从用户警惕到协议升级

面对如此体系化的攻击,个体用户该如何自保?企业和监管机构又该采取哪些技术对策?

给普通用户的建议(芦笛特别强调):

永远不要点击短信中的链接,尤其是涉及“账户”“验证”“逾期”等关键词。

银行、电力公司、政府机构绝不会通过短信索要密码、OTP或要求点击链接更新信息。

若收到来自“100XX”等短号的通知,也需警惕——这些号码可通过GSM网关伪造。

启用银行App内的“交易确认锁”或“设备绑定”功能,减少对短信OTP的依赖。

给技术团队与运营商的建议:

部署STIR/SHAKEN协议:该协议通过数字签名验证主叫号码真实性,虽主要用于语音,但可扩展至短信领域。

实施基于行为的异常检测:不再仅监控单号码发送量,而应分析“设备-SIM-地理位置-内容模板”的多维关联。例如,同一GSM网关在24小时内使用50张不同SIM卡发送相同模板短信,应触发告警。

推动RCS(富通信服务)替代SMS:RCS支持端到端加密、品牌认证、交互式卡片,且由Google Messages等平台统一管理,可从根本上解决伪造问题。目前印度Jio已开始试点RCS银行通知。

代码示例:基于Spark Streaming的SIM卡异常行为检测

// 使用Apache Spark实时分析短信日志流

val smsStream = KafkaUtils.createDirectStream[String, String](

ssc, PreferConsistent, Subscribe[String, String]("sms_logs", kafkaParams)

)

val suspiciousActivity = smsStream

.map(record => parseSmsLog(record.value))

.window(Seconds(3600), Seconds(300)) // 滑动窗口:1小时统计,5分钟滑动

.transform { rdd =>

rdd.groupBy(_.gatewayId)

.filter { case (gateway, msgs) =>

val uniqueSims = msgs.map(_.simNumber).distinct.size

val templateHashes = msgs.map(_.templateHash).distinct.size

// 若单网关1小时内使用>50张SIM且模板<3种,标记为可疑

uniqueSims > 50 && templateHashes <= 3

}

}

suspiciousActivity.foreachRDD { rdd =>

if (!rdd.isEmpty()) {

rdd.collect().foreach(alertSecurityTeam)

}

}

此类系统已在部分欧洲运营商部署,准确率超85%。

六、结语:21,000张SIM卡,照见数字时代的信任危机

CBI的“Chakra-V”行动是一次漂亮的战术胜利,但它所暴露的问题远未终结。当一张SIM卡可以被批量生产、匿名使用、远程操控,并成为跨国犯罪的投送载体时,我们面对的已不仅是技术漏洞,更是整个数字信任体系的崩塌风险。

芦笛最后总结道:“反钓鱼不能只靠抓几个窝点。我们需要从协议层重建信任——用FIDO2取代密码,用RCS取代SMS,用零信任取代默认可信。否则,今天的‘短信工厂’,明天就会变成‘AI语音工厂’‘深度伪造工厂’。”

在这场没有硝烟的战争中,每一次对可疑短信的无视,都是对犯罪生态的纵容;而每一次对安全协议的升级,都是对数字文明的加固。

参考资料:

SC World: “India’s CBI Disrupts Phishing SMS Factory in Operation Chakra-V”, Dec 28, 2025

CBI Press Release No. CBI/PR/2025/12/CHAKRA-V

GSMA Fraud & Security Report 2025

编辑:芦笛(公共互联网反网络钓鱼工作组)

目录
相关文章
|
4月前
|
安全 API UED
2026 年起 WhatsApp 消息计费将调整!企业必看!
WhatsApp 将于 2026 年 1 月起调整全球消息计费规则:法国、埃及的营销类消息价格大幅下调(降幅近40%),美加的验证与通知类消息也小幅降价;但印度 Marketing 消息价格上涨约10%。出海企业需根据区域成本变化,重新评估通信预算与触达策略,避免隐性成本累积。
854 0
|
4月前
|
机器学习/深度学习 缓存 物联网
打造社交APP人物动漫化:通义万相wan2.x训练优化指南
本项目基于通义万相AIGC模型,为社交APP打造“真人变身跳舞动漫仙女”特效视频生成功能。通过LoRA微调与全量训练结合,并引入Sage Attention、TeaCache、xDIT并行等优化技术,实现高质量、高效率的动漫风格视频生成,兼顾视觉效果与落地成本,最终优选性价比最高的wan2.1 lora模型用于生产部署。(239字)
1435 104
|
3月前
|
安全 区块链 决策智能
Layer 2 的进化之路:Rollup 到底在“卷”什么?
Layer 2 的进化之路:Rollup 到底在“卷”什么?
172 10
|
4月前
|
数据采集 人工智能 运维
AgentRun 实战:快速构建 AI 舆情实时分析专家
搭建“舆情分析专家”,函数计算 AgentRun 快速实现从数据采集到报告生成全自动化 Agent。
1021 58
|
3月前
|
机器学习/深度学习 安全 Android开发
谷歌亮剑“Darcula”:一场针对安卓钓鱼黑产的法律与技术双重围剿
2025年12月,谷歌起诉黑客组织Darcula,指控其利用伪装应用在安卓系统实施大规模钓鱼攻击。该团伙通过延迟激活、滥用无障碍服务等手段窃取用户隐私,谷歌以“技术+法律”双轨反制,凸显网络安全攻防升级。
100 0
|
3月前
|
监控 安全 前端开发
国家级黑客与黑产“共用武器库”:M365设备代码钓鱼成云时代通用入侵钥匙
2025年,德国能源与美国医疗企业遭“设备代码钓鱼”攻击,暴露出国家级黑客与犯罪团伙共用同一技术的新型威胁。通过伪造OAuth授权,攻击者绕过MFA,窃取数据或部署勒索软件。传统防御失效,身份安全正迈入“后密码、后MFA”时代。
153 0
|
3月前
|
人工智能 运维 监控
安全事件别再靠人熬了:从报警到修复,一条自动化编排的命
安全事件别再靠人熬了:从报警到修复,一条自动化编排的命
133 10
|
3月前
|
存储 弹性计算 Linux
2026年阿里云服务器新手操作手册:配置选型、环境搭建与运维管理指南
在数字化业务部署中,云服务器凭借弹性扩展、成本可控的优势,已成为个人开发者与企业搭建网站、运行应用的核心选择。阿里云 ECS(弹性计算服务)作为国内主流云服务产品,地域节点丰富、配置灵活,但新手常因不熟悉购买路径与参数选择陷入困惑。本文从购买前准备、核心购买方式、配置选择要点到控制台基础操作,系统梳理新手所需的全流程知识,助力高效完成上云部署。
|
3月前
|
前端开发 程序员 API
作为前端开发,分享下我在编程中的好习惯
前端开发喵喵侠分享多年实战总结的8个编程好习惯:写前先思考、注释重“为什么”、规范命名、代码自检、写文档、Git提交规范化、表单提示友好化、果断删除无用代码。习惯决定代码质量,写出半年后自己仍能读懂的代码,才是成熟的开始。
90 0
|
3月前
|
机器学习/深度学习 人工智能 自然语言处理
AI大模型面试宝典
【AI大模型面试宝典】聚焦Transformer核心架构,拆解自注意力、多头机制、位置编码等高频考点,配代码实现与面试真题解析,助你快速掌握大模型面试关键知识点,无痛拿下offer!
207 0