CybercentreCanada/assemblyline-service-oletools
GitHub: CybercentreCanada/assemblyline-service-oletools
Assemblyline 的 Office OLE/XML 文档分析服务,基于 oletools 提取宏、元数据与 IOC 并标记异常。
Stars: 3 | Forks: 7
[](https://discord.gg/GUAy9wErNu)
[](https://discord.gg/GUAy9wErNu)
[](https://github.com/CybercentreCanada/assemblyline)
[](https://github.com/CybercentreCanada/assemblyline-service-oletools)
[](https://github.com/CybercentreCanada/assemblyline/issues?q=is:issue+is:open+label:service-oletools)
[](./LICENSE)
# Oletools 服务
该 Assemblyline 服务使用 Python 库 py-oletools 和 hachoir 提取 Microsoft OLE 和 XML 文档中的元数据和网络信息,并报告其中的异常情况。
## 服务详情
### 配置参数(由管理员设置):
- MACRO_SCORE_MAX_FILE_SIZE:如果宏部分的大小超过此值,则在结果中不会标记该宏部分。
(默认值:5 * 1024**2)
- MACRO_SCORE_MIN_ALERT:Chains.json 包含常见的英文三字母组。我们根据这些三字母组在代码中出现的频率(跳过一些常见关键字)对宏进行评分。低于此配置值的分数表示文本更加随机,而随机的变量/函数名在恶意宏中很常见。(默认值:0.6)
- METADATA_SIZE_TO_EXTRACT:如果 OLE 元数据的大小(以字节为单位)超过此值,服务会将元数据内容提取为新文件(默认值:500)
- IOC_PATTERN_SAFELIST:如果 IOC 包含列表中的某个字符串,Oletools 将忽略它,除非处于深度扫描模式。(默认值:[])
- IOC_EXACT_SAFELIST:如果 IOC 是列表中的某个字符串,Oletools 将忽略它,除非处于深度扫描模式。(默认值:[])
### 执行
Oletools 服务将在存在以下信息时为每个文件报告:
1. 单个宏:(AL TAG:technique.macro)
* 每个部分的 SHA256。(AL TAG:file.ole.macro.sha256)
* 可疑字符串。(AL TAG:file.ole.macro.suspicious_strings)
* 网络指标。
2. 嵌入式文档流和 OLE 信息:
* 名称和元数据(作者、公司、最后保存时间等)。
AL TAGS:
file.ole.summary.title,
file.ole.summary.subject,
file.ole.summary.author,
file.ole.summary.comment,
file.ole.summary.last_saved_by,
file.ole.summary.last_printed,
file.ole.summary.create_time,
file.ole.summary.last_saved_time,
file.ole.summary.manager,
file.ole.summary.company,
file.ole.summary.codepage
* CLSID(标记已知的恶意值)。(AL TAG:file.ole.clsid)
3. 可疑的 XML/OLE 流特征:
* FrankenStrings IOC Patterns 模块结果。
* Adobe Flash 内容。
* Base64 编码内容。
* 十六进制编码内容。
4. MSO DDE 链接(AL TAG:file.ole.dde_link)
5. 可能的 VBA stomping。当宏转储和 pcode 转储之间的可疑内容存在差异时确定。
6. 服务将提取:
* 所有宏内容。
* 所有 pcode 内容。
* 可疑的 OLE 流和 xml。
* DDE 链接
7. 如果处于深度扫描模式,将提取所有 OLE 流,并且 hachoir 将运行其深度对象分析。
## 镜像版本和标签
Assemblyline 服务构建自 [Assemblyline 服务基础镜像](https://hub.docker.com/r/cccs/assemblyline-v4-service-base),
该基础镜像基于带有 Python 3.11 的 Debian 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 Oletools \
--env SERVICE_API_HOST=http://`ip addr show docker0 | grep "inet " | awk '{print $2}' | cut -f1 -d"/"`:5003 \
--network=host \
cccs/assemblyline-service-oletools
```
要将此服务添加到您的 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 Oletools
Ce service Assemblyline extrait des métadonnées et des informations sur le réseau, et signale les anomalies dans les documents Microsoft OLE et XML à l'aide des bibliothèques Python py-oletools et hachoir.
## Service 详情
### 配置参数(由管理员定义):
- MACRO_SCORE_MAX_FILE_SIZE : Une section de macros ne sera pas signalée dans les résultats si sa taille est supérieure à cette valeur.
(Valeur par défaut : 5 * 1024**2)
- MACRO_SCORE_MIN_ALERT : Chains.json contient des trigraphes anglais courants. Nous évaluons les macros en fonction de la fréquence d'apparition de ces trigraphes dans le code, en ignorant certains mots-clés courants. Un score inférieur à cette valeur indique un texte plus aléatoire, et les noms de variables/fonctions aléatoires sont fréquents dans les macros malveillantes. (Valeur par défaut : 0.6)
- METADATA_SIZE_TO_EXTRACT : Si les métadonnées OLE dépassent cette taille (en octets), le service extrait le contenu des métadonnées dans un nouveau fichier (valeur par défaut : 500).
- IOC_PATTERN_SAFELIST : Si un IOC contient l'une des chaînes de la liste, Oletools l'ignorera à moins d'être en mode d'analyse approfondie. (Valeur par défaut : [])
- IOC_EXACT_SAFELIST : Si un IOC est l'une des chaînes de la liste, Oletools l'ignorera à moins qu'il ne soit en mode d'analyse approfondie. (Valeur par défaut : [])
### 执行
Le service Oletools signale les informations suivantes pour chaque fichier lorsqu'il est présent :
1. Macros individuelles : (AL TAG : technique.macro)
* SHA256 de chaque section. (AL TAG : file.ole.macro.sha256)
* Chaînes suspectes. (AL TAG : file.ole.macro.suspicious_strings)
* Indicateurs de réseau.
2. Flux de documents intégrés et informations OLE :
* Nom et métadonnées (auteur, société, dernière heure de sauvegarde, etc.).
AL TAGS :
file.ole.summary.title,
file.ole.summary.subject,
file.ole.summary.author,
fichier.ole.sommaire.commentaire,
fichier.ole.summary.last_saved_by,
file.ole.summary.last_printed,
file.ole.summary.create_time,
file.ole.summary.last_saved_time,
file.ole.summary.manager,
fichier.ole.summary.company,
file.ole.summary.codepage
* CLSIDs (drapeaux de valeurs malveillantes connues). (AL TAG : file.ole.clsid)
3. Caractéristiques des flux XML/OLE suspects :
* FrankenStrings IOC Patterns résultats du module.
* Contenu Adobe Flash.
* Contenu codé en Base64.
* Contenu codé en hexadécimal.
4. Liens DDE MSO (AL TAG : file.ole.dde_link)
5. Possibilité d'utilisation de VBA. Déterminé lorsqu'il existe une différence de contenu suspect entre le dump macro et le dump pcode.
6. Le service extrait :
* Tout le contenu des macros.
* Tout le contenu du pcode.
* Les flux OLE et xml suspects.
* Liens DDE
7. En mode d'analyse approfondie, tous les flux OLE seront extraits et hachoir effectuera une analyse approfondie des objets.
## 镜像变体和标签
Les services d'Assemblyline sont construits à partir de l'image de base [Assemblyline service](https://hub.docker.com/r/cccs/assemblyline-v4-service-base),
qui est basée sur Debian 11 avec Python 3.11.
Les services d'Assemblyline utilisent les définitions d'étiquettes suivantes:
| **Type d'étiquette** | **Description** | **Exemple d'étiquette** |
| :------------------: | :------------------------------------------------------------------------------------------------------------- | :------------------------: |
| dernière version | La version la plus récente (peut être instable). | `latest` |
| build_type | Type de construction utilisé. `dev` est la dernière version instable. `stable` est la dernière version stable. | `stable` ou `dev` |
| série | Détails de construction complets, comprenant la version et le type de build: `version.buildType`. | `4.5.stable`, `4.5.1.dev3` |
## 运行此 Service
Ce service est spécialement optimisé pour fonctionner dans le cadre d'un déploiement d'Assemblyline.
Si vous souhaitez tester ce service localement, vous pouvez exécuter l'image Docker directement à partir d'un terminal:
```
docker run \
--name Oletools \
--env SERVICE_API_HOST=http://`ip addr show docker0 | grep "inet " | awk '{print $2}' | cut -f1 -d"/"`:5003 \
--network=host \
cccs/assemblyline-service-oletools
```
Pour ajouter ce service à votre déploiement d'Assemblyline, suivez ceci
[guide](https://cybercentrecanada.github.io/assemblyline4_docs/fr/developer_manual/services/run_your_service/#add-the-container-to-your-deployment).
## 文档
La documentation générale sur Assemblyline peut être consultée à l'adresse suivante: https://cybercentrecanada.github.io/assemblyline4_docs/
标签:Assemblyline, DNS 反向解析, hachoir, HTTP工具, Microsoft Office安全, oletools, OLE分析, Python, VBA安全, XML文件分析, 元数据提取, 入侵指标(IOC), 威胁情报, 宏代码分析, 开发者工具, 恶意文档检测, 文件格式分析, 无后门, 沙箱集成, 网络安全, 网络安全审计, 自动化恶意软件分析, 请求拦截, 进程保护, 逆向工具, 钓鱼攻击防护, 隐私保护