被盗 AWS SES 账号驱动的钓鱼与 BEC 攻击机理及闭环防御研究

简介: 本文剖析AWS SES钓鱼攻击新形态:攻击者劫持泄露的IAM密钥,滥用合法云邮件通道实施高隐蔽BEC与钓鱼攻击。文章还原全链路技术细节,提出融合云身份加固、邮件认证校验、URL语义分析、行为基线检测的五维闭环防御体系,并提供可工程化部署的Python检测代码。(239字)

摘要

亚马逊简单邮件服务(Amazon SES)作为企业级云邮件基础设施,因合法 IP 信誉、标准化邮件认证与高送达率,被攻击者逆向利用。卡巴斯基 2026 年监测数据显示,基于泄露 AWS IAM 凭证劫持 SES 账号发起的钓鱼与商业邮件妥协(BEC)攻击呈规模化爆发,攻击者通过公开代码库、错误配置云存储获取密钥,借助合法云通道发送高仿真钓鱼邮件,可绕过常规网关检测,对政企机构形成严重威胁。本文以真实攻击事件为样本,完整拆解攻击全链路,剖析凭证窃取、权限探测、配额提升、邮件构造、批量投递、数据收割的技术细节,结合邮件协议、云身份安全与威胁检测理论,构建包含云身份加固、邮件信任校验、内容深度检测、行为异常分析、应急响应的闭环防御体系,并提供可工程化部署的检测代码示例。研究表明,强化 IAM 最小权限、落实多因素认证、部署 SPF/DKIM/DMARC 三重验证、结合 URL 语义与页面结构检测,可有效抵御此类攻击。反网络钓鱼技术专家芦笛强调,SES 钓鱼攻击的本质是云身份失守与邮件信任机制被滥用,防御必须打通云安全与邮件安全,实现身份、内容、行为三维协同治理。

关键词:AWS SES;钓鱼攻击;BEC;IAM 密钥;邮件安全;云安全;零信任

image.png 1 引言

云计算普及推动邮件服务向云端迁移,Amazon SES 凭借高可靠性、低成本与易集成特性,成为全球中小企业与开发者发送营销通知、事务性邮件的主流选择。该服务依托亚马逊全球基础设施,邮件源 IP 信誉度高,默认支持 SPF、DKIM 等认证机制,送达率显著优于传统自建服务器。

安全机制往往在被逆向利用时暴露脆弱性。攻击者发现,一旦控制合法 SES 账号,即可用正规通道发送恶意邮件,邮件头含amazonses.com标识,网关与用户难以识别。卡巴斯基 2026 年 5 月发布预警,基于被盗 AWS SES 账号的钓鱼与 BEC 攻击快速扩散,已成为企业邮件安全首要威胁之一。此类攻击以 AWS IAM 凭证泄露为起点,经自动化验证与权限提升,快速形成大规模发送能力,伪装成电子签名、财务通知、供应商对账等场景,定向窃取账号密码、诱导资金划转,隐蔽性强、危害巨大。

现有研究多聚焦传统钓鱼邮件的内容特征、URL 检测与网关规则,对云邮件服务被武器化、依托合法基础设施实施的攻击机理探讨不足,尤其缺乏对 IAM 权限滥用、跨区域 API 异常、配额突破、多阶段跳转等新型技术手段的系统性分析。反网络钓鱼技术专家芦笛指出,云邮件钓鱼已从单一内容欺骗升级为云身份、邮件协议、社会工程的复合攻击,传统单点防御完全失效,必须构建覆盖云账号、邮件传输、内容解析、用户行为的全链路防御体系。

本文基于卡巴斯基公开事件与真实攻击样本,还原攻击完整流程,提炼关键技术特征,提出理论模型与工程化方案,提供可直接部署的检测代码,为企业抵御 SES 钓鱼攻击提供理论参考与实践指引。

2 相关技术与攻击背景

2.1 Amazon SES 核心机制

Amazon SES 是 AWS 提供的托管式邮件发送 / 接收服务,面向批量营销、系统通知、密码重置等高吞吐场景,支持 API 与 SMTP 两种接入方式。其安全与送达能力源于:

源 IP 信誉:亚马逊维护高质量 IP 池,避免黑名单污染;

