aws-security-automation进阶实践:安全告警如何自动IP地理溯源+WHOIS定位,直推Slack/Chime

📅 2026/8/24 9:15:37
aws-security-automation进阶实践:安全告警如何自动IP地理溯源+WHOIS定位,直推Slack/Chime
aws-security-automation进阶实践安全告警如何自动IP地理溯源WHOIS定位直推Slack/Chime【免费下载链接】aws-security-automationCollection of scripts and resources for DevSecOps and Automated Incident Response Security项目地址: https://gitcode.com/gh_mirrors/aw/aws-security-automationaws-security-automation 是亚马逊开源的一套 AWS DevSecOps 与自动化事件响应脚本集。其中 IAM Access Denied Responder 组件能自动捕获 CloudTrail 中的访问拒绝告警对源 IP 执行地理溯源城市/州/国家和 WHOIS 归属定位并把完整分析结果秒级推送到 Slack 和 Chime 频道让安全团队第一时间锁定攻击者位置。本文带你完整跑通这套告警 → 溯源 → 推送的自动化链路。为什么安全告警必须配上 IP 溯源收到一条 Access Denied 告警时值班人员最关心的只有三个问题谁在操作从哪里来的这个 IP 是谁家的传统做法是人工翻 CloudTrail 控制台、复制 IP、手动查 WHOIS——一套下来分钟起步。而 aws-security-automation 的思路是把告警捕获、IP 地理定位、WHOIS 查询、消息推送全部交给无服务器架构自动完成人只需要盯着 Slack 里的结论即可。它覆盖三类高危信号均由 CloudWatch Events 规则捕获告警类型匹配条件典型场景Access DeniederrorMessage云存储/控制台越权访问被拒Failed authenticationerrorMessageAWS 控制台暴力破解Client.UnauthorizedOperationerrorCodeAPI 调用权限不足规则定义在IAM Access Denied Responder/AccessDeniedResponder.yaml模板中命中的事件会发布到 SNS 主题sec-ir-AccessDeniedTopic触发后续 Lambda 处理链。核心进阶IP 地理溯源 WHOIS 定位是怎么实现的这是整个方案最有进阶感的部分。IAM Access Denied Responder/generate-security-messages/index.py中的三个 Lambda 函数各司其职access_denied_handler解析告警事件提取用户名、账号、源 IP、UserAgent并调用 IP 溯源接口生成结构化告警消息publish_user_history查询该用户最近 5 条操作历史时间、动作、IP、代理逐条附 IP 定位publish_iam_user_history查询该 IAM 用户相关资源的历史操作IP 溯源走的是 WhoisXMLAPI 两个接口地理溯源geoipify 接口→ 返回城市、州、国家即消息里的Location: city, region, countryWHOIS 定位WhoisService 接口→ 返回 IP 注册机构即Source IP owner: xxx最终 Slack 里收到的消息类似Access denied on event GetObject occured in account 123456 by john\n Source agent: 1.2.3.4\n Location: Frankfurt, Hesse, Germany\n Source IP owner:某某网络公司 关键点溯源功能是可选开关。模板参数APIKey填 WhoisXMLAPI 的密钥即启用留空则自动跳过 IP 详情查询基础告警照常推送。想零成本先跑通流程可以先把APIKey留空。一键直推 Slack / Chime消息分发层溯源结果通过 SNS 主题sec-ir-SecurityMessages分发由IAM Access Denied Responder/publish-security-messages/index.py中的两个 Handler 完成最后一跳publish_to_slack_handler将消息 POST 到 Slack Incoming Webhook可指定投递频道SlackChannel参数publish_to_chime_handler将消息投递到 Chime 房间 WebhookChimeHookUrl参数模板里用条件资源实现填哪个 Hook 就建哪个订阅——只填 Slack 参数就只建 Slack 推送链路完全按需。未来想接钉钉、企业微信、邮件只需给sec-ir-SecurityMessages主题再加一个订阅即可这也是官方 READMEIAM Access Denied Responder/README.md推荐的扩展方式。四步部署最快启动方法1. 前置条件确认已有 CloudTrail 追踪器且事件写入 CloudWatch已开启告警规则依赖 CloudWatch Events。2. 打包并上传 Lambda 代码到 S3git clone https://gitcode.com/gh_mirrors/aw/aws-security-automation对generate-security-messages/和publish-security-messages/两个目录分别打包成 zip注意压缩的是目录内文件而非目录本身publish 包需包含 requests 依赖上传到任意 S3 桶。3. 启动 CloudFormation 模板IAM Access Denied Responder/AccessDeniedResponder.yaml按说明填写参数。模板参数输入页示意如下![AWS CloudFormation 模板参数输入页包含 Slack Hook URL 等安全告警推送配置项](https://raw.gitcode.com/gh_mirrors/aw/aws-security-automation/raw/d659c1752c5b7af59acad7c2bc540cd210040cdb/EC2 Auto Clean Room Forensics/CFN-Input.png?utm_sourcegitcode_repo_files)4. 关键参数速查参数作用建议SlackHookUrl/SlackChannelSlack Webhook 与频道至少填一项启用推送ChimeHookUrlChime 房间 Webhook按需填写APIKeyWhoisXMLAPI 密钥启用 IP 溯源必填否则留空LambdaS3BucketName等Lambda 代码位置与上传路径一致⚠️ 注意模板中 Lambda 运行时为 python2.7历史原因若在你的区域已下线部署前把Runtime改为 python3.x 即可代码逻辑无需改动。进阶联动告警确认后自动隔离取证当 IP 溯源确认某实例正被攻击光收到告警还不够——你可以顺势启用同仓库的EC2 Auto Clean Room Forensics方案。它从 SNS 主题接收实例 ID经 Step Functions 编排一串 Lambda自动完成移除自动伸缩 → 卷快照 → 安全组隔离 → 创建洁净室取证环境 → 生成报告 →推送 Slack全程无人值守![EC2 自动洁净室取证安全事件响应架构图展示 SNS 到 Step Functions 编排 Lambda 最终推送 Slack 的安全告警流程](https://raw.gitcode.com/gh_mirrors/aw/aws-security-automation/raw/d659c1752c5b7af59acad7c2bc540cd210040cdb/EC2 Auto Clean Room Forensics/Clean-Room-Forensic-Architecture.png?utm_sourcegitcode_repo_files)其 Step Functions 状态机在隔离完成后会先执行Alert Security Team on Isolation and Incident节点通知安全团队再等待确认、挂载卷做取证分析流程如下![事件响应 Step Functions 流程图包含安全团队隔离告警、取证实例创建与报告生成步骤](https://raw.gitcode.com/gh_mirrors/aw/aws-security-automation/raw/d659c1752c5b7af59acad7c2bc540cd210040cdb/EC2 Auto Clean Room Forensics/IncidentResponse-Flow-Step-Functions.png?utm_sourcegitcode_repo_files)相关资源编排定义在EC2 Auto Clean Room Forensics/Step-Function/Step-Functions.json各 Lambda 源码位于EC2 Auto Clean Room Forensics/Lambda-Functions/部署模板为EC2 Auto Clean Room Forensics/Incident-Response-Stepfunctions-lambda-vpc.yaml。常见问题Q不接 WhoisXMLAPI 能用吗能。APIKey留空时函数会跳过溯源段落其余告警捕获与 Slack/Chime 推送功能不受影响。Q告警太多会刷屏可在 CloudWatch Events 事件模式里收紧匹配条件如只监控特定账号 ID或为 Slack 单独建一个专用安全频道。Q费用如何整条链路基于 CloudWatch Events、SNS、Lambda 免费额度内基本零成本主要开销是 WhoisXMLAPI 的调用费按需开启即可。小结aws-security-automation 用CloudWatch Events 捕获告警 → Lambda 做 IP 地理溯源 WHOIS 定位 → SNS 扇出 → Slack/Chime 直推的无服务器组合把一次访问拒绝事件的响应时间从分钟级压到秒级。配合 Clean Room 取证方案还能把发现攻击一路自动化到隔离取证。建议先留空 APIKey 跑通推送链路再开启 IP 溯源逐步把这套自动化安全告警体系用起来。【免费下载链接】aws-security-automationCollection of scripts and resources for DevSecOps and Automated Incident Response Security项目地址: https://gitcode.com/gh_mirrors/aw/aws-security-automation创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考