CybercentreCanada/assemblyline-service-badlist

GitHub: CybercentreCanada/assemblyline-service-badlist

Assemblyline 4 的黑名单服务,用于从 CSV、hosts 和 JSON 格式的多数据源中提取网络和文件特征并自动标记为恶意。

Stars: 1 | Forks: 3

[![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) [![静态徽章](https://img.shields.io/badge/github-assemblyline-blue?logo=github)](https://github.com/CybercentreCanada/assemblyline) [![静态徽章](https://img.shields.io/badge/github-assemblyline\_service\_badlist-blue?logo=github)](https://github.com/CybercentreCanada/assemblyline-service-badlist) [![许可证](https://img.shields.io/github/license/CybercentreCanada/assemblyline-service-badlist)](./LICENSE) [![按标签分类的 GitHub Issue 或 Pull Request](https://img.shields.io/github/issues/CybercentreCanada/assemblyline/service-badlist)](https://github.com/CybercentreCanada/assemblyline/issues?q=is:issue+is:open+label:service-badlist) # Badlist 服务 该服务与 Assemblyline 的 Badlist 交互,以将标签或文件标记为恶意。 ## 服务详情 ### 来源 向服务添加来源时,有两种预期的数据格式: - csv - hosts - json 该服务还有多种类型的来源: - blocklist - malware_family_list - attribution_list #### Blocklist 数据格式 为了让服务能够提取正确的 IOC 并按来源对它们进行分类,您必须使用 `config.updater.` 键来指示它如何执行此操作。 在每个 `source` 映射中,您将指定其来源类型(`blocklist`)以及设置格式(`json` | `csv`)。 您还需要指定您期望在数据中及特定位置找到的不同 IOC 类型(`domain`、`ip`、`uri`、`md5`、`sha1`、`sha256`、`ssdeep`、`tlsh`)。 例如,如果处理的是 CSV 文件,并且您期望在第 3 列中找到 `uri`: `,,https://google.com,...` 那么您的来源配置将如下所示: ``` config: updater: my_source: type: blocklist format: csv uri: 2 delimiter: "," ``` 同样,如果您正在处理 JSON 列表(`[{}, {}, ...]`),并且知道在每个记录的 `bad_uri` 键下能找到 `uri`: `{"bad_uri": "https://google.com", "family": "bad_stuff", ...}` ``` config: updater: my_source: type: blocklist format: json uri: "bad_uri" ``` 使用 hosts 文件非常简单,不需要大量的配置: ``` config: updater: my_source: type: blocklist format: hosts ``` 您还可以通过为每个来源提供一个 `score`,来覆盖 Assemblyline 对 badlist 匹配项的默认评分(1000 分)。 #### 自动过期 默认情况下,我们假设添加到 Badlist 的所有项目将永远有效,但事实并非总是如此。 您还可以使用 `dtl` 为属于特定来源的项目设置 DTL (Days to Live) 期限。 如果存在多个配置了 DTL 的来源同时提取到了某个项目,则在导入时将使用请求的最长 DTL 来设置过期日期。 ## 镜像变体与标签 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 | 完整的构建详情,包括版本和构建类型:`version.buildType`。 | `4.5.stable`, `4.5.1.dev3` | ## 运行此服务 这是一个 Assemblyline 服务。它被设计为在 Assemblyline 框架内运行。 如果您想在本地测试此服务,可以直接从 shell 运行 Docker 镜像: ``` docker run \ --name Badlist \ --env SERVICE_API_HOST=http://`ip addr show docker0 | grep "inet " | awk '{print $2}' | cut -f1 -d"/"`:5003 \ --network=host \ cccs/assemblyline-service-badlist ``` 要将此服务添加到您的 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/ # Service Badlist 该服务与 Assemblyline 的 Badlist 交互,以将标签或文件标记为恶意。 ## 服务详情 ### 来源 向服务添加来源时,有两种预期的数据格式: - csv - hosts - json 该服务还有多种类型的来源: - blocklist - malware_family_list - attribution_list #### Blocklist 数据格式 为了让服务能够提取正确的标签并按来源对它们进行分类,您必须使用 `config.updater.` 键来指示它如何执行此操作。 在每个 `source` 数据结构中,您将指定其来源类型(blocklist)以及设置格式(`json` | `csv`)。 您还需要指定您期望在数据中及特定位置找到的不同标签类型(`domain`、`ip`、`uri`、`md5`、`sha1`、`sha256`、`ssdeep`、`tlsh`)。 例如,如果您正在使用 CSV 文件,并且期望在第 3 列中找到 `uri`: `,,https://google.com,...` 您的 `source` 配置将如下所示: ``` config: updater: my_source: type: blocklist format: csv uri: 2 delimiter: "," ``` 同样,如果您正在使用 JSON 列表(`[{}, {}, ...]`),并且知道在每个条目的 `bad_uri` 键下能找到 `uri`: `{"bad_uri": "https://google.com", "family": "bad_stuff", ...}` ``` config: updater: my_source: type: blocklist format: json uri: "bad_uri" ``` 使用 hosts 文件非常简单,不需要大量的配置: ``` config: updater: my_source: type: blocklist format: hosts ``` 您还可以通过为每个来源提供一个 `score`,来覆盖 Assemblyline 对在 Badlist 中找到的项目的默认评分(1000 分)。 #### 自动过期 默认情况下,我们假设添加到 Badlist 的所有项目将永远有效,但事实并非总是如此。您还可以通过使用 `dtl`(`days to live`,即存活天数)来为属于特定来源的项目设置过期时间。 如果存在多个配置了过期时间且包含相同项目的来源,则在导入时,过期日期将延长至最远的过期日期。 ## 镜像变体与标签 Assemblyline 服务是基于 [Assemblyline 服务](https://hub.docker.com/r/cccs/assemblyline-v4-service-base) 镜像构建的, 该镜像基于 Debian 11 和 Python 3.11。 Assemblyline 服务使用以下标签定义: | **标签类型** | **描述** | **示例标签** | | :------------------: | :------------------------------------------------------------------------------------------------------------- | :------------------------: | | 最新版本 | 最新的版本(可能不稳定)。 | `latest` | | build_type | 使用的构建类型。`dev` 是最新的不稳定版本。`stable` 是最新的稳定版本。 | `stable` 或 `dev` | | 系列 | 完整的构建详情,包括版本和构建类型:`version.buildType`。 | `4.5.stable`, `4.5.1.dev3` | ## 运行此服务 这是一个 Assemblyline 服务。它被优化为在 Assemblyline 部署框架内运行。 如果您想在本地测试此服务,可以直接从终端运行 Docker 镜像: ``` docker run \ --name Badlist \ --env SERVICE_API_HOST=http://`ip addr show docker0 | grep "inet " | awk '{print $2}' | cut -f1 -d"/"`:5003 \ --network=host \ cccs/assemblyline-service-badlist ``` 要将此服务添加到您的 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, 威胁情报, 安全分析平台, 开发者工具, 恶意特征检测, 请求拦截, 逆向工具, 黑名单