reverse-skills-max: initial public release (restored, redacted, hardened)

This commit is contained in:
baradok609hecl1pq6qi
2026-10-20 02:17:15 +03:00
commit da24c2bd20
2227 changed files with 443931 additions and 0 deletions

View File

@@ -0,0 +1,190 @@
---
name: docs-generator
description: |
Creates task-oriented technical documentation with progressive disclosure. Use when writing READMEs, API docs, architecture docs, or markdown documentation.
Also use this skill at the END of any completed reverse engineering, penetration testing, CTF, or security analysis task to generate a formal report in the user's project directory.
Trigger keywords: 写报告, 写文档, 出报告, writeup, 技术文档, report, documentation.
---
# Technical Documentation
## ACTION REQUIRED(读完后立刻执行)
1. `NOW`:确认当前任务是否命中本 skill 的适用范围
2. `NOW`:读取 `../tool-index.md`,校验工具可用性和实际路径
3. `NEXT`:缺工具时调用 bootstrap,不要猜路径
4. `ACT`:进入"工作流"第一步并执行,不要停在确认状态
For writing style, tone, and voice guidance, use `Skill(ce:writer)` with **The Engineer** persona.
## 安全/逆向任务文档输出
当逆向/渗透/CTF/安全分析任务完成后,本 skill 负责在**用户项目目录**生成正式技术文档。
### 触发时机
1. 逆向任务完成,已产出核心结论(算法还原、签名破解、绕过方案等)
2. 渗透测试完成,已发现并验证漏洞
3. CTF 题目解出,已拿到 flag
4. 用户明确要求"写一份报告/文档/writeup"
### 模板选择
| 任务类型 | 使用模板 |
|---------|---------|
| APK/二进制/so 逆向 | `references/security-report-templates.md` → 逆向工程报告 |
| 渗透测试/漏洞挖掘 | `references/security-report-templates.md` → 渗透测试报告 |
| CTF 解题 | `references/security-report-templates.md` → CTF Writeup |
| JS/Web 签名逆向 | `references/security-report-templates.md` → 签名逆向报告 |
| 恶意软件 / APT / 病毒分析报告 | `references/security-report-templates.md` + **`references/vendor-report-rules.md`** |
| 通用技术文档 | `references/templates.md` → README / API 文档 |
### 厂商报告结构(Issue #65)
安全类正式报告 **MUST** 读取 `references/vendor-report-rules.md`(只取结构,不抄厂商原文)。仅在任务证据或用户明确要求时选择厂商 flavor;普通逆向和其他任务使用 `flavor = null`。
| Flavor | 何时用 | 主参考骨架 |
|--------|--------|------------|
| `malware` | 明确恶意样本、木马、白加黑、钓鱼投毒 | 火绒式:概述→流程→样本分析→应急处置→IOC |
| `apt` | APT/战役/团伙/多阶段感染链/行业定向 | 卡巴斯基 Securelist 式:摘要→感染链→调查叙事→Interesting findings→技术分析→检测缓解→IOC |
| `flavor = null` | 普通 APK/ELF/PE/Mach-O 逆向、算法/固件分析、渗透 / CTF / JS 签名 | 原任务模板 + Base 通用元素;不套 malware/APT 专属章节 |
原则:**模板在精不在多** —— 仅上述 2 个厂商 flavor,不另建第三套全文模板。
与 §0 Evidence→Finding→Path **同时生效**;冲突时 Evidence 契约优先。
### 输出规范
- **输出位置**:用户当前项目目录(不是 skill 包目录)
- **文件名格式**:`YYYY-MM-DD_[类型]-[目标简称]-report.md`
- **如果项目有 `docs/` 目录**:优先放在 `docs/` 下
- **编码**:UTF-8
- **语言**:跟随用户对话语言(中文对话出中文报告,英文对话出英文报告)
### 质量要求
- 所有代码块必须可直接运行或有明确上下文
- 不要有 placeholder/TODO
- 关键发现必须有证据支撑
- 复现步骤必须让第三方能独立重现
- 敏感信息(真实 token、密码、内部 URL)用占位符替代
- **MUST** 包含 Evidence → Finding → Path 链(见 `../ops/evidence-finding-path.md` 与模板 §0)
- **MUST** 读取 `references/vendor-report-rules.md`:选定 `malware` / `apt` 或 `flavor = null`;无 flavor 时只输出原任务模板和适用的 Base 元素,不强制 IOC/ATT&CK
- **SHOULD** 引用 case `scope.md` / `timeline.md`(`../scripts/case-init.ps1`)
### 图表集成
生成报告时,应在适当位置调用 `diagram-generator` skill 生成可视化图表:
| 报告类型 | 建议图表 | 图表类型 |
|---------|---------|---------|
| 逆向工程报告 | 函数调用关系图、数据流图 | Mermaid flowchart / sequenceDiagram |
| 渗透测试报告 | 攻击路径图、网络拓扑图 | Mermaid flowchart / Graphviz |
| CTF Writeup | 解题思路流程图 | Mermaid flowchart |
| JS 签名逆向报告 | 请求链路时序图、算法流程图 | Mermaid sequenceDiagram / flowchart |
图表以 Mermaid 代码块形式嵌入报告 markdown 中,确保可在 GitHub/GitLab 直接渲染。
---
## Core Principles
### 1. Progressive Disclosure
Reveal information in layers:
| Layer | Content | User Question |
|-------|---------|---------------|
| 1 | One-sentence description | What is it? |
| 2 | Quick start code block | How do I use it? |
| 3 | Full API reference | What are my options? |
| 4 | Architecture deep dive | How does it work? |
**Warnings, breaking changes, and prerequisites go at the TOP.**
### 2. Task-Oriented Writing
```markdown
<!-- Bad: Feature-oriented -->
## AuthService Class
The AuthService class provides authentication methods...
<!-- Good: Task-oriented -->
## Authenticating Users
To authenticate a user, call login() with credentials:
```
### 3. Show, Don't Tell
Every concept needs a concrete example.
## Formatting Standards
- **Sentence case headings**: "Getting started" not "Getting Started"
- **Max 3 heading levels**: Deeper means split the doc
- **Always specify language** in code blocks
- **Relative paths** for internal links
- **Tables** for structured data with 3+ attributes
## Quality Checklist
- [ ] Code examples tested and runnable
- [ ] No placeholder text or TODOs
- [ ] Matches actual code behavior
- [ ] Scannable without reading everything
- [ ] Reader knows what to do next
## Anti-Patterns
| Problem | Fix |
|---------|-----|
| Wall of text | Break up with headings, bullets, code, tables |
| Buried critical info | Warnings/breaking changes at TOP |
| Missing error docs | Always document what can go wrong |
## Templates
For README, API endpoint, and file organization templates, see [references/templates.md](references/templates.md).
## Related Skills
- `Skill(ce:writer)` - Writing style, tone, and voice (load The Engineer persona)
- `Skill(ce:visualizing-with-mermaid)` - Architecture and flow diagrams
---
## 按需自举(On-Demand Bootstrap)
本 skill 不依赖外部工具,纯文本生成。无需 bootstrap。
如果需要渲染图表嵌入报告,会调用 `diagram-generator/` skill。
---
## 路由上下文
**上游入口**: 所有安全/逆向 skill 在任务完成后自动调用本 skill
**触发方式**:
- 自动:任务完成后作为行为链第 9 步执行
- 手动:用户说"写报告"、"出文档"、"writeup"
**同级关联模块**:
- `apk-reverse/` — APK 逆向完成后生成逆向报告
- `ida-reverse/` — 二进制分析完成后生成逆向报告
- `radare2/` — CLI 分析完成后生成逆向报告
- `js-reverse/` — JS 签名逆向完成后生成签名报告
- `reverse-engineering/` — 通用逆向完成后生成逆向报告
- `field-journal/` — 报告内容同时作为进化日志的数据来源
**安全报告模板**: `references/security-report-templates.md`
**厂商报告规则**: `references/vendor-report-rules.md`(flavor: malware | apt | null)
**通用文档模板**: `references/templates.md`
## 任务完成自检(声称完成前 MUST 通过)
- [ ] 我是否执行了工作流中的每一步(而不是只阅读)?
- [ ] 我是否基于 `tool-index` 使用了真实工具路径?
- [ ] 我是否产出了可复现证据(命令/脚本/截图/报告)?
- [ ] 报告是否含 Evidence / Finding / Path(ops 契约)?
- [ ] 是否完成并回写了 RULES 要求的 Checklist 项?