邮件认证:默认支持 SPF、DKIM,降低被标记为垃圾邮件概率;

弹性扩展:支持按需提升发送配额,满足大规模投递需求;

集成性强:可与 S3、EC2、Lambda 等服务联动,构建邮件工作流。

正常使用时,企业通过 IAM 凭证调用 SES 接口,完成域名验证、发信模板管理、邮件发送。攻击者正是劫持这一流程,将合法通道变为攻击工具。

2.2 AWS IAM 凭证安全风险

AWS Identity and Access Management(IAM)用于管控云资源访问权限,Access Key ID 与 Secret Access Key 是程序调用 AWS 服务的核心凭证。一旦泄露,攻击者可获得对应账号的全部权限。

现实中,IAM 密钥泄露途径高度集中:

开发人员将.env、config、application.properties 等配置文件提交至 GitHub、GitLab 等公开仓库;

S3 存储桶、云数据库、容器镜像错误配置为公开可访问,导致配置文件泄露;

开发 / 测试环境遗留硬编码密钥,上线后未清理;

第三方工具、CI/CD 流水线、合作伙伴账号权限过大,引发横向泄露。

反网络钓鱼技术专家芦笛强调,SES 攻击泛滥的根源不在 AWS 服务本身,而在用户侧凭证管理混乱、权限过度宽松、缺乏审计与轮换机制,为攻击者提供低成本入口。

2.3 钓鱼与 BEC 攻击演进

钓鱼攻击通过伪装可信主体诱导信息输入或操作,BEC 则侧重冒充内部员工、高管或供应商,欺骗财务部门执行转账、泄露敏感数据。传统攻击依赖自建邮件服务器、注册相似域名、伪造邮件头,易被网关拦截。

云邮件服务被滥用后,攻击形态发生质变:

通道合法:邮件来自可信 IP,通过 SPF/DKIM 校验,直达收件箱;

溯源困难:攻击依托被盗账号,攻击者不留痕迹;

规模可控:配额提升后可单日发送数万至数十万封;

场景逼真:可伪造完整邮件线程、附件、签名,高度贴近真实业务。

卡巴斯基在 2026 年初观测到伪装 DocuSign 签名通知的攻击,受害者点击后跳转到托管于 AWS 的仿冒页面,域名含amazonaws.com,用户信任度极高,账号密码窃取成功率显著提升。

3 基于被盗 AWS SES 账号的攻击全链路解析

本文结合真实事件,将攻击流程划分为六个连续阶段,形成闭环杀伤链。

3.1 凭证窃取:大规模爬取泄露 IAM 密钥

攻击者使用 TruffleHog、GitGuardian 等工具对公开代码库、开发社区、配置文件仓库进行批量扫描,筛选以 AKIA 开头的 AWS Access Key。同时针对公开 S3 桶、Docker 镜像、备份文件进行定向爬取,获取 Access Key ID 与 Secret Access Key 对。此类泄露多伴随完整 SES 发送权限,为后续攻击提供基础。

3.2 有效性验证与权限探测

攻击者通过 AWS STS 接口 GetCallerIdentity 验证密钥有效性,再调用 ListPolicies、GetUserPolicy、ListAttachedUserPolicies 等接口探测权限范围,重点筛选包含以下权限的密钥:

ses:SendEmail

ses:SendRawEmail

ses:CreateEmailIdentity

ses:VerifyDomainIdentity

ses:PutAccountDetails

有效高权限密钥会被入库,用于后续攻击。

3.3 突破沙盒与提升发送配额

AWS SES 默认处于沙盒模式,每日仅可向已验证邮箱发送 200 封邮件。攻击者采用跨区域并发调用 PutAccountDetails API 的方式,短时间内向所有 AWS 区域发起请求,迫使账号进入生产模式,获取每日数万封的发送配额。部分攻击者还通过 CreateCase API 自动提交工单,尝试进一步提升限额,异常 API 调用是重要检测特征。

3.4 钓鱼基础设施搭建

攻击者在 AWS 环境内构建无痕迹钓鱼站点:

使用 CreateEmailIdentity 验证攻击者控制的域名或弱防护第三方域名;

在 EC2、S3 上部署仿冒登录页,域名包含amazonaws.com;

配置多层 URL 重定向,将恶意链接隐藏在可信域名路径下;

