CybercentreCanada/assemblyline-service-badlist
GitHub: CybercentreCanada/assemblyline-service-badlist
Assemblyline 4 的黑名单服务,用于从 CSV、hosts 和 JSON 格式的多数据源中提取网络和文件特征并自动标记为恶意。
Stars: 1 | Forks: 3
[](https://discord.gg/GUAy9wErNu)
[](https://discord.gg/GUAy9wErNu)
[](https://github.com/CybercentreCanada/assemblyline)
[](https://github.com/CybercentreCanada/assemblyline-service-badlist)
[](./LICENSE)
[](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, 威胁情报, 安全分析平台, 开发者工具, 恶意特征检测, 请求拦截, 逆向工具, 黑名单