freedom-finance-stack/suraksha-shield

GitHub: freedom-finance-stack/suraksha-shield

一个开源威胁情报服务,通过 AWS 自动化部署提供 IOC 查询与分类接口。

Stars: 1 | Forks: 0

# Suraksha Shield 一个开源威胁情报服务 本仓库提供了一个 AWS CloudFormation 模板([cf.json](./infra/aws/cf.json)),用于创建和管理 Lambda 函数以及 EventBridge 调度器。IP 集合可以作为 AWS WAF WebACL 中的规则使用。 ### API 端点 1. IOCs API - **端点**: https://surakshashield.razorpay.com/v1/surakshashield/iocs - **描述**: 该 API 端点检索妥协指标(IOCs)。IOCs 是帮助识别潜在威胁或恶意活动的信息片段。 - **响应格式**: [ { "category": "****", "value": "**.**.**.**", "event_timestamp": "***", "cluster_tags": "****", "type": "****", "attributeid": "***", "tags": "****" } ] 2. IOCTypes API - **端点**: https://surakshashield.razorpay.com/v1/surakshashield/ioctypes - **描述**: 该 API 端点提供 IOC 类型列表。IOC 类型对威胁情报中使用的不同指标进行分类。 - **响应**: 返回 IOC 类型列表 3. IOCCategories API - **端点**: https://surakshashield.razorpay.com/v1/surakshashield/ioccategories - **描述**: 该 API 端点返回 IOC 类别列表。类别将不同的 IOC 分组为有意义的分类,以帮助组织和理解威胁数据。 - **响应**: 返回 IOC 类别列表 ## 快速开始 ### 前置条件 在开始之前,请确保具备以下条件: - 拥有足够权限以创建 CloudFormation 堆栈、Lambda 函数和 EventBridge 规则的 AWS 账户。 - 已安装并配置好本地机器上的 AWS CLI。 ### 克隆仓库 将仓库克隆到本地机器: ``` git clone https://github.com/freedom-finance-stack/suraksha-shield.git cd suraksha-shield ``` ### 编辑 CloudFormation 模板 要为 Lambda 函数配置 [cf.json](./infra/aws/cf.json) 文件,请按照以下步骤操作: 1. 在您喜欢的文本编辑器中打开 [cf.json](./infra/aws/cf.json) 文件。 2. 定位到 `SurakshaShieldLambdaFunction` 资源块。它应类似于以下内容: "SurakshaShieldLambdaFunction": { "Type": "AWS::Serverless::Function", "Properties": { "Handler": "lambda.lambda_handler", "Runtime": "python3.9", "CodeUri": "/home/cloudshell-user/suraksha-shield/infra/aws/lambda", "Role": { "Fn::GetAtt" : [ "SurakshaShieldLambdaRole" , "Arn" ] }, "Environment": { "Variables": { "IP_SET_NAME": "ipset-suraksha-shield-block", "REGION": "ap-south-1", "SURAKSHASHIELD_API_KEY": "XXXXX" } }, "VpcConfig": { "SecurityGroupIds": ["sg-xxxxxxxx"], "SubnetIds": ["subnet-xxxxxxxx"] } } } 3. 根据需要更新环境变量部分: - **IP_SET_NAME**: 设置为所需的 IP 集合名称。 - **REGION**: 更新为部署资源的 AWS 区域。 - **SURAKSHASHIELD_API_KEY**: 将 "XXXXX" 替换为 razorpay 安全团队提供的实际 API 密钥。 示例: "Environment": { "Variables": { "IP_SET_NAME": "your-ip-set-name", "REGION": "your-region", "SURAKSHASHIELD_API_KEY": "your-api-key" } } 5. 保存对 JSON 文件的更改。 请确保将所有占位符替换为实际数据,并根据具体需求调整配置。 ### 部署 CloudFormation 堆栈 要使用 JSON 模板部署 CloudFormation 堆栈,请按照以下步骤操作: 1. **打包 CloudFormation 模板** 首先,打包 CloudFormation 模板以上传本地工件(例如 Lambda 函数代码)到 S3 桶。运行以下 AWS CLI 命令: aws cloudformation package \ --template-file ./infra/aws/cf.json \ --s3-bucket your-s3-bucket-name \ --s3-prefix your-s3-prefix \ --output-template-file packaged-template.json \ --use-json - 将 **'your-s3-bucket-name'** 替换为用于上传工件的 S3 桶名称。 - 将 **'your-s3-prefix'** 替换为 S3 对象的前缀(可选)。 该命令将生成一个 packaged-template.json 文件,其中引用已上传的工件。 2. **部署 CloudFormation 模板** 使用打包的模板文件部署 CloudFormation 堆栈: aws cloudformation deploy \ --template-file packaged-template.json \ --stack-name my-threat-intelligence-stack \ --capabilities CAPABILITY_IAM - 将 **'packaged-template.json'** 替换为打包模板文件的路径(如果位于其他位置)。 - 将 **'my-threat-intelligence-stack'** 替换为要分配给 CloudFormation 堆栈的名称。 3. **设置 AWS NAT 网关和 VPC** 部署 CloudFormation 堆栈后,设置 AWS NAT 网关并在 VPC 中运行 Lambda 函数以获取静态 IP。该静态 IP 需要被 Razorpay 安全团队(security@razorpay.com)列入白名单。 ### 设置 NAT 网关与 VPC 的步骤: 1. **创建 VPC(如不存在):** - 进入 VPC 控制台并创建一个新的 VPC。 - 确保 VPC 同时包含私有子网和公有子网: - 用于 Lambda 函数的私有子网。 - 用于 NAT 网关的公有子网。 2. **设置 NAT 网关:** - 进入 VPC 控制台并在公有子网中创建一个 NAT 网关。 - 弹性 IP(EIP):为 NAT 网关分配一个弹性 IP。该 IP 将作为 Lambda 函数出站流量的静态 IP 使用。 3. **配置路由表:** - 创建两个路由表: - 公有路由表:与该公有子网关联,并设置通往 Internet 网关的路由以实现公网访问。 - 私有路由表:与该私有子网关联,并设置通往 NAT 网关的路由以实现出站访问。 4. **更新 Lambda 函数以在 VPC 中运行:** - CloudFormation 堆栈部署完成后,手动更新 Lambda 函数配置以在 VPC 中运行。 - 进入 Lambda 控制台。 - 选择通过 CloudFormation 创建的 Lambda 函数。 - 在 VPC 部分,选择新创建的 VPC。 - 选择 Lambda 函数应运行的私有子网。 - 添加适合 Lambda 函数的安全组(可使用现有或新建)。 5. **获取静态 IP:** - 配置好 NAT 网关后,分配给 NAT 网关的弹性 IP(EIP)将被 Lambda 函数用于出站流量。 - 可在 EC2 控制台中找到该弹性 IP。 6. **与 Razorpay 共享静态 IP:** - 设置完成后,将 NAT 网关的弹性 IP 提供给 Razorpay 安全团队(security@razorpay.com)以便 IP 白名单。 ### 后续步骤 **创建与管理 IP 集合** CloudFormation 模板将创建一个 Lambda 函数和一个 EventBridge 调度器来管理 IP 集合。随后,IP 集合可以作为规则用于 AWS WAF WebACL。 1. 导航至 AWS WAF 控制台。 2. 创建或更新您的 WebACL。 3. 向 WebACL 添加新规则,并选择由 CloudFormation 堆栈创建的 IP 集合。
标签:AMSI绕过, API端点, AWS CloudFormation, DNS解析, EventBridge, IOC, IOCCategories, IOCTypes, IP集合, Lambda函数, WAF WebACL, 威胁情报, 威胁情报服务, 威胁检测, 安全情报, 安全运营, 开发者工具, 开源威胁情报, 开源项目, 扫描框架, 指标妥协, 特权提升, 网络安全, 自动化部署, 逆向工具, 隐私保护