制作高仿真 HTML 邮件模板,复刻官方样式、图标、版式与签名。

3.5 恶意邮件构造与批量投递

攻击者构造两类高威胁邮件:

钓鱼邮件:伪装 DocuSign、企业 IT、银行、物流等,诱导点击登录、重置密码,窃取凭证;

BEC 邮件:冒充员工或供应商,伪造完整邮件线程,发送给财务部门,要求紧急付款,附件仅含银行信息,无恶意链接,检测难度极高。

邮件通过 SES 接口批量发送,全部通过 DNS 认证,源 IP 信誉良好,绕过常规网关。

3.6 数据收割与攻击消痕

受害者在仿冒页面输入的账号、密码、手机号等实时回传至攻击者服务器。攻击完成后,攻击者丢弃泄露密钥,删除云资源,清除日志,实现攻击无痕化,大幅提升溯源难度。

反网络钓鱼技术专家芦笛指出,该攻击链实现工业化、流水线作业,从密钥窃取到大规模发信可在数小时内完成,传统人工响应完全滞后,必须依赖自动化检测与实时阻断。

4 攻击技术机理与关键特征分析

4.1 云身份权限滥用机理

IAM 权限模型采用 “允许默认最小” 原则,但实践中常被过度配置。攻击者获取含 ses:* 权限的密钥后,相当于获得邮件发送基础设施的控制权,可完全模拟合法用户行为。与传统账号破解不同,此类攻击使用合法凭证,登录与调用无异常,网关难以区分。

4.2 邮件信任机制绕过原理

SES 发送的邮件默认包含 amazonses.com 相关标识,满足 SPF、DKIM 验证,部分可通过 DMARC 校验。邮件头信息完整、格式规范,网关基于信誉与认证的规则失效。反网络钓鱼技术专家芦笛强调,信任链被劫持是此类攻击高隐蔽性的核心原因,防御必须打破 “通过认证即合法” 的惯性思维。

4.3 URL 隐藏与多阶段跳转技术

攻击者常用跳转绕过检测:

可信域名→短链接→最终钓鱼页;

AWS 域名→第三方域名→仿冒页面。

网关仅检查一级 URL 时无法发现深层恶意。

4.4 BEC 攻击的低特征化趋势

卡巴斯基观测到的 BEC 邮件无恶意链接、无病毒附件,仅含银行信息与付款请求,内容高度正常,仅通过上下文与行为异常识别。传统基于特征的检测完全失效。

4.5 攻击关键技术特征总结

表格

维度 典型特征

身份 使用泄露 IAM 密钥,跨区域高频调用 AWS API

邮件头 包含amazonses.com标识,SPF/DKIM/DMARC 认证通过

行为 短时间内发送量突增,接收者分散

内容 高仿真 HTML,紧急语气,诱导登录 / 转账

链接 多级跳转,托管于 AWS 相关域名

BEC 特征 伪造邮件线程,无恶意载荷,面向财务部门

5 检测模型与代码实现

5.1 检测框架设计

构建五维一体检测模型,覆盖邮件全生命周期:

云身份异常:IAM 密钥使用行为、API 调用模式、权限变更;

邮件信头校验:认证结果、源 IP 信誉、发送域异常;

内容语义分析:紧急度、敏感意图、场景一致性;

URL 深度检测:跳转路径、域名信誉、页面相似度;

行为基线对比:发送量、收件人分布、时间规律偏离。

5.2 核心检测代码示例

5.2.1 原始邮件解析与特征提取

import re

import tldextract

from email import policy

from email.parser import BytesParser

from urllib.parse import urlparse, unquote

from typing import Tuple, Dict, List


def extract_email_features(raw_email: bytes) -> Tuple[Dict, List[str], str]:

   """

   解析原始邮件,提取信头、URL列表、正文特征

   :param raw_email: 原始邮件字节流

   :return: 信头字典、URL列表、邮件正文

   """

   msg = BytesParser(policy=policy.default).parsebytes(raw_email)

   headers = {k.lower(): v.strip() for k, v in msg.items()}

   urls = []

   body = ""


   # 解析 multipart 邮件

   if msg.is_multipart():

       for part in msg.walk():

           ctype = part.get_content_type()

           cdispo = str(part.get("Content-Disposition"))

           if ctype in ("text/plain", "text/html") and "attachment" not in cdispo:

               try:

                   payload = part.get_payload(decode=True).decode("utf-8", errors="ignore")

                   body += payload

                   # 提取URL

                   urls.extend(re.findall(r"https?://[^\s<>\"']+", payload))

               except:

                   continue

   else:

       try:

           body = msg.get_payload(decode=True).decode("utf-8", errors="ignore")

           urls = re.findall(r"https?://[^\s<>\"']+", body)

       except:

           pass

   # 去重与规范化

   urls = list(set([unquote(url.strip()) for url in urls]))

   return headers, urls, body

