首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >基于 Amazon SES 的钓鱼与 BEC 攻击机理及闭环防御研究

基于 Amazon SES 的钓鱼与 BEC 攻击机理及闭环防御研究

原创
作者头像
芦笛
发布2026-05-07 09:49:47
发布2026-05-07 09:49:47
1560
举报

摘要

依托合法云邮件基础设施实施的定向钓鱼与商业邮件欺诈(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 令牌与会话级攻击防护;跨云厂商邮件安全威胁情报共享;面向财务等高价值岗位的精准防御方案。

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

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档