View File

@@ -0,0 +1,338 @@
# 安全/逆向/渗透技术文档模板
本文件提供逆向工程、渗透测试、漏洞分析等安全类项目的文档模板。任务完成后,AI 应在用户项目目录下新建文档并按对应模板输出。
---
## 0. Evidence Chain(所有安全报告 MUST 包含)
> 契约全文:`skills/ops/evidence-finding-path.md`
> Case 目录:`work/<case>/`(`case-init.ps1`)
报告正文中 **MUST** 含以下章节(可并入「核心发现」但字段不得省略):
### 0.1 Scope 摘要
- 链到 `scope.md`:`auth` / `in_scope` / `network_profile`
- 无 scope → 不得宣称任务完成
### 0.2 Evidence
至少 1 条,字段:`E-id` / `source_ref` / `repro_command` / `content_hash|n/a`
### 0.3 Findings
每条:`F-id` / `severity|n/a_re` / `evidence_ids` / `confidence` / `location` / `status`
### 0.4 Path
至少 1 条 `P-id`:`path_type=attack|callflow|solve`,步骤可挂 E/F
### 0.5 Timeline 摘要
链到 `timeline.md` 或嵌入关键 3–10 条追加记录
---
---
## 0.6 Vendor structure overlay(专业厂商报告结构)
> 全文规则:`references/vendor-report-rules.md`(Issue #65)
> **MUST** 在生成安全类正式报告时读取并选型;**只抽结构,禁止抄录厂商原文/IOC 实例**。
| Flavor | 场景 | 骨架一句话 |
|--------|------|------------|
| `malware` | 明确恶意样本/普通木马/白加黑 | 火绒式:概述→流程→样本分析→应急处置→IOC |
| `apt` | APT/战役/多阶段链 | 卡巴式:摘要→感染链→调查→Interesting findings→技术分析→检测缓解→IOC |
| `flavor = null` | 普通逆向/渗透/CTF/JS 签名 | 本节任务模板 + 适用的 Base 通用元素 |
**通用元素(G1–G7)摘要**:G1 执行摘要 MUST · G2 Scope MUST · G3 E/F/P MUST · G4 IOC 仅 `malware`/`apt` MUST · G5 建议仅 `malware`/`apt` MUST · G6 附录 SHOULD · G7 ATT&CK 在 `apt` MUST
选型与章节顺序以 `vendor-report-rules.md` 为准;与 §0.1–0.5 冲突时 **Evidence 契约优先**。
## 1. 逆向工程报告模板
```markdown
# [目标名称] 逆向分析报告
> 分析日期:YYYY-MM-DD
> 分析人员:[AI / 人工]
> 工具链:[jadx / IDA / radare2 / Frida / ...]
## 1. 目标概述
| 属性 | 值 |
|------|---|
| 文件名 | |
| 文件类型 | APK / ELF / PE / Mach-O / ... |
| 大小 | |
| MD5 | |
| SHA256 | |
| 包名/入口 | |
## 2. 分析目标
<!-- 本次逆向要回答的核心问题 -->
## 3. 静态分析
### 3.1 基本信息
<!-- 架构、编译器、保护机制、字符串特征 -->
### 3.1.1 导入表 / 依赖(二进制 MUST)
<!-- 写入 E-imports / E-triage-imports 摘要;失败也要记 Evidence,禁止跳过 -->
### 3.2 关键函数/类
<!-- 列出定位到的关键逻辑,附代码片段 -->
### 3.3 加密/签名算法
<!-- 如果涉及加密,说明算法、密钥来源、参数构造 -->
## 4. 动态分析
### 4.1 Hook 记录
<!-- Frida / xposed / 其他 hook 的目标和结果 -->
### 4.2 运行时行为
<!-- 网络请求、文件操作、进程行为 -->
## 5. 核心发现
<!-- 用编号列出关键结论 -->
1. ...
2. ...
3. ...
## 6. 复现步骤
<!-- 让其他人能重现你的分析结果 -->
```bash
# 关键命令
```
## 7. 遗留问题
<!-- 没有完全解决的点 -->
## 8. 附件
<!-- hook 脚本、解密代码、截图等 -->
```
---
---
## 1b. 恶意软件 / APT 报告(厂商 flavor)
当任务为恶意软件分析、病毒报告、APT/战役分析时,**不要**仅用上面「逆向工程」骨架交差;普通逆向任务保持原模板,不自动选择 vendor flavor:
1. 读 `vendor-report-rules.md` 选 `malware` 或 `apt`
2. 按对应章节顺序输出
3. 仍 **MUST** 含 §0 Evidence 链;`malware` / `apt` flavor 另 **MUST** 含 IOC 表
4. 二进制样本的静态分析 **MUST** 含导入表 Evidence(与 radare2/ida/malware 硬门一致)
## 2. 渗透测试报告模板
```markdown
# [目标] 渗透测试报告
> 测试日期:YYYY-MM-DD
> 测试范围:[URL / IP / 应用名]
> 授权状态:[已授权 / CTF / 学习环境]
## 1. 执行摘要
<!-- 一段话总结:测试了什么、发现了什么、风险等级 -->
## 2. 测试范围
| 项目 | 详情 |
|------|------|
| 目标 | |
| 测试类型 | 黑盒 / 灰盒 / 白盒 |
| 测试时间 | |
| 工具 | |
## 3. 发现汇总
| # | 漏洞名称 | 风险等级 | 状态 |
|---|---------|---------|------|
| 1 | | 高/中/低/信息 | 已验证/待确认 |
## 4. 漏洞详情
### 4.1 [漏洞名称]
**风险等级**:高 / 中 / 低
**描述**:
**影响**:
**复现步骤**:
1. ...
2. ...
3. ...
**证据**:
```
<!-- 请求/响应/截图/payload -->
```
**修复建议**:
## 5. 攻击路径
<!-- 如果有完整攻击链,画出路径 -->
```
入口 → 信息收集 → 漏洞利用 → 权限提升 → 目标达成
```
## 6. 工具与环境
| 工具 | 版本 | 用途 |
|------|------|------|
| | | |
## 7. 修复建议总结
| 优先级 | 建议 |
|--------|------|
| P0 | |
| P1 | |
| P2 | |
## 8. 附录
<!-- 完整 payload、脚本、配置文件等 -->
```
---
## 3. CTF Writeup 模板
```markdown
# [比赛名] - [题目名] Writeup
> 分类:Web / Reverse / Pwn / Crypto / Misc / Forensics
> 难度:Easy / Medium / Hard
> 分值:N pts
> 解题时间:
## 题目描述
<!-- 原题描述 -->
## 解题思路
### 第一步:信息收集
<!-- 观察到了什么 -->
### 第二步:漏洞/突破口
<!-- 找到了什么关键点 -->
### 第三步:利用
<!-- 怎么利用的 -->
## 关键代码/Payload
```python
# exploit code
```
## Flag
```
flag{...}
```
## 踩坑记录
<!-- 走过的弯路 -->
## 知识点
<!-- 这道题涉及的知识点,方便后续复习 -->
```
---
## 4. JS/Web 签名逆向报告模板
```markdown
# [站点/应用] 签名参数逆向报告
> 分析日期:YYYY-MM-DD
> 目标接口:[URL]
> 签名字段:[字段名]
## 1. 目标请求
```http
POST /api/xxx HTTP/1.1
Host: example.com
param1=xxx&sign=<目标字段>
```
## 2. 定位过程
### 2.1 断点/Hook 方式
<!-- 怎么找到签名生成位置的 -->
### 2.2 调用栈
<!-- 关键调用链 -->
## 3. 算法还原
### 3.1 算法类型
<!-- HMAC-SHA256 / AES / 自定义 / ... -->
### 3.2 参数构造
<!-- 哪些字段参与签名、排序规则、分隔符 -->
### 3.3 密钥来源
<!-- 硬编码 / 接口返回 / 时间戳派生 / ... -->
## 4. 本地复现代码
```javascript
// Node.js 复现
```
## 5. 验证结果
<!-- 用复现代码生成的签名与实际请求对比 -->
## 6. 反爬/风控注意事项
<!-- 频率限制、设备指纹、环境检测等 -->
```
---
## 5. 文档输出规范
### 输出位置
- 文档默认输出到**用户当前项目目录**(不是 skill 包目录)
- 文件名格式:`YYYY-MM-DD_[类型]-[目标简称]-report.md`
- 如果用户项目有 `docs/` 目录,优先放在 `docs/` 下
### 输出时机
AI 在以下时机自动调用本 skill 生成文档:
1. 逆向任务完成,已产出核心结论
2. 渗透测试完成,已发现并验证漏洞
3. CTF 题目解出,已拿到 flag
4. 用户明确要求"写一份报告/文档"
### 质量要求
- 所有代码块必须可直接运行或有明确上下文
- 不要有 placeholder/TODO(如果某部分确实未完成,标注"待补充"并说明原因)
- 关键发现必须有证据支撑(命令输出、截图描述、代码片段)
- 复现步骤必须让第三方能独立重现

View File

@@ -0,0 +1,102 @@
# Documentation Templates
## Contents
- [README.md](#readmemd)
- [API Endpoint Documentation](#api-endpoint-documentation)
- [File System Organization](#file-system-organization)
## README.md
```markdown
# Project Name
One-line description of what this does.
## Quick Start
\`\`\`bash
yarn install && yarn dev
\`\`\`
## Installation
Step-by-step setup.
## Usage
\`\`\`typescript
import { thing } from "package";
const result = thing.doSomething();
\`\`\`
## Configuration
| Variable | Required | Default | Description |
| --------- | -------- | ------- | ------------ |
| `API_KEY` | Yes | - | Your API key |
## Documentation
- [API Reference](./docs/api/README.md)
- [Architecture](./docs/architecture/overview.md)
```
## API Endpoint Documentation
```markdown
# Resource Name
Brief description.
## GET /resource
Retrieves resources.
**Parameters**
| Name | Type | Required | Description |
| ------- | ------ | -------- | ------------------------- |
| `limit` | number | No | Max results (default: 20) |
**Response**
\`\`\`json
{
"data": [...],
"total": 100
}
\`\`\`
**Example**
\`\`\`typescript
const { data } = await api.get("/resource", { limit: 10 });
\`\`\`
**Errors**
| Status | Code | Description |
| ------ | ---------------- | ------------------------ |
| 400 | `INVALID_PARAMS` | Invalid query parameters |
| 401 | `UNAUTHORIZED` | Missing or invalid auth |
```
## File System Organization
```
/docs
├── README.md # Docs index
├── /api
│ ├── README.md # API overview
│ ├── authentication.md
│ └── {resource}.md
├── /architecture
│ ├── overview.md
│ └── data-flow.md
├── /guides
│ ├── getting-started.md
│ └── troubleshooting.md
└── /features
└── {NNN}-{feature}.md
```

View File

@@ -0,0 +1,218 @@
# Vendor Report Rules(专业厂商报告结构叠加层)
> Issue #65 问题 2。
> **只抽结构与写法规则,禁止抄录任何厂商报告正文、图表、真实 IOC 实例或大段表述。**
> 本文件是**叠加层**:不替换 `security-report-templates.md` 的任务模板,也不削弱 §0 Evidence→Finding→Path。
结构参考(公开样例,仅骨架):
| Flavor | 主参考 | 场景 |
|--------|--------|------|
| `malware` | 火绒安全病毒/技术分析报告 | 明确的普通木马、白加黑、钓鱼投毒、恶意样本 |
| `apt` | 卡巴斯基 Securelist / APT 战役报告(如 MATA) | APT、团伙战役、多阶段感染链、行业定向 |
原则:**模板在精不在多** —— 仅 2 个厂商 flavor + 1 份通用专业元素;普通逆向、渗透、CTF 和 JS 报告保持任务模板,不默认伪装成恶意软件报告。
---
## 0. 何时启用
在 `docs-generator` 生成**安全类**报告时(逆向 / 恶意软件 / 渗透收尾 / 用户明确要求「专业报告」「厂商风格」)**MUST** 读取本文件。只有任务证据或用户明确要求支持时才选择厂商 flavor;否则使用 `flavor = null`,仅叠加通用专业元素和原任务模板。
| 信号 | Flavor |
|------|--------|
| APT / 团伙 / 战役 / 多阶段 C2 / 行业定向 / ICS / spear-phish 战役 | `apt` |
| 明确恶意样本、木马、窃密、白加黑、仿冒站点 | `malware` |
| 普通 APK/ELF/PE/Mach-O 逆向、算法分析、固件分析、渗透测试、CTF、JS 签名 | `flavor = null`;使用原任务模板和通用专业元素最小集 |
用户显式指定「按卡巴/APT」「按火绒/病毒报告」时,覆盖自动选型。
---
## 1. 通用专业元素(Base)
下列 Base 元素按报告类型应用。标 **MUST** 的不可省略;与特定 flavor 相关的元素不得为了填模板而出现在无关任务中。没有适用内容时,使用 `n/a` 并说明原因。
| # | 元素 | 要求 |
|---|------|------|
| G1 | 执行摘要 / 概述 | **MUST**:3–8 句:分析了什么、最严重结论、影响面、建议动作 |
| G2 | 范围与授权 | **MUST**:链到 case `scope.md`(见模板 §0.1) |
| G3 | Evidence→Finding→Path | **MUST**:见 `security-report-templates.md` §0 与 `skills/ops/evidence-finding-path.md` |
| G4 | IOC 表 | `malware` / `apt` **MUST**;其他任务仅在存在相关指标时出现 |
| G5 | 建议 / 处置 | `malware` / `apt` **MUST**:至少 1 条可执行建议;其他任务按原任务模板 |
| G6 | 附录元数据 | **SHOULD**:工具与版本、样本哈希、完整复现命令 |
| G7 | ATT&CK 映射 | **MUST**(`apt` 下;无适用技术时 `n/a` + 原因);其他任务 **SHOULD** |
### 1.1 IOC 表最小列
```markdown
| 类型 | 值 | 上下文 | 首次/最后发现 | 来源证据 | 置信度 |
|------|----|--------|---------------|----------|--------|
| file_sha256 / file_md5 / domain / ip:port / url / mutex / path / registry | … | 何处发现 | YYYY-MM-DD / n/a | E-id | high/med/low |
```
### 1.2 版权与安全边界
- 不得粘贴厂商 PDF/网页正文段落或图注充作己方分析。
- 真实 token、内网 URL、客户标识用占位符。
- 未授权目标不得输出可直接利用的攻击步骤细节(遵循 case scope / RULES)。
---
## 2. Flavor:`malware`(火绒式 · 明确选择)
**叙事目标**:让读者 5 分钟内看懂「是什么 → 怎么来的 → 样本怎么干的 → 怎么处置 → 有哪些 IOC」。
### 2.1 推荐章节顺序
```markdown
# [标题:一句话威胁定性]
> 分析日期 / 分析方 / 样本标识(哈希)
## 1. 概述
(G1:发现渠道、伪装手法、核心技术点、产品侧可否查杀——若未知写 n/a)
## 2. 攻击 / 感染流程
(流程图:Mermaid 或分步列表;对应 Path `path_type=attack`)
## 3. 样本分析
### 3.1 样本溯源
### 3.2 静态分析
(**MUST** 纳入导入表 / 基础身份 Evidence:E-imports 或等价;见 radare2/ida/malware 硬门)
### 3.3 动态分析 / 行为
(无动态条件则 n/a + 原因)
### 3.4 核心发现(Findings 表或编号列表,挂 evidence_ids)
## 4. 应急处置方式
(仅在授权范围内执行:先确认 scope 并保全样本、内存、进程树、网络连接和日志等证据,再隔离主机;经负责人批准后再终止进程、隔离/清除文件、检查 hosts/启动项、全盘查杀并复核。不得在证据保全前直接删除文件。)
## 5. 总结说明
(给普通用户/运维的风险提醒与预防)
## 6. IOC 信息
(G4 表)
## 7. Evidence 链摘要
(§0:E / F / P / Timeline;可与 §3.4 合并但字段不省)
## 8. 附录
(工具版本、复现命令、脚本路径)
```
### 2.2 文风
- 中文用户默认中文;先结论后细节。
- 静态分析按「组件/阶段」分层,避免无结构的长日志粘贴。
- 处置步骤必须可独立执行,禁止「加强安全意识」空话充数。
---
## 3. Flavor:`apt`(卡巴斯基 Securelist 式)
**叙事目标**:讲清战役级故事——谁在何时用何链打了谁,调查如何推进,组件如何分工,防守方拿什么去检。
### 3.1 推荐章节顺序
```markdown
# [战役/集群名称]:[一句话影响]
> 日期 / 团队 / 行业与地区范围(若可知)
## 1. Executive summary
(G1:时间窗、受害者画像、入口、家族/集群归属、持续时长、最重要结论)
## 2. The infection chain
(分阶段:投递 → exploit/loader → 主马 → 后渗透/窃密;未知段明确 “limited visibility”
对应 Path;建议配链图)
## 3. Incident investigation
(调查叙事:关键转折、内网代理/C2 特征、如何扩大范围;挂 Timeline)
## 4. Interesting findings
(3–7 条非显而易见要点,每条尽量挂 E-id / F-id)
## 5. Technical analysis
### 5.1 组件总览表(loader / trojan / stealer / …)
### 5.2 分组件行为与配置
### 5.3 静态要点(含导入表/加壳/持久化 Evidence)
### 5.4 网络与 C2
(可附 ATT&CK 表 G7)
## 6. Detection and mitigation
(检测思路 / 狩猎线索 / 缓解优先级;非空泛口号)
## 7. IOC
(G4;按类型分组)
## 8. Evidence 链摘要
(§0 字段)
## 9. Appendix
(样本列表与哈希、工具版本、参考公开编号;不抄外部报告正文)
```
### 3.2 文风
- 时间线与「可见性限制」要诚实写。
- Interesting findings ≠ 重复概述;写调查中真正关键的异常点。
- 组件分析用表:角色 / 持久化 / C2 / 依赖,再展开。
---
## 4. 与现有任务模板的挂接
| 任务模板(`security-report-templates.md`) | 叠加方式 |
|------------------------------------------|----------|
| 1. 逆向工程报告 | 默认 `flavor = null`,保留原「静态/动态/复现」骨架和导入表等硬门 Evidence;只有明确恶意样本才套 §2 |
| 2. 渗透测试报告 | `flavor = null`;补 Base 中适用的 G1–G3,攻击路径对齐 §0 Path,不强制 IOC |
| 3. CTF Writeup | `flavor = null`;保留原题目、解题思路和复现结构,不强制 IOC/ATT&CK |
| 4. JS/Web 签名逆向 | `flavor = null`;使用原概述 → 定位 → 算法 → 复现骨架,不套 malware |
| 恶意软件 / APT 专项 | 显式选 `malware` 或 `apt` 全文骨架 |
**冲突解决**:§0 Evidence 链字段与 scope 门禁 **永远优先**;flavor 只改叙事顺序与专业外壳,不得删除 E/F/P。
---
## 5. 选型伪代码
```
if user_requests_kaspersky or apt or threat_campaign:
flavor = apt
elif user_requests_huorong or vir_report or explicit_malware:
flavor = malware
else:
flavor = null # 原任务模板 + Base 中适用的元素
emit(base_report)
if flavor in (malware, apt):
emit(report with flavor outline)
```
---
## 6. 完成检查清单(写报告末自检)
- [ ] 已选 flavor 或显式「任务模板 + 最小集」
- [ ] G1 概述存在且非空话
- [ ] §0 E/F/P 字段完整
- [ ] `malware` / `apt` 报告有 IOC 表(或 n/a+原因)
- [ ] `malware` / `apt` 报告有可执行建议/处置
- [ ] 无 flavor 的任务没有被套入 malware/APT 专属章节
- [ ] 无厂商原文粘贴、无 placeholder/TODO
- [ ] 导入表等硬门 Evidence 已进入静态/技术分析(若本任务做过二进制分析)
---
## 7. 来源登记
- Kaspersky Securelist, “Updated MATA attacks industrial companies in Eastern Europe”: <https://securelist.com/updated-mata-attacks-industrial-companies-in-eastern-europe/110829>(结构参考;访问日期:2026-08-11)
- 火绒安全公开技术文章入口:<https://www.huorong.cn/>(站点入口;访问日期:2026-08-11。具体文章 URL、标题和访问日期应在实际引用时登记)
- ATT&CK 技术编号仅作为规范化映射,必须由本次 Evidence 支撑;不得把外部报告中的 IOC 自动带入当前报告。
---
## 8. 非目标
- 不维护 Mandiant/CrowdStrike/奇安信等额外全文模板(结构已由双 flavor 覆盖常见需求)。
- 不自动爬取厂商站点填报告。
- 不因 flavor 降低 Evidence 契约或授权范围。