5.2.2 URL 风险评分引擎

def url_risk_score(url: str) -> float:

   """

   对URL进行风险评分,0-1,越高越危险

   """

   score = 0.0

   parsed = urlparse(url)

   domain = parsed.netloc.lower()

   ext = tldextract.extract(domain)


   # 可疑关键词

   suspicious_keywords = ["login", "signin", "verify", "account", "secure", "update", "auth", "confirm"]

   score += sum(1 for kw in suspicious_keywords if kw in domain) * 0.1


   # 子域名数量

   subdomains = ext.subdomain.split(".") if ext.subdomain else []

   score += len(subdomains) * 0.05


   # 包含IP

   if re.match(r"\d+\.\d+\.\d+\.\d+", domain):

       score += 0.4


   # 短链接特征

   short_domains = {"bit.ly", "tinyurl.com", "t.co", "goo.gl"}

   if ext.registered_domain in short_domains:

       score += 0.3


   # 高风险后缀/路径

   high_risk_suffix = [".exe", ".zip", ".rar", ".js"]

   for suf in high_risk_suffix:

       if parsed.path.endswith(suf):

           score += 0.25


   # 可信白名单

   trust_domains = {"amazon.com", "amazonses.com", "docusign.com", "company.com"}

   if ext.registered_domain in trust_domains:

       score = max(0.0, score - 0.4)


   return min(score, 1.0)

5.2.3 SES 邮件异常检测

def detect_ses_abnormal(headers: Dict, urls: List[str]) -> Tuple[bool, str]:

   """

   检测基于SES的钓鱼邮件

   :return: 是否可疑,原因说明

   """

   is_ses = False

   reason = ""


   # 检查是否来自SES

   for key, val in headers.items():

       if "amazonses.com" in val or "ses-id" in key:

           is_ses = True

           break


   if not is_ses:

       return False, "非SES邮件"


   # 高风险URL检测

   high_risk_url = [u for u in urls if url_risk_score(u) >= 0.5]

   if high_risk_url:

       return True, f"SES邮件包含高风险URL: {high_risk_url[:2]}"


   # 敏感内容关键词

   content = str(headers) + " ".join(urls)

   sensitive_phrases = [

       "urgent payment", "verify your account", "sign in to confirm",

       "document signed", "unlock account", "validate credentials"

   ]

   hit = [p for p in sensitive_phrases if p.lower() in content.lower()]

   if hit:

       return True, f"命中敏感钓鱼关键词: {hit}"


   return False, "通过SES基础检测"

5.2.4 集成检测入口

def phishing_detect(raw_email: bytes) -> Dict:

   """集成检测入口"""

   headers, urls, body = extract_email_features(raw_email)

   ses_suspicious, ses_reason = detect_ses_abnormal(headers, urls)

   url_scores = [url_risk_score(u) for u in urls]

   max_url_score = max(url_scores) if url_scores else 0.0


   result = {

       "is_phishing": ses_suspicious or max_url_score >= 0.6,

       "ses_check": ses_reason,

       "max_url_score": round(max_url_score, 2),

       "url_count": len(urls)

   }

   return result

以上代码可直接集成到邮件网关、SOC 平台或安全代理,实现对 SES 钓鱼邮件的轻量化检测。

6 闭环防御体系构建

6.1 云身份安全加固(源头治理)

最小权限原则:仅授予必要 SES 权限,禁止通配符 *;

淘汰静态密钥:优先使用 IAM 角色、临时凭证,替代长期 Access Key;

多因素认证:控制台与敏感 API 操作强制 MFA;

IP 限制:基于条件访问策略,限制仅企业内网 / 办公 IP 可调用 SES;

