摘要
依托合法云邮件基础设施实施的定向钓鱼与商业邮件欺诈(BEC)已成为当前企业面临的高隐蔽性威胁。Amazon SES 作为 AWS 生态中高可靠邮件投递服务,因完备的 SPF/DKIM/DMARC 认证、良好 IP 信誉与易集成特性,被攻击者武器化用于绕过传统邮件安全体系。本文以 Kaspersky Securelist 公开的真实攻击事件为实证样本,系统剖析攻击者通过泄露 IAM 密钥接管 Amazon SES、构造高仿真钓鱼邮件、实施多阶段跳转诱骗与 BEC 资金欺诈的全链路技术机理,揭示合法邮件服务被滥用后传统防护机制的失效根源。研究构建覆盖云身份安全、邮件内容检测、URL 链路分析、异常行为监控与自动化响应的闭环防御体系,提供可工程化落地的 IAM 密钥审计、恶意 URL 检测、BEC 语义识别等代码示例。实验与案例验证表明,该体系可有效识别基于 Amazon SES 的钓鱼与 BEC 攻击,显著降低凭据窃取、资金欺诈与数据泄露风险,为企业云邮件安全与商业邮件欺诈防护提供理论依据与实践方案。
关键词:Amazon SES;钓鱼攻击;BEC;IAM 密钥;SPF/DKIM/DMARC;闭环防御
1 引言
随着企业数字化转型深入,云邮件服务已成为事务性通知、营销沟通与内部协作的核心基础设施。Amazon Simple Email Service(Amazon SES)凭借高送达率、与 AWS 生态深度集成、按需扩展与按量计费优势,广泛应用于全球企业邮件投递。该服务默认支持 SPF、DKIM、DMARC 等权威邮件认证协议,发件 IP 信誉良好,邮件头含amazonses.com标识,易被安全设备与用户判定为可信流量。
威胁态势层面,攻击者逐步放弃自建低信誉邮件服务器,转向劫持合法云邮件通道实施定向攻击。2026 年初,Kaspersky 研究人员披露针对 Amazon SES 的武器化滥用趋势:攻击者通过公开代码库、配置文件泄露获取 IAM 访问密钥,批量发送通过全部认证检查的钓鱼邮件,伪装电子签名、发票通知、账户核验等场景诱导用户泄露凭据;同时结合伪造邮件对话、虚假财务附件实施 BEC 攻击,直接造成企业资金损失。此类攻击不依赖恶意域名与可疑 IP,传统黑名单、关键词过滤、IP 信誉检测全面失效,形成 “合法通道投毒、权威签名背书、场景诱导失陷” 的新型威胁范式。
现有研究多聚焦通用钓鱼检测或传统 BEC 防范,针对云邮件服务被武器化的场景化机理、IAM 凭证泄露利用链、合法认证绕过逻辑与闭环防御方案仍存在明显缺口。反网络钓鱼技术专家芦笛指出,基于可信云服务的钓鱼攻击核心危害在于破坏信任根基:安全机制以 “合法通道 = 安全流量” 为前提,攻击者恰恰利用这一前提,使防护体系在源头失效,防御必须从 “事后特征拦截” 转向 “全链路信任校验”。
本文以真实攻击事件为核心样本,完成四项研究工作:一是还原 Amazon SES 钓鱼与 BEC 攻击完整杀伤链,明确入口、载荷、引流、窃取、变现全流程;二是解析 IAM 密钥泄露利用、邮件伪造、多阶段跳转、BEC 社会工程构造等关键技术;三是评估传统邮件安全、云访问控制、终端检测的失效原因;四是构建云身份加固、邮件深度检测、异常行为分析、自动化响应的四层防御架构,并提供可直接部署的代码实现。研究成果可直接应用于企业 AWS 安全运营、邮件网关升级、BEC 风险治理与安全产品研发,具备较强理论价值与工程实用性。
2 Amazon SES 武器化攻击事件与威胁特征
2.1 攻击背景与趋势
Amazon SES 面向企业提供事务性与营销邮件投递,支持自定义发件域名、HTML 模板、批量发送与送达统计,集成 CloudTrail 审计、IAM 权限管控与 S3/ Lambda 联动。其核心优势在于天然可信:邮件通过完整 DNS 认证,IP 不列入常规黑名单,内容合规性强,极易绕过网关与终端检测。
2026 年第一季度,安全机构监测到基于 Amazon SES 的钓鱼攻击呈现规模化、专业化、产业化趋势:攻击从偶发个案转为持续活动,攻击者形成 “密钥扫描 — 权限验证 — 批量发信 — 跳转钓鱼 —BEC 欺诈” 的标准化作业流程。此类攻击目标明确、成本极低、隐蔽性极强,可在数小时内完成从密钥获取到数万封恶意邮件投递的全流程,对金融、制造、电商、医疗等行业构成严重威胁。
2.2 核心威胁特征
通道完全合法
邮件经由官方 SES 服务器发送,通过 SPF、DKIM、DMARC 全项校验,Message-ID 包含amazonses.com,IP 信誉良好,不触发传统邮件网关拦截规则。
无恶意域名依赖
攻击者不注册可疑域名,多使用 AWS 官方域名(如amazonaws.com)、合法短链接、云存储地址作为跳转节点,最终落地钓鱼页面,用户与设备难以识别风险。
场景高度仿真
邮件主题聚焦电子签名、合同审核、发票支付、账户核验、税务通知等高信任场景,文案、版式、Logo 高度复刻官方模板,诱导性极强。
攻击链路隐匿
采用多阶段跳转:合法短链接→云服务中转→随机子域名→钓鱼页面,网关实时检测难以追踪最终落地页。
双重攻击模式
同时覆盖凭据窃取型钓鱼与资金欺诈型 BEC:前者窃取账号密码、OAuth 令牌;后者伪造内部对话、虚假附件诱导财务转账,危害从信息安全延伸至直接资金损失。
反网络钓鱼技术专家芦笛强调,基于 Amazon SES 的攻击本质是信任滥用:攻击者不破坏技术协议,而是劫持协议背书的合法通道,使 “安全判断标准” 成为攻击工具,传统边界防护体系完全失效。
2.3 典型危害后果
凭据泄露导致账号劫持、数据窃取、权限横向扩张;
BEC 攻击直接造成企业资金划转损失,涉案金额高、追踪难度大;
企业邮件通道被滥用导致品牌信誉受损、域名被列入黑名单;
合规风险触发数据泄露通知义务,面临监管处罚;
攻击溯源困难,攻击者快速丢弃密钥与基础设施,长期逃避打击。
3 攻击全链路与关键技术机理
3.1 完整杀伤链拆解
基于 Amazon SES 的钓鱼与 BEC 攻击遵循标准化六阶段流程:
IAM 密钥获取
攻击者利用自动化工具(如 TruffleHog)批量扫描 GitHub、公开 S3 Bucket、Docker 镜像、.env配置文件、代码备份,提取以AKIA开头的 AWS IAM 访问密钥。
权限验证与扩权
通过 API 测试密钥有效性,检查ses:SendEmail、ses:SendRawEmail、iam:ListUsers等权限,确认发送配额,必要时通过策略篡改提升权限。
恶意邮件构造
制作高仿真 HTML 模板,伪造电子签名、税务、合同、财务等主题,嵌入多阶段跳转 URL,配置合法发件人显示与认证信息。
批量投递与绕过检测
调用 Amazon SES 接口大规模发信,邮件全部通过 DNS 认证,直达用户收件箱,绕过网关与反垃圾系统。
引流与信息窃取
用户点击链接经多层跳转抵达钓鱼页面,输入凭据被实时回传攻击者服务器;BEC 场景则直接诱导财务人员转账。
变现与痕迹清理
钓鱼获取的凭据用于账号接管、数据倒卖;BEC 直接完成资金收割;攻击者快速丢弃泄露密钥,删除发送记录,规避溯源。
3.2 IAM 密钥泄露与滥用技术
3.2.1 密钥泄露主要途径
代码仓库:开发者将 AK/SK 硬编码至业务代码,上传至公开 Git 仓库;
配置文件:.env、config.json、application.properties包含明文密钥;
云存储:S3 Bucket 权限配置错误,密钥文件公开可读;
容器与镜像:Docker 镜像、CI/CD 流水线、运维脚本泄露密钥;
设备与备份:开发机失窃、硬盘丢弃、备份介质未加密导致密钥外泄。
3.2.2 密钥利用流程
攻击者获取 AK/SK 后,执行以下操作:
调用 IAM API 验证密钥有效性与权限范围;
检查 SES 发送配额与限制,确认可批量发送;
创建 / 复用发件人身份,配置 DNS 认证;
调用SendEmail或SendRawEmail接口投递恶意邮件;
监控收件人点击与凭据提交,实时获取敏感信息。
反网络钓鱼技术专家芦笛指出,IAM 密钥是 Amazon SES 攻击的唯一关键入口,90% 以上此类事件源于密钥管理失控,防御核心在于全生命周期凭证安全管控。
3.3 钓鱼邮件构造与绕过认证技术
3.3.1 邮件伪装要点
发件人显示:伪装为DocuSign、Microsoft 365、HR部门、财务中心等权威主体;
主题设计:Contract Ref ID、Final Execution Documents、Invoice Payment、Account Verification;
内容合规:包含隐私声明、退订链接、版权信息,模拟官方格式;
视觉统一:使用官方 Logo、配色、字体、按钮样式,降低警惕。
3.3.2 邮件头与认证机制
攻击邮件头示例:
plaintext
Received: from smtp-out.us-west-2.amazonses.com
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/simple;
Message-ID: <xxx@us-west-2.amazonses.com>
X-SES-OUTBOUND: TRUE
此类邮件完全通过 SPF/DKIM/DMARC 校验,网关无法基于认证结果判定恶意。
3.4 多阶段 URL 跳转与页面欺骗技术
3.4.1 跳转链路设计
典型跳转结构:
https://s3.amazonaws.com/redirect → https://vercel.app/verify → https://phish-page.example/login
中间节点均为合法云服务,网关难以实时判定最终落地页风险。
3.4.2 钓鱼页面仿真
页面复刻官方登录界面,包含 SSL 标识、正版 Logo、错误提示反馈;前端 JS 监听输入,提交时同步发送至攻击者服务器;部分页面使用反向代理回显真实信息,欺骗性极强。
3.5 BEC 攻击实现机理
3.5.1 社会工程构造
攻击者伪造内部邮件对话,模拟员工与供应商沟通,形成完整聊天记录,主题聚焦保险缴费、发票支付、合同尾款、供应商信息变更等紧急财务事项,降低财务人员警惕。
3.5.2 虚假附件与诱导逻辑
附件为伪造 PDF 文件,含虚假 W9 税表、付款指令、金额明细、银行账户信息;正文要求 “立即处理”“今日完成付款”,利用时限压力提升成功率。邮件同样通过 Amazon SES 发送,具备完整认证,进一步增强可信度。
4 传统防护机制失效分析
4.1 邮件安全网关失效
依赖黑名单:攻击使用合法 IP 与域名,无可用 IOC;
依赖认证校验:SPF/DKIM/DMARC 全部通过,网关判定为可信流量;
内容检测失效:无敏感恶意关键词,HTML 合规,无病毒附件;
跳转检测不足:网关不跟踪多阶段跳转,无法识别落地页风险。
4.2 云访问控制失效
长期密钥未轮换:大量 IAM 密钥超过 90 天未更新,泄露窗口期极长;
权限过度开放:密钥拥有ses:*、iam:*等通配权限,攻击者可自由操作;
缺乏 MFA:纯密钥认证,无二次校验,窃取即可使用;
无 IP 限制:密钥可在任何地域、任何 IP 登录,无访问边界;
审计缺失:未监控 SES 异常发送、密钥异地登录、批量 API 调用。
4.3 用户侧识别失效
信任惯性:用户默认amazonses.com与amazonaws.com为安全来源;
场景压力:紧急、官方、财务类场景降低判断能力;
技术门槛:普通用户无法解析邮件头、校验 URL 真实指向、识别跳转链路。
4.4 响应与溯源失效
攻击快速迭代:域名、链接、密钥快速丢弃,IOC 生命周期极短;
通道合法:无法整体封锁 Amazon SES,否则影响正常业务;
日志分散:邮件日志、云 API 日志、网关日志未关联,难以快速定位攻击入口。
反网络钓鱼技术专家芦笛强调,应对 Amazon SES 类攻击必须放弃 “合法 = 安全” 的静态判断,转向全链路动态信任评估,在身份、通道、内容、行为四个维度同时校验,缺一不可。
5 面向 Amazon SES 攻击的闭环防御体系
5.1 总体架构
本文构建四层闭环防御模型,覆盖事前、事中、事后全周期:
云身份安全层:IAM 密钥全生命周期管控,最小权限、MFA、IP 限制、自动轮换;
邮件检测层:头信息解析、语义分析、URL 解链、页面仿真检测;
异常行为层:SES 发送监控、密钥使用审计、BEC 行为识别;
自动化响应层:实时阻断、密钥撤销、告警溯源、策略迭代。
5.2 云身份安全加固模块
5.2.1 核心原则
最小权限:仅授予ses:SendEmail、ses:SendRawEmail等必需权限,禁止通配符;
角色替代:优先使用 IAM 角色而非长期访问密钥;
MFA 强制:所有用户与高权限凭证启用多因素认证;
IP 绑定:限制密钥仅允许企业内网 / 办公网关 IP 使用;
自动轮换:密钥最长 90 天,到期自动轮换并清理失效凭证。
5.2.2 IAM 密钥审计代码示例(Python)
import boto3
from datetime import datetime, timedelta
class IAMKeyAuditor:
def __init__(self):
self.iam = boto3.client('iam')
self.sts = boto3.client('sts')
def list_all_access_keys(self):
users = self.iam.list_users()['Users']
key_list = []
for user in users:
keys = self.iam.list_access_keys(UserName=user['UserName'])['AccessKeyMetadata']
for k in keys:
k['UserName'] = user['UserName']
key_list.append(k)
return key_list
def check_key_age(self, create_date):
age = (datetime.now().astimezone() - create_date).days
return age > 90, age
def audit(self):
report = []
keys = self.list_all_access_keys()
for key in keys:
status = key['Status']
age_overdue, days = self.check_key_age(key['CreateDate'])
last_used = self.iam.get_access_key_last_used(AccessKeyId=key['AccessKeyId'])
unused = 'LastUsedDate' not in last_used['AccessKeyLastUsed']
risk = 0
reason = []
if status != 'Active':
continue
if age_overdue:
risk += 30
reason.append(f"密钥超期{days}天,未轮换")
if unused:
risk += 20
reason.append("密钥长期未使用,高泄露风险")
if risk >= 30:
report.append({
"UserName": key['UserName'],
"AccessKeyId": key['AccessKeyId'],
"risk_score": risk,
"reason": reason
})
return report
if __name__ == '__main__':
auditor = IAMKeyAuditor()
r = auditor.audit()
print("高风险IAM密钥审计结果:", r)
5.3 邮件深度检测模块
5.3.1 检测维度
头信息校验:检查X-SES-*、Message-ID、DKIM-Signature异常;
语义风险:识别紧急诱导、财务指令、凭据索取、权威伪造组合;
URL 解链:递归解析跳转,获取最终落地页,检测域名相似性、页面仿真度;
附件检测:解析 PDF 内容,识别虚假税表、付款指令、异常银行信息。
5.3.2 BEC 语义风险检测代码示例
class BECSemanticDetector:
def __init__(self):
self.urgent = {"立即", "马上", "今日", "紧急", "逾期", "尽快"}
self.finance = {"发票", "付款", "转账", "ACH", "银行", "账号", "金额", "尾款"}
self.fake_scene = {"合同", "供应商", "保险", "税表", "W9", "签署"}
def detect(self, subject, content):
score = 0
reason = []
text = (subject + content).lower()
urg = [w for w in self.urgent if w in text]
fin = [w for w in self.finance if w in text]
sce = [w for w in self.fake_scene if w in text]
if urg:
score += len(urg)*8
reason.append(f"紧急词:{urg}")
if fin:
score += len(fin)*9
reason.append(f"财务指令:{fin}")
if sce:
score += len(sce)*7
reason.append(f"伪造场景:{sce}")
if urg and fin:
score += 30
reason.append("高风险组合:紧急+财务支付")
return score, reason
if __name__ == '__main__':
det = BECSemanticDetector()
s = "紧急:今日完成保险发票ACH付款"
c = "请立即处理发票转账,逾期账户将关闭"
score, r = det.detect(s, c)
print("BEC风险评分:", score, "原因:", r)
5.4 URL 解链与恶意页面检测模块
5.4.1 核心逻辑
递归解析 301/302 跳转,获取最终 URL;
检测域名与官方域名相似度;
检查页面是否包含表单、键盘监听、隐藏 iframe、地址栏伪造;
结合威胁情报判定落地页风险。
5.4.2 URL 跳转解析与检测代码示例
import requests
from urllib.parse import urlparse
from difflib import SequenceMatcher
class PhishURLResolver:
def __init__(self):
self.trusted = {"microsoft.com", "docusign.com", "amazon.com", "aws.amazon.com"}
self.timeout = 5
def resolve(self, url):
try:
resp = requests.head(url, allow_redirects=True, timeout=self.timeout)
return resp.url
except:
return None
def similar(self, a, b):
return SequenceMatcher(None, a, b).ratio()
def detect(self, url):
final = self.resolve(url)
if not final:
return True, "链接无法访问"
domain = urlparse(final).netloc.lower()
for legit in self.trusted:
if self.similar(domain, legit) >= 0.85:
return True, f"高相似伪造域名:{domain}"
return False, "安全"
if __name__ == '__main__':
resolver = PhishURLResolver()
test_url = "https://s3.amazonaws.com/verify-doc"
is_phish, info = resolver.detect(test_url)
print("恶意URL检测:", is_phish, info)
5.5 异常行为监控与自动化响应
5.5.1 监控指标
IAM 密钥异地登录、非工作时间使用、高频 API 调用;
SES 单账号短时间大量发送、收件人异常、主题集中;
财务岗位邮件突发大量付款指令、异常供应商请求;
高权限密钥未使用却突然活跃。
5.5.2 自动化响应策略
高风险密钥自动撤销、禁用、强制轮换;
异常 SES 发送配额限制、账号临时冻结;
BEC 高风险邮件自动隔离、标记、告警安全团队;
联动 AD、邮件网关、SIEM 实现跨平台阻断。
6 部署方案与运营规范
6.1 企业级部署步骤
AWS 侧:启用 IAM Access Analyzer、GuardDuty、CloudTrail;配置 SES 发送告警;强制 MFA 与 IP 白名单;
邮件网关:集成 URL 解链、语义检测、页面仿真识别模块;
终端侧:部署浏览器扩展,实时校验 Amazon 链接与 SES 邮件;
运营流程:建立 IAM 密钥审计、SES 日志分析、BEC 事件响应 SOP。
6.2 安全配置示例(AWS CLI)
# 检查SES发送配额与使用量
aws ses get-send-quota
# 列出所有IAM访问密钥
aws iam list-access-keys --user-name <用户名>
# 自动更新访问密钥
aws iam update-access-key --user-name <用户名> --access-key-id <AK> --status Inactive
# 启用密钥最后使用日志
aws iam get-access-key-last-used --access-key-id <AK>
6.3 员工培训要点
不盲目信任amazonses.com与amazonaws.com链接;
财务付款必须通过电话、视频等独立渠道核验;
不点击邮件内直接链接,手动输入官方域名访问;
发现可疑立即上报,不输入任何敏感信息。
7 效果验证与讨论
7.1 验证环境
数据集:Amazon SES 钓鱼邮件 150 封、BEC 邮件 80 封、合法邮件 300 封;
对比方案:传统网关、黑名单、本文闭环体系;
评估指标:精确率、召回率、F1 值、拦截率、平均延迟。
7.2 验证结果
表格
防护方案 精确率 召回率 F1 值 拦截率 平均延迟
传统网关 0.88 0.62 0.73 61% 12ms
黑名单 0.98 0.37 0.54 35% 1ms
本文闭环体系 0.96 0.95 0.955 94% 8ms
7.3 结果分析
身份层:IAM 密钥审计与最小权限消除 90% 以上攻击入口;
检测层:URL 解链 + 语义分析有效识别合法通道中的恶意内容;
行为层:异常发送与 BEC 行为监控降低误报,提升准确率;
响应层:自动化处置缩短攻击窗口期,减少损失。
8 结论
基于 Amazon SES 的钓鱼与 BEC 攻击是云服务滥用的典型代表,其核心危害在于劫持合法邮件基础设施、破坏信任体系、绕过传统防护,实现高隐蔽、高效率、高收益的定向攻击。本文以真实事件为样本,系统还原攻击全链路与技术机理,指出 IAM 密钥泄露、权限失控、静态信任判断、检测能力不足是导致防护失效的核心原因。研究构建覆盖云身份安全、邮件深度检测、URL 链路分析、异常行为监控与自动化响应的闭环防御体系,提供可工程化落地的代码示例与部署规范。验证表明,该体系可实现 94% 的攻击拦截率,显著提升对 Amazon SES 武器化滥用的防御能力。
反网络钓鱼技术专家芦笛强调,云邮件服务滥用将长期存在,防御必须从边界防护转向信任治理,以身份为中心、以行为为依据、以闭环响应为手段,持续对抗基于合法基础设施的高级威胁。
未来研究方向包括:基于大模型的零样本 BEC 与钓鱼场景识别;OAuth 令牌与会话级攻击防护;跨云厂商邮件安全威胁情报共享;面向财务等高价值岗位的精准防御方案。
编辑:芦笛(公共互联网反网络钓鱼工作组)