/api/v1/trace 溯源风险点映射表
生成自 pe_stripper/api/adapters.py — build_trace_detect_payload() 当前输出
1. 风险等级 (level) 语义
| level | 含义 | 示例 |
| 1 | 低风险 — 组织/资源元数据 | 公司信息、产品信息、版本信息、资源语言 |
| 2 | 中风险 — 时间/网络指标 | 编译时间戳、静态IP、静态域名、静态URL |
| 3 | 高风险 — 直接身份泄露 | PDB路径 |
2. 清除类型 (clear_type) 语义
| clear_type | 含义 | 行为 |
| 0 | 不可清除 | 仅展示风险,不执行任何字节修改 |
| 2 | 置零清除 | 将字节范围填充为 \x00 |
| 3 | 替换清除 | 用指定值替换字节范围(按编码写入) |
注:clear_type: 2 与 clear_type: 3 底层操作等价——均在 [offset_start, offset_end) 范围内按编码写入,不改变字节长度与文件结构。所有 clear_type: 2 的项均可升级为 clear_type: 3,前端需时直接切换即可。当前默认 2,replace_clear: true 表示前端可展示替换入口。
3. 溯源分组 (trace_info groups)
| 分组 | 含义 |
| identity_trace | 直接身份或构建环境标识 |
| group_trace | 组织、产品、资源、编译器/签名元数据 |
| order_trace | 时间线类风险(当前为空) |
| attck_trace | ATT&CK 技战术映射(当前为空) |
| control_trace | 静态网络指标(IP/域名/URL) |
| user_trace | 用户自定义风险(当前为空) |
4. 溯源风险点完整映射
按 trace_info 分组展开。offset_start / offset_end 为真实文件偏移,size = offset_end - offset_start。
| trace_description |
分组 |
level |
clear_type |
replace_clear |
clear_replace |
description |
| 编译时间戳 |
identity_trace |
2 |
2 (置零) |
true |
|
编译时间戳是编译器在生成可执行文件或库文件时记录的时间信息,确定恶意软件的编译时间,可溯源攻击身份活动时间。 |
| PDB路径 |
identity_trace |
3 |
2 (置零) |
true |
|
PDB路径与编译环境直接关联,泄露开发者账户名、项目路径等身份信息,可被用于溯源开发者身份。 |
| 公司信息 |
group_trace |
1 |
2 (置零) |
true |
|
PE资源结构公司信息,存在被溯源风险 |
| 产品信息 |
group_trace |
1 |
2 (置零) |
true |
|
PE资源结构产品信息,存在被溯源风险。 |
| 文件版本信息 |
group_trace |
1 |
2 (置零) |
true |
|
PE资源结构版本信息,存在被溯源风险 |
| 产品版本信息 |
group_trace |
1 |
2 (置零) |
true |
|
PE资源结构产品版本信息,存在被溯源风险 |
| 原始文件名 |
group_trace |
1 |
2 (置零) |
true |
|
PE资源结构原始文件名信息,存在被溯源风险 |
| 资源语言 |
group_trace |
1 |
0 (不可清除) |
false |
|
PE资源语言信息,存在被溯源风险;无真实字节偏移,仅展示风险 |
| 静态IP |
control_trace |
2 |
0 (不可清除) |
false |
|
在其代码或资源中硬编码(非动态生成)用于伪装或启动的IP信息 |
| 静态域名 |
control_trace |
2 |
0 (不可清除) |
false |
|
在其代码或资源中硬编码(非动态生成)用于伪装或启动的域名信息 |
| 静态URL |
control_trace |
2 |
2 (置零) |
true |
http: |
在其代码或资源中硬编码(非动态生成)用于伪装或启动的URL信息 |
5. clear_info 公开字段
前端从 /api/v1/trace 每条 trace item 得到的 clear_info 仅含以下三个字段。内部编码类型 clear_value_type 不在公开响应中。
| 字段 | 类型 | 说明 |
clear_type | int | 0=不可清除, 2=置零清除, 3=替换清除 |
replace_clear | bool | 是否支持替换清除;为 true 时前端可展示替换输入 |
clear_replace | str | 替换的默认值(如 URL 的 "http:");不支持替换时为空字符串 |
6. clear_info -> /api/v1/trace/clear 校验规则
前端回传 clear_info 时,后端在 parser 层执行以下校验,不合法返回 400。
| 规则 | 条件 | 错误返回 |
| checked 项 size 一致性 | clear_size == clear_end - clear_start | 400 "clear_size must equal clear_end - clear_start" |
| checked 项 type 合法性 | clear_type ∈ {0, 2, 3} | 400 "unsupported clear_type" |
| file_md5 一致性(可选) | 非空时 file_md5 == md5(content) | 400 "file_md5_mismatch" |
注:此文档由 build_trace_detect_payload() 当前实现自动对应生成。随代码变更同步更新。
· 公开 clear_info 不含 clear_value_type(内部 parser 保留)。
· order_trace / attck_trace / user_trace 当前为空数组,预留后续编译过程溯源 / ATT&CK 映射 / 用户自定义风险。