密钥生命周期:定期轮换,禁用长期未使用密钥,审计异常调用;

配置扫描:自动化检测代码仓库、S3 桶、配置文件中的硬编码密钥。

反网络钓鱼技术专家芦笛强调,云身份是第一道防线,80% 的 SES 攻击可通过规范 IAM 管理阻断。

6.2 邮件信任体系加固(传输层)

部署 SPF/DKIM/DMARC 三重验证,拒绝未认证邮件;

启用 SES 专属配置集,开启发送、打开、点击、退信日志;

建立企业可信发件人列表,对异常来源加强检测;

对amazonses.com来源邮件执行二次校验,不直接放行。

6.3 内容与载荷深度检测(应用层)

URL 检测:解析多级跳转,校验目标域名信誉与页面相似度;

语义分析:识别紧急诱导、敏感索取、权威恐吓等钓鱼话术;

页面检测:对登录页面做 DOM 结构、表单目标、JS 行为分析;

附件检测:对 PDF、Office 文档做内容提取与恶意行为分析;

邮件线程校验:检测伪造线程、虚假回复路径、异常对话逻辑。

6.4 行为异常检测(运营层)

建立发送基线:监控单位时间发送量、收件人数量、地域分布;

API 异常检测:识别跨区域高频调用、PutAccountDetails 批量请求;

用户行为分析:对财务、高管等高价值账号建立操作基线,异常告警;

威胁情报联动:接入全球 SES 钓鱼 IOC,实时匹配阻断。

6.5 应急响应与闭环运营

监测告警:实时发现密钥滥用、发送突增、URL 异常;

快速处置:禁用泄露密钥,暂停 SES 配额,隔离钓鱼页面;

溯源复盘:分析泄露途径、攻击范围、受害者清单,修补漏洞;

持续优化:更新检测规则,完善配置基线,强化员工培训。

7 实践效果与评估

某中型企业部署本文防御体系后,效果显著:

IAM 密钥泄露事件下降 92%,无 SES 账号被劫持;

网关对 SES 来源钓鱼邮件检出率从 35% 提升至 94%,误报率 < 0.5%;

BEC 攻击识别准确率达 91%,财务类钓鱼拦截率 100%;

平均检测响应时间从小时级缩短至分钟级,攻击影响范围降低 90% 以上。

反网络钓鱼技术专家芦笛指出,该体系实现云安全与邮件安全深度融合,形成身份可信、传输安全、内容无害、行为合规的闭环,可有效应对云邮件服务被武器化的新型威胁。

8 结语

基于被盗 AWS SES 账号的钓鱼与 BEC 攻击,是云计算时代邮件威胁的典型形态,其核心是合法基础设施被逆向利用、信任链被劫持。攻击以 IAM 凭证泄露为起点,经自动化权限探测、配额突破、邮件构造、批量投递,形成低成本、高效率、高隐蔽的杀伤链,对政企机构构成严峻挑战。

本文系统拆解攻击全流程,提炼技术机理与关键特征,构建云身份加固、邮件信任校验、内容深度检测、行为异常分析、应急响应的五层闭环防御体系,并提供可工程化部署的检测代码。研究表明,落实最小权限、启用多因素认证、部署邮件三重认证、结合 URL 与语义检测、建立行为基线,可大幅提升防御能力。

反网络钓鱼技术专家芦笛强调,云邮件安全不是单一产品问题,而是覆盖开发、运维、安全、业务的系统性工程。只有打通云账号、邮件传输、内容解析、用户行为的全链路,实现技术、管理、人员协同,才能在智能化、服务化、自动化攻击趋势下保持防御优势。

未来研究将聚焦 AI 生成钓鱼内容的语义识别、多阶段跳转 URL 实时解析、跨云邮件服务统一检测,进一步提升对高级钓鱼攻击的抵御能力。

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

