CybercentreCanada/assemblyline-service-cape

GitHub: CybercentreCanada/assemblyline-service-cape

一个将 Assemblyline 与 CAPEv2 恶意软件沙箱集成的服务,用于自动化提交、引爆和解析恶意样本的动态分析报告。

Stars: 13 | Forks: 6

[![Discord](https://img.shields.io/badge/chat-on%20discord-7289da.svg?sanitize=true)](https://discord.gg/GUAy9wErNu) [![](https://img.shields.io/discord/908084610158714900)](https://discord.gg/GUAy9wErNu) [![Static Badge](https://img.shields.io/badge/github-assemblyline-blue?logo=github)](https://github.com/CybercentreCanada/assemblyline) [![Static Badge](https://img.shields.io/badge/github-assemblyline\_service\_cape-blue?logo=github)](https://github.com/CybercentreCanada/assemblyline-service-cape) [![GitHub Issues or Pull Requests by label](https://img.shields.io/github/issues/CybercentreCanada/assemblyline/service-cape)](https://github.com/CybercentreCanada/assemblyline/issues?q=is:issue+is:open+label:service-cape) [![License](https://img.shields.io/github/license/CybercentreCanada/assemblyline-service-cape)](./LICENSE) # CAPE 服务 该 Assemblyline 服务将文件提交至 CAPEv2 部署环境,并解析返回的报告。 ## 服务详情 **注意**:该服务**需要在 Assemblyline 之外进行大量额外安装**才能正常运行。在默认安装过程中**并未**预装此服务。 本仓库主要包含改编自以下项目的代码: [Assemblyline Cuckoo 服务](https://github.com/CybercentreCanada/assemblyline-service-cuckoo),并且 灵感来源于 [x1mus](https://github.com/x1mus) 在 [Sorakurai](https://github.com/Sorakurai)、 [jvanwilder](https://github.com/jvanwilder) 以及 [NVISOsecurity](https://github.com/NVISOsecurity) 的 [RenaudFrere](https://github.com/RenaudFrere) 支持下创建的[项目](https://github.com/NVISOsecurity/assemblyline-service-cape)。 ### CAPE 沙箱概述 [CAPE Sandbox](https://github.com/kevoreilly/CAPEv2) 是开源项目 [Cuckoo Sandbox](https://cuckoosandbox.org) 的一个分支。CAPE 的目标是增加自动化的恶意软件解包和配置提取功能。它也是目前唯一仍在维护和提供支持的基于 Cuckoo 的仓库。 ### Assemblyline 的 CAPE 服务概述 CAPE 服务使用 CAPE REST API 将文件发送到 CAPE nest,然后由 CAPE nest 将这些任务分配给一个受害者机器池(每个受害者对应一个文件)。 **您需要负责设置 CAPE nest 和受害者机器**。随后将检索在受害者机器中引爆所提交文件的分析结果, 并通过 Assemblyline UI 向用户展示报告的摘要版本。为了方便您阅读,完整的报告也会作为补充文件包含在 Assemblyline UI 中。 已解包并保存到磁盘的文件将被重新回传至 Assemblyline。 ### 注意事项 #### 报告 需要注意的是,该服务会抓取报告包的 `lite` 格式。因此,请确保在您的 CAPE 实例上的 `reporting.conf` 文件中启用了 `litereport`,如下所示: ``` [litereport] enabled = yes keys_to_copy = info debug signatures network curtain sysmon target behavior_keys_to_copy = processtree processes summary ``` #### REST API 此服务使用的部分 API 功能在公共 CAPE 实例上被禁用,因此该服务只能在 CAPE 的私有部署环境中运行。 由于 REST APIv2 是唯一受[支持](https://capev2.readthedocs.io/en/latest/usage/api.html)的 API 版本,我们将仅支持此版本。 由于 CAPE 服务每分钟会发出超过 5 个请求,因此需要在 CAPE 主机上的 REST API 中配置以下 `api.conf`: ``` [api] ratelimit = no default_user_ratelimit = 99999999999999/s default_subscription_ratelimit = 99999999999999/s token_auth_enabled = yes ``` CAPE 服务发出的 REST API 调用如下: 1. 通过 GET /apiv2/cuckoo/status/ 获取 CAPE 的状态 2. 通过 GET /apiv2/machines/list/ 获取机器列表 3. 通过 GET /apiv2/tasks/search/sha256/\/ 搜索样本的 SHA256 4. 通过 POST /apiv2/tasks/create/file/ 提交样本进行文件分析 5. 通过 GET /apiv2/tasks/view/\/ 按任务 ID 轮询任务,直至其完成 6. 通过 GET /apiv2/tasks/get/report/\/lite/zip/ 获取生成的轻量级 JSON 报告和 ZIP 文件 7. 通过 GET /apiv2/tasks/delete/\/ 删除任务 在 `api.conf` 的默认设置中,`[machinelist]`、`[cuckoostatus]` 和 `[taskdelete]` 均被禁用。您需要启用它们。 在 `api.conf` 中,建议为所有 REST API 服务设置 `token_auth_enabled = yes` 和 `auth_only = yes`。 #### 监控建议 CAPE 服务将提交文件并等待文件完成分析及分析后处理,直至达到 800 秒的服务超时时间。此时,服务将重试(再重试 2 次)以获取结果。在大多数情况下,服务进行重试的唯一原因是 CAPE nest 出现了问题。当 CAPE REST API 或 Processor 服务宕机或出错时,CAPE 服务会输出有用的错误日志,您可以针对这些情况设置 Kibana 告警。这是监控您 CAPE nest 的推荐方法。 有关如何配置此服务的更多信息,请点击[此处](./configuration.md)。 ## 镜像版本与标签 Assemblyline 服务基于 [Assemblyline 服务基础镜像](https://hub.docker.com/r/cccs/assemblyline-v4-service-base)构建, 该基础镜像基于 Debian 11 并附带 Python 3.11。 Assemblyline 服务使用以下标签定义: | `标签类型` | `描述` | `标签示例` | | :----------: | :----------------------------------------------------------------------------------------------- | :------------------------: | | latest | 最新的构建版本(可能不稳定)。 | `latest` | | build_type | 所使用的构建类型。`dev` 是最新的不稳定版本。`stable` 是最新的稳定版本。 | `stable` 或 `dev` | | series | 完整的构建详情,包括版本号和构建类型:`版本号.构建类型`。 | `4.5.stable`, `4.5.1.dev3` | ## 运行此服务 这是一个 Assemblyline 服务。它被设计为 Assemblyline 框架的一部分运行。 如果您想在本地测试此服务,可以直接从 shell 运行 Docker 镜像: ``` docker run \ --name CAPE \ --env SERVICE_API_HOST=http://`ip addr show docker0 | grep "inet " | awk '{print $2}' | cut -f1 -d"/"`:5003 \ --network=host \ cccs/assemblyline-service-cape ``` 要将此服务添加到您的 Assemblyline 部署中,请遵循此 [指南](https://cybercentrecanada.github.io/assemblyline4_docs/developer_manual/services/run_your_service/#add-the-container-to-your-deployment)。 ## 文档 Assemblyline 的通用文档可以在以下地址找到:https://cybercentrecanada.github.io/assemblyline4_docs/ # CAPE 服务 该 Assemblyline 服务将文件提交至 CAPEv2 部署环境,并解析返回的报告。 ## 服务详情 **注意**:该服务**需要在 Assemblyline 之外进行大量额外安装**才能正常运行。在默认安装过程中**并未**预装此服务。 本仓库主要包含改编自 [Assemblyline Cuckoo 服务]的代码。 [Assemblyline Cuckoo service] (https://github.com/CybercentreCanada/assemblyline-service-cuckoo),并且 灵感来源于 [x1mus](https://github.com/x1mus) 在 [Sorakurai](https://github.com/Sorakurai)、 [jvanwilder](https://github.com/jvanwilder) 以及 [NVISOsecurity](https://github.com/NVISOsecurity) 的 [RenaudFrere](https://github.com/RenaudFrere) 支持下创建的[项目](https://github.com/NVISOsecurity/assemblyline-service-cape)。 ### CAPE 沙箱概述 [CAPE Sandbox](https://github.com/kevoreilly/CAPEv2) 是开源项目 [Cuckoo Sandbox](https://cuckoosandbox.org) 的一个分支。CAPE 的目标是增加自动化的恶意软件解包和配置提取功能。它也是目前唯一仍在维护和提供支持的基于 Cuckoo 的仓库。 ### Assemblyline 的 CAPE 服务概述 CAPE 服务使用 CAPE REST API 将文件发送到 CAPE nest,然后由 CAPE nest 将这些任务分配给一个受害者机器池(每个受害者对应一个文件)。 **您需要负责设置 CAPE nest 和受害者机器**。随后将检索在受害者机器中引爆所提交文件的分析结果, 并通过 Assemblyline UI 向用户展示报告的摘要版本。为了方便您阅读,完整的报告也会作为补充文件包含在 Assemblyline UI 中。 已解包并保存到磁盘的文件将被重新回传至 Assemblyline。 ### 注意事项 #### 报告 需要注意的是,该服务会抓取报告包的 `lite` 格式。因此,请确保在您的 CAPE 实例上的 `reporting.conf` 文件中启用了 `litereport`,如下所示: ``` [litereport] enabled = yes keys_to_copy = info debug signatures network curtain sysmon target behavior_keys_to_copy = processtree process summary ``` #### REST API 此服务使用的部分 API 功能在公共 CAPE 实例上被禁用,因此该服务只能在 CAPE 的私有部署环境中运行。 由于 REST APIv2 是唯一[受支持] (https://capev2.readthedocs.io/en/latest/usage/api.html)的 API 版本,我们将仅支持此版本。 由于 CAPE 服务每分钟会发出超过 5 个请求,因此需要在 CAPE 主机上的 REST API 中配置以下 `api.conf`: ``` [api] ratelimit = no default_user_ratelimit = 99999999999999/s default_subscription_ratelimit = 99999999999999/s token_auth_enabled = yes ``` CAPE 服务发出的 REST API 调用如下: 1. 通过 GET /apiv2/cuckoo/status/ 获取 CAPE 的状态。 2. 通过 GET /apiv2/machines/list/ 获取机器列表。 3. 通过 GET /apiv2/tasks/search/sha256/\/ 搜索样本的 SHA256。 4. 通过 POST /apiv2/tasks/create/file/ 提交样本进行文件分析。 5. 通过 GET /apiv2/tasks/view/\/ 按任务 ID 轮询任务,直至其完成。 6. 通过 GET /apiv2/tasks/get/report/\/lite/zip/ 获取生成的轻量级 JSON 报告和 ZIP 文件。 7. 通过 GET /apiv2/tasks/delete/\/ 删除任务。 在 `api.conf` 的默认设置中,`[machinelist]`、`[cuckoostatus]` 和 `[taskdelete]` 均被禁用。您需要启用它们。 在 `api.conf` 中,建议为所有 REST API 服务设置 `token_auth_enabled = yes` 和 `auth_only = yes`。 #### 监控建议 CAPE 服务将提交文件并等待文件完成分析及分析后处理,直至达到 800 秒的服务超时时间。此时,服务将重试(再重试 2 次)以获取结果。在大多数情况下,服务进行重试的唯一原因是 CAPE nest 出现了问题。当 CAPE REST API 或 Processor 服务宕机或出错时,CAPE 服务会输出有用的错误日志,您可以针对这些情况设置 Kibana 告警。这是监控您 CAPE nest 的推荐方法。 有关如何配置此服务的更多信息,请点击[此处](./configuration.md)。 ## 镜像变体与标签 Assemblyline 服务基于 [Assemblyline 服务基础镜像](https://hub.docker.com/r/cccs/assemblyline-v4-service-base)构建, 该基础镜像基于 Debian 11 并附带 Python 3.11。 Assemblyline 服务使用以下标签定义: | `标签类型` | `描述` | `标签示例` | | :------------------: | :------------------------------------------------------------------------------------------------------------- | :------------------------: | | latest | 最新的构建版本(可能不稳定)。 | `latest` | | build_type | 所使用的构建类型。`dev` 是最新的不稳定版本。`stable` 是最新的稳定版本。 | `stable` 或 `dev` | | series | 完整的构建详情,包括版本号和构建类型:`版本号.构建类型`。 | `4.5.stable`, `4.5.1.dev3` | ## 运行此服务 此服务专门优化为在 Assemblyline 部署环境中运行。 如果您想在本地测试此服务,可以直接从终端运行 Docker 镜像: ``` docker run \ --name CAPE \ --env SERVICE_API_HOST=http://`ip addr show docker0 | grep "inet " | awk '{print $2}' | cut -f1 -d"/"`:5003 \ --network=host \ cccs/assemblyline-service-cape ``` 要将此服务添加到您的 Assemblyline 部署中,请遵循此 [指南](https://cybercentrecanada.github.io/assemblyline4_docs/fr/developer_manual/services/run_your_service/#add-the-container-to-your-deployment)。 ## 文档 Assemblyline 的通用文档可以在以下地址找到:https://cybercentrecanada.github.io/assemblyline4_docs/
标签:Assemblyline, CAPEv2, Cuckoo Sandbox, DAST, DNS 反向解析, SOAR, TypeScript, YARA, 云资产可视化, 动态沙箱, 威胁情报, 安全插件, 安全编排与自动化响应, 开发者工具, 恶意软件分析, 恶意软件引爆, 搜索语句(dork), 攻击行为检测, 服务集成, 网络安全, 自动化分析, 自动化脱壳, 请求拦截, 跨站脚本, 逆向工具, 配置提取, 隐私保护