aws-samples/sample-aws-security-incident-response-integrations

GitHub: aws-samples/sample-aws-security-incident-response-integrations

该项目为 AWS Security Incident Response 提供与 Jira、ServiceNow 和 Slack 的双向集成示例,帮助安全团队在熟悉的工具中直接管理安全事件。

Stars: 24 | Forks: 16

# AWS Security Incident Response 示例集成 本项目为 [AWS Security Incident Response](https://aws.amazon.com/security-incident-response/) 提供了示例集成,使客户能够将该服务与其现有应用程序无缝集成,以用于事件响应、利益相关者通知和案例管理。 AWS Security Incident Response 可帮助您在最关键的时刻做出响应。该服务结合了自动化监控与调查的强大功能、加速的通信与协调,以及对 AWS 客户事件响应团队 (CIRT) 的 7x24 小时直接访问权限,帮助您快速准备、响应安全事件并从中恢复。 ## 入门指南 ### 前置条件 - 具有创建所需资源权限的 **AWS 账户** - **用于 Jira 集成** - Jira Cloud 账户 - **用于 ServiceNow 集成** - 具有管理员访问权限的 ServiceNow 实例 - **用于 Slack 集成** - 具有管理员访问权限的 Slack 工作区 - **工具**:AWS CDK、Python、AWS CLI、NVM、Node、PIP、Docker(具体的单步安装说明可在目标专用文档中找到) ### 部署 #### 特定集成目标的说明 **请参阅 [JIRA 文档](documentation/JIRA/JIRA.md) 获取有关如何部署 JIRA 集成的说明。** **请参阅 [ServiceNow 文档](documentation/SERVICE_NOW/SERVICE_NOW.md) 获取有关如何部署 ServiceNow 集成的详细说明。** **注意:** ServiceNow 集成现在同时支持 ITSM(IT 服务管理)和 IR(事件响应)模块。在部署期间请使用 `--integration-module` 参数指定合适的模块。 **请参阅 [Slack 文档](documentation/SLACK/SLACK.md) 获取有关如何部署 Slack 集成的详细说明。** #### 扩展到其他集成目标 ## 概述 AWS Security Incident Response 可帮助客户在最关键的时刻做出响应。本项目旨在弥合该服务的公共 API/SDK 与直接连接到 Slack、JIRA 和 ServiceNow 等常见应用程序之间的差距。它使客户能够直接从其首选的应用程序中执行 API 操作,同时保留 AWS Security Incident Response 的核心功能。 此存储库包含: - **Jira 集成**:AWS Security Incident Response 与 Jira 之间的双向集成,用于问题跟踪 - **ServiceNow 集成**:AWS Security Incident Response 与 ServiceNow 之间的双向集成,用于事件管理 - **Slack 集成**:AWS Security Incident Response 与 Slack 之间的双向集成,用于实时协作 - **通用基础设施**:共享组件,如 EventBridge 事件总线、DynamoDB 表和 Lambda 层 - **部署脚本**:易于使用的部署工具,用于快速设置 ## 功能 - **双向连接**:AWS Security Incident Response 与目标应用程序之间的无缝双向同步 - **实时更新**:事件驱动架构可确保跨系统近乎瞬时的更新 - **全面的 Jira 集成**: - 根据 AWS Security Incident Response 案例在 Jira 中创建、更新和删除问题 - 同步评论、附件和状态更改 - [详细的 Jira 集成文档](documentation/JIRA/JIRA.md) - **全功能的 ServiceNow 集成**: - 根据 AWS Security Incident Response 案例在 ServiceNow 中创建、更新和删除事件 - 同时支持 ITSM(IT 服务管理)和 IR(事件响应)模块 - 自动设置 ServiceNow 组件(Business Rules、REST Messages) - [详细的 ServiceNow 集成文档](documentation/SERVICE_NOW/SERVICE_NOW.md) - **实时的 Slack 集成**: - 为每个 AWS Security Incident Response 案例创建专用的 Slack 频道 - 双向同步消息、评论和附件 - 使用斜杠命令直接从 Slack 管理案例 - [详细的 Slack 集成文档](documentation/SLACK/SLACK.md) - **强大的错误处理**:死信队列、CloudWatch 警报和全面的日志记录 - **设计安全**:最低权限、安全的凭证存储和加密 - **可扩展框架**:模块化架构使得添加新集成变得容易 ## 架构 ![AWS Security Incident Response 的 JIRA 集成架构](https://static.pigsec.cn/wp-content/uploads/repos/cas/e7/e706d54b779d2d2e026f3094cc190fbe8ba2aacffdcb0685b1c147f423c9142d.png) ### 核心 AWS 服务 该解决方案利用了以下 AWS 服务: - **Amazon EventBridge**:名为 "security-incident-event-bus" 的自定义事件总线,用于在系统之间路由事件 - **AWS Lambda**:用于处理事件和 API 调用的无服务器计算,包括每分钟运行一次的 Security IR Poller - **Amazon Simple Notification Service (SNS)**:用于从 Jira 接收事件的消息服务 - **Amazon API Gateway**:用于从 ServiceNow 接收事件的 Webhook endpoint - **Amazon Simple Queue Service (SQS)**:用于处理失败事件的死信队列 - **Amazon DynamoDB**:具有分区键 "PK" 和排序键 "SK" 的 NoSQL 数据库表,用于存储映射信息 - **Amazon CloudWatch**:监控、日志记录(保留期为一周)和警报 - **AWS Systems Manager Parameter Store**:用于凭证和配置的安全存储 - **AWS Lambda Layers**:用于领域模型、映射器和包装器的共享代码层 - **AWS Security Incident Response (SIR)**:核心的安全事件响应服务 ## 使用说明 ### Jira 集成 要使用 Jira 集成: 1. 按照 [Jira 集成文档](documentation/JIRA/JIRA.md) 中的说明部署集成 2. 配置 Jira Automation 以将事件发送到 SNS topic 3. 通过在 AWS Security Incident Response 中创建安全事件来测试集成 4. 验证您的 Jira 项目中是否创建了问题 有关设置 Jira 集成的详细说明,包括自动化规则、API token 创建和故障排除提示,请参阅 [Jira 集成文档](documentation/JIRA/JIRA.md)。 ### ServiceNow 集成 要使用 ServiceNow 集成: 1. 按照 [ServiceNow 集成文档](documentation/SERVICE_NOW/SERVICE_NOW.md) 中的说明部署集成 2. ServiceNow Resource Setup Lambda 将自动配置 ServiceNow 中所需的组件 3. 通过在 ServiceNow 中创建安全事件来测试集成 4. 验证 AWS Security Incident Response 中是否创建了案例 有关设置 ServiceNow 集成的详细说明,包括业务规则、出站 REST 消息和故障排除提示,请参阅 [ServiceNow 集成文档](documentation/SERVICE_NOW/SERVICE_NOW.md)。 ### Slack 集成 要使用 Slack 集成: 1. 按照 [Slack 集成文档](documentation/SLACK/SLACK.md) 中的说明部署集成 2. 配置您的 Slack 应用程序的 Event Subscriptions 和 Slash Commands 3. 通过在 AWS Security Incident Response 中创建安全事件来测试集成 4. 验证是否创建了包含案例详情的专用 Slack 频道 5. 通过发送消息和使用斜杠命令来测试双向同步 有关设置 Slack 集成的详细说明,包括 Slack 应用配置、Webhook 设置和故障排除提示,请参阅 [Slack 集成文档](documentation/SLACK/SLACK.md)。 ## 故障排除 ### 常见问题 #### 事件传递失败 **如果来自 AWS Security Incident Response 或 Jira/ServiceNow 的更新失败会发生什么?** 该集成包含强大的错误处理机制: 1. **死信队列 (DLQ)**:无法传递到 EventBridge 的事件将被发送到 DLQ 2. **CloudWatch Alarms**:当 DLQ 中出现消息时触发的警报 3. **CloudWatch Dashboard**:提供集成健康状况的可视性 ![AWS Security Incident Response CloudWatch Dashboard](https://static.pigsec.cn/wp-content/uploads/repos/cas/a1/a1831f4314ca0f5f4c7568740156a42e8c8a08b88f32285a65b7bb0d03e6319d.png) **DLQ 在哪里?** DLQ 是一个标准的 Amazon SQS 队列,EventBridge 使用它来存储无法传递到目标的事件。查找名称类似于 `AwsSecurityIncidentResponseSample-SecurityIncidentEventBusLoggerdead-*` 的 SQS 队列并检查消息。 #### 处理失败的事件 要处理 DLQ 中的失败事件: 1. 导航到 SQS 控制台并找到 DLQ 2. 选择消息并选择“查看/删除消息” 3. 检查消息内容以了解失败原因 4. 手动处理事件或使用 AWS SDK 以编程方式处理它们 ### 特定于集成的故障排除 - 有关 Jira 集成问题,请参阅 [Jira 集成故障排除指南](documentation/JIRA/JIRA.md#troubleshooting) - 有关 ServiceNow 集成问题,请参阅 [ServiceNow 集成故障排除指南](documentation/SERVICE_NOW/SERVICE_NOW_TROUBLESHOOTING.md) - 有关 Slack 集成问题,请参阅 [Slack 集成故障排除指南](documentation/SLACK/SLACK_TROUBLESHOOTING.md) ### 获取帮助 如果您遇到故障排除指南中未涵盖的问题: 1. 检查相关 Lambda 函数的 CloudWatch Logs 2. 查看 EventBridge 事件总线的事件传递状态 3. 在 GitHub 存储库中提交 issue,并附带有关该问题的详细信息 ## 开发 ### 测试 使用 pytest 运行测试: ``` pytest ``` ### 代码质量 本项目使用 [ruff](https://github.com/astral-sh/ruff) 来强制执行代码质量标准。要设置 ruff: 1. 安装开发依赖项: ``` pip install -r requirements-dev.txt ``` 2. 格式化代码 ``` ruff format ``` ## 安全 本项目实施了各种安全措施来保护您的数据和基础设施: ### 访问控制 - **最小权限原则**:每个函数所需的具有最低权限的 IAM 角色 - **基于资源的策略**:SNS topic 和其他资源具有严格的访问策略 - **CDK Nag 抑制**:任何安全发现都会被明确记录,并且仅在必要时进行抑制 ### 凭证管理 - **AWS Systems Manager Parameter Store**:所有凭证都安全地存储在 Parameter Store 中 - **无硬编码密钥**:所有敏感值在部署期间作为参数传递 - **安全字符串参数**:敏感值存储为加密的 SecureString 参数 ### 监控和日志记录 - **CloudWatch Logs**:所有 Lambda 函数的全面日志记录 - **CloudWatch Alarms**:针对失败的事件和其他问题的警报 - **CloudWatch Dashboard**:提供对集成健康状况和性能的可视性 ### 数据保护 - **数据加密**:DynamoDB 表使用静态加密 - **安全通信**:所有 API 调用均使用 HTTPS - **最少的数据存储**:仅存储基本的映射信息 ### 最佳实践 - 定期轮换 API token 和凭证 - 监控 CloudWatch Logs 以发现可疑活动 - 使集成组件保持为最新版本 ## 许可证 本项目基于 MIT-0 许可证授权。有关详细信息,请参阅 LICENSE 文件。 ## 常见问题 ### 一般问题 **问:我可以同时使用多个集成吗?** 答:是的,您可以部署多个集成(Jira、ServiceNow 和 Slack),以将 AWS Security Incident Response 同时与多个平台连接。 **问:运行这些集成需要多少成本?** 答:成本取决于您对 AWS 服务(如 Lambda、EventBridge、SNS 和 DynamoDB)的使用情况。适度使用的话,大多数部署都将包含在这些服务的 AWS 免费套餐内。 **问:我可以根据我的特定需求自定义集成吗?** 答:是的,这些集成被设计为可扩展的。您可以修改 Lambda 函数、事件模式和其他组件以满足您的特定要求。 **问:这些集成有多安全?** 答:这些集成遵循 AWS 安全最佳实践,包括最低权限访问、安全的凭证存储和加密。有关更多详细信息,请参阅 [安全](#security) 部分。 ### 技术问题 **问:如果集成组件出现故障会发生什么?** 答:这些集成包含错误处理机制,例如死信队列和 CloudWatch 警报。失败的事件将被存储以供稍后处理。 **问:我可以在多个 AWS 区域中部署这些集成吗?** 答:是的,您可以在提供 AWS Security Incident Response 和所需服务的任何 AWS 区域中部署这些集成。 **问:部署后如何更新集成?** 答:您可以通过使用相同或更新后的参数再次运行部署命令来更新集成。对于 Slack,您还可以使用参数轮换脚本来更新凭证。 **问:我可以在哪里找到用于故障排除的详细日志?** 答:所有 Lambda 函数都会将日志写入 CloudWatch Logs。您可以在 CloudWatch 控制台中找到日志组,使用 CloudFormation 输出中提供的 URL,或者使用为每个集成提供的验证脚本。
标签:MITM代理, 请求拦截, 逆向工具