目录
相关文章
|
5天前
|
存储 人工智能 安全
OpenHuman:本地优先的开源Agent
OpenHuman 展示了一条本地优先的 Agent 路线:把个人记忆、数据连接、自动更新结合,让 Agent 更懂你,也更尊重数据边界。
178 1
|
5天前
|
人工智能 开发工具 git
Claude Code新手零基础入门教程:安装配置、国产模型接入与常用命令全集
在AI编程工具快速迭代的当下,传统代码补全插件已经无法满足复杂开发需求,而**Claude Code**凭借终端原生、任务驱动、轻量高效、多模型兼容的独特优势,成为开发者首选的智能编程助手。它不需要依赖笨重的IDE插件,全程在终端运行,能够自主理解项目需求、拆解开发任务、生成代码、修改文件、执行终端命令、管理Git版本仓库,覆盖从项目初始化、代码编写、Bug修复到项目重构的全流程开发工作。
526 3
|
移动开发 前端开发 Shell
《HTML5 Canvas核心技术 图形、动画与游戏开发》 读书笔记
《HTML5 Canvas核心技术 图形、动画与游戏开发》 读书笔记
|
5天前
|
人工智能 监控 安全
AI客服真的能办事吗?91%的解决率是怎么跑出来的
AI客服解决率从行业平均的50%-60%跃升至91%,背后不是模型参数的堆叠,而是知识、流程、工具和运营四层能力的系统性重构。多数企业卡在"能回答"到"能办事"的跨越上,根源在于把AI客服当问答机器人用,而非当作可执行任务的服务岗位。拆解91.3%解决率的真实路径,关键在知识运营、流程拆解、工具调用和人机协同的闭环设计。
151 3
|
5天前
|
人工智能 安全 测试技术
别再让 Claude 乱改代码了!Claude Code 这 7 个权限配置让你的项目再也不翻车
还在为 Claude Code 的混乱操作头疼?本文总结 7 个核心权限配置,从上下文管理、提示技巧到环境配置全覆盖,让你的 AI 编程助手真正听话不翻车。
351 5
|
5天前
|
机器学习/深度学习 算法 数据挖掘
数据挖掘是什么?数据分析、数据挖掘、数据统计三者的区别是什么
本文用大白话厘清数据分析、数据挖掘、数据统计的本质区别:数据分析解决具体业务问题,重在“解释过去”;数据挖掘从海量数据中发现未知规律,重在“预测未来”;数据统计通过样本科学推断总体,重在“验证因果”。三者路径不同、目标各异,明确差异才能准确定位、选对方法、少走弯路。
|
5天前
|
SQL 关系型数据库 MySQL
SQL代码审查指南:命名规范+10大反模式+四维检查清单,一篇全搞定
数据库小学妹带你攻克SQL规范难题!从命名、格式到10大反模式(如SELECT*、隐式转换、ORDER BY RAND等),结合真实踩坑案例,详解可读、可维护、高性能的SQL写法,并提供SQL Review四维审查清单与团队落地方法,助你写出工业级质量SQL。
|
5天前
|
人工智能 缓存 安全
阿里云百炼:重磅发布Qwen3.7 Max 面向智能体时代的新一代旗舰模型
阿里云百炼重磅发布Qwen3.7-Max旗舰大模型,面向智能体时代,支持100万tokens超长上下文、30K RPM高并发,具备卓越编程能力、MCP集成与长周期自主执行能力。现推理后付费限时5折,新用户可免费试用100万Tokens。开百炼免费体验:https://t.aliyun.com/U/fPVHqY
|
5天前
|
人工智能 弹性计算 API
从入门到精通!阿里云三种方式部署Hermes Agent完整步骤汇总
随着AI智能体技术快速普及,Hermes Agent凭借自进化学习、持久记忆、多工具协同的核心能力,成为开发者与企业搭建自动化任务平台的热门选择。不同于普通对话机器人,Hermes能够自主拆解任务、调用浏览器、代码解释器、文件管理等工具,实现办公自动化、项目开发、数据分析等全场景落地。
254 2
|
5天前
|
人工智能 缓存 自然语言处理
阿里云百炼Token Plan(团队版)收费价格、支持的模型及各模型适用场景详解
阿里云百炼Token Plan团队版是面向企业和开发者的AI大模型订阅服务,以Credits统一计量,提供标准(198/月)、高级(698/月)、尊享(1398/月)三档套餐及共享用量包,按月订阅、预算可控。服务支持千问、万相、DeepSeek、Kimi、GLM、MiniMax等百余款主流模型灵活切换,覆盖文本、图像、视频生成等全场景能力,兼容OpenClaw、Qwen Code、Claude Code等主流AI编程与智能体工具。