building-incident-timeline-with-timesketch

使用 Timesketch 构建协作式取证事件时间线,对多源事件数据进行摄入、规范化和分析,用于攻击链重建和调查文档化。

9 stars

Best use case

building-incident-timeline-with-timesketch is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

使用 Timesketch 构建协作式取证事件时间线,对多源事件数据进行摄入、规范化和分析,用于攻击链重建和调查文档化。

Teams using building-incident-timeline-with-timesketch should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/building-incident-timeline-with-timesketch/SKILL.md --create-dirs "https://raw.githubusercontent.com/killvxk/cybersecurity-skills-zh/main/skills/building-incident-timeline-with-timesketch/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/building-incident-timeline-with-timesketch/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How building-incident-timeline-with-timesketch Compares

Feature / Agentbuilding-incident-timeline-with-timesketchStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

使用 Timesketch 构建协作式取证事件时间线,对多源事件数据进行摄入、规范化和分析,用于攻击链重建和调查文档化。

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

SKILL.md Source

# 使用 Timesketch 构建事件时间线

## 概述

Timesketch 是由 Google 开发的开源协作式取证时间线分析工具,使安全团队能够在事件调查期间可视化和分析来自多个来源的按时间顺序排列的数据。它摄入来自端点、服务器和云服务的日志和制品(Artifact),将其规范化为统一的可搜索时间线,并提供强大的分析能力,包括内置分析器、打标签(Tagging)、素描(Sketch)注释和故事构建。Timesketch 与 Plaso(log2timeline)集成进行制品解析,并支持直接 CSV/JSONL 摄入以在主动事件期间快速构建时间线。

## 架构与组件

### 核心组件
- **Timesketch 服务器**:具有 REST API 的 Web 应用,用于时间线管理
- **OpenSearch/Elasticsearch**:时间线事件的后端存储和搜索引擎
- **PostgreSQL**:素描(Sketch)、故事和用户数据的元数据存储
- **Redis**:后台处理的任务队列管理
- **Celery Workers**:时间线上传和分析器的异步处理

### 数据流
```
证据来源 --> Plaso/log2timeline --> Plaso 存储文件 (.plaso)
     |                                           |
     v                                           v
  CSV/JSONL --> Timesketch 导入器 --> OpenSearch 索引
                                           |
                                           v
                                    Timesketch Web UI
                                    (搜索、分析、故事)
```

## 部署

### Docker 部署(推荐)
```bash
# 克隆 Timesketch 仓库
git clone https://github.com/google/timesketch.git
cd timesketch

# 运行部署辅助脚本
cd docker
sudo docker compose up -d

# 默认访问:https://localhost:443
# 首次运行时生成管理员凭据
```

### 系统要求
- 最低 8 GB RAM(大型调查建议 16+ GB)
- 最低 4 个 CPU 核心
- OpenSearch 索引的 SSD 存储
- 已安装 Docker 和 Docker Compose

## 数据摄入方法

### 方法 1:Plaso 集成(全面)
```bash
# 使用 log2timeline 处理磁盘镜像
log2timeline.py --storage-file evidence.plaso /path/to/disk/image

# 处理 Windows 事件日志
log2timeline.py --parsers winevtx --storage-file windows_events.plaso /path/to/evtx/

# 处理多个证据来源
log2timeline.py --parsers "winevtx,prefetch,amcache,shimcache,userassist" \
  --storage-file full_analysis.plaso /path/to/mounted/image/

# 将 Plaso 文件导入 Timesketch
timesketch_importer -s "Case-2025-001" -t "Endpoint-WKS01" evidence.plaso
```

### 方法 2:CSV 导入(快速摄入)
```csv
message,datetime,timestamp_desc,source,hostname
"User login detected","2025-01-15T08:30:00Z","Event Recorded","Security Log","DC01"
"PowerShell execution","2025-01-15T08:31:15Z","Event Recorded","PowerShell","WKS042"
```

```bash
# 直接导入 CSV
timesketch_importer -s "Case-2025-001" -t "Quick-Triage" events.csv
```

### 方法 3:JSONL 导入(结构化数据)
```json
{"message": "Suspicious logon from 10.1.2.3", "datetime": "2025-01-15T08:30:00Z", "timestamp_desc": "Event Recorded", "source_short": "Security", "hostname": "DC01"}
```

### 方法 4:Sigma 规则集成
```bash
# 上传 Sigma 规则用于自动检测
timesketch_importer --sigma-rules /path/to/sigma/rules/
```

## 分析工作流程

### 步骤 1:创建调查素描(Sketch)
```
1. 登录 Timesketch Web 界面
2. 创建新素描(调查案例)
3. 将相关时间线添加到素描中
4. 设置素描描述和标签
```

### 步骤 2:运行内置分析器
Timesketch 包含自动识别以下内容的分析器:
- **浏览器搜索分析器**:从浏览器历史中提取搜索查询
- **事件链分析器**:链接相关事件(下载 -> 执行)
- **域名分析器**:提取并分类域名
- **特征提取分析器**:识别 IP、URL、哈希
- **地理位置分析器**:将事件映射到地理位置
- **相似度评分器**:在时间线之间查找相似事件
- **Sigma 分析器**:将事件与 Sigma 检测规则进行匹配
- **账户查找器**:识别用户账户活动模式
- **标签器(Tagger)**:根据预定义规则应用标签

### 步骤 3:搜索和过滤
```
# Timesketch 查询语言中的搜索示例

# 查找与特定用户相关的所有事件
source_short:Security AND message:"john.admin"

# 查找 PowerShell 执行事件
data_type:"windows:evtx:record" AND event_identifier:4104

# 查找横向移动(Lateral Movement)指标
source_short:Security AND event_identifier:4624 AND xml_string:"LogonType\">3"

# 在特定时间范围内查找事件
datetime:[2025-01-15T00:00:00 TO 2025-01-15T23:59:59]

# 查找文件创建事件
data_type:"fs:stat" AND timestamp_desc:"Creation Time"

# 按标签搜索
tag:"suspicious" OR tag:"lateral_movement"
```

### 步骤 4:构建调查故事
```
1. 在素描中创建新故事
2. 添加支持每个发现的搜索视图
3. 用调查员注释标注关键事件
4. 将事件链接到 MITRE ATT&CK 技术
5. 按时间顺序记录攻击叙事
6. 导出故事以纳入事件报告
```

## 高级功能

### 协作调查
- 多名分析师同时在同一素描上工作
- 评论和注释持久化在事件上
- 已保存的搜索在团队间共享
- 调查故事在上下文中记录发现

### API 自动化
```python
from timesketch_api_client import config
from timesketch_api_client import client as ts_client

# 连接到 Timesketch
ts = ts_client.TimesketchApi(
    host_uri="https://timesketch.local",
    username="analyst",
    password="password"
)

# 获取素描
sketch = ts.get_sketch(1)

# 搜索事件
search = sketch.explore(
    query_string='event_identifier:4624 AND LogonType:3',
    return_fields='datetime,message,hostname,source_short'
)

# 为事件添加标签
for event in search.get('objects', []):
    sketch.tag_event(event['_id'], ['lateral_movement'])
```

### 与 Dissect 集成
```bash
# 使用 Dissect 进行更快的制品解析(Plaso 的替代方案)
target-query -f timesketch://timesketch.local/case-001 \
  targets/hostname/ -q "windows.evtx" --limit 0
```

## 时间线构建的关键数据源

| 来源 | 解析器 | 取证价值 |
|--------|--------|---------------|
| Windows 事件日志(.evtx) | winevtx | 认证、进程执行、服务 |
| Prefetch 文件 | prefetch | 程序执行历史 |
| MFT ($MFT) | mft | 文件系统活动 |
| 注册表配置单元 | winreg | 系统配置、持久化(Persistence) |
| 浏览器历史 | chrome/firefox | Web 活动、下载 |
| Syslog | syslog | Linux/网络设备事件 |
| CloudTrail 日志 | jsonl | AWS API 活动 |
| Azure 活动日志 | jsonl | Azure 资源操作 |
| 防火墙日志 | csv/jsonl | 网络连接 |
| 代理日志 | csv/jsonl | HTTP/HTTPS 流量 |

## MITRE ATT&CK 映射

| 技术 | 时间线指标 |
|-----------|-------------------|
| 初始访问(TA0001) | 第一个恶意事件、钓鱼邮件接收 |
| 执行(T1059) | PowerShell/CMD 事件、进程创建 |
| 持久化(TA0003) | 注册表修改、计划任务、服务 |
| 横向移动(TA0008) | 远程登录、SMB 连接、RDP 会话 |
| 数据外泄(TA0010) | 大量数据传输、云存储上传 |

## 参考资料

- [Timesketch 官方文档](https://timesketch.org/)
- [Timesketch GitHub 仓库](https://github.com/google/timesketch)
- [CISA Timesketch 资源](https://www.cisa.gov/resources-tools/services/timesketch)
- [Hunt and Hackett: 使用 Dissect 和 Timesketch 进行可扩展取证](https://www.huntandhackett.com/blog/scalable-forensics-timeline-analysis-using-dissect-and-timesketch)
- [Plaso (log2timeline) 文档](https://plaso.readthedocs.io/)

Related Skills

triaging-security-incident

9
from killvxk/cybersecurity-skills-zh

使用 NIST SP 800-61r3 和 SANS PICERL 框架对安全事件进行初始分类,确定严重性、范围和所需响应行动。 按类型对事件分类,根据业务影响分配优先级,并路由到相应的响应团队。适用于事件分类、 安全告警分类、严重性评估、事件优先级排序或初始事件分析等请求场景。

triaging-security-incident-with-ir-playbook

9
from killvxk/cybersecurity-skills-zh

使用结构化 IR Playbook 对安全事件进行分类和优先排序,确定严重性、分配响应团队并启动适当的响应程序。

performing-timeline-reconstruction-with-plaso

9
from killvxk/cybersecurity-skills-zh

使用 Plaso(log2timeline)构建综合取证超级时间线,将文件系统、日志和制品中的事件关联整合为统一的时间顺序视图。

performing-ransomware-incident-response

9
from killvxk/cybersecurity-skills-zh

执行结构化的勒索软件事件响应,包括遏制、解密评估、从备份恢复以及根除勒索软件持久化机制。

performing-cloud-incident-containment-procedures

9
from killvxk/cybersecurity-skills-zh

在 AWS、Azure 和 GCP 中执行云原生事件遏制,包括隔离受攻陷资源、撤销凭据、保全取证证据,以及应用安全组限制以防止横向移动。

investigating-phishing-email-incident

9
from killvxk/cybersecurity-skills-zh

调查钓鱼(Phishing)邮件事件,从初始用户举报开始,经过邮件头分析、URL/附件引爆、 受影响用户识别和遏制行动,使用 Splunk、Microsoft Defender 和沙箱分析平台等 SOC 工具。 适用于收到的钓鱼邮件举报需要进行完整事件调查以确定范围和影响时。

implementing-ticketing-system-for-incidents

9
from killvxk/cybersecurity-skills-zh

实施集成事件工单系统,将 SIEM 告警对接 ServiceNow、Jira 或 TheHive, 用于结构化事件跟踪、SLA 管理、升级工作流和合规文档记录。 适用于 SOC 团队需要通过自动化工单创建、分配路由和解决跟踪来规范事件生命周期管理时。

implementing-ot-incident-response-playbook

9
from killvxk/cybersecurity-skills-zh

按照SANS PICERL框架、IEC 62443和NIST SP 800-82,开发并实施OT专用事件响应剧本,解决包括安全关键系统、有限停机容忍度以及IT SOC、OT工程和工厂运营团队协调等ICS特有挑战。

conducting-post-incident-lessons-learned

9
from killvxk/cybersecurity-skills-zh

主持结构化的事件后审查,以识别根本原因、记录有效和无效的措施,并提出可操作的改进建议以提升未来的事件响应能力。

conducting-phishing-incident-response

9
from killvxk/cybersecurity-skills-zh

通过分析举报的邮件、提取指标、评估凭据受攻陷情况、在全组织范围隔离恶意邮件并修复受影响账号来响应网络钓鱼事件。涵盖邮件头分析、URL/附件沙箱检测和邮箱范围清除操作。适用于网络钓鱼响应、邮件事件、凭据钓鱼、鱼叉式网络钓鱼调查或钓鱼修复相关请求。

conducting-malware-incident-response

9
from killvxk/cybersecurity-skills-zh

响应企业端点的恶意软件感染,识别恶意软件家族、确定感染向量、评估传播范围,并执行根除程序。涵盖从检测到遏制、分析、清除和恢复的完整生命周期。适用于恶意软件响应、恶意软件根除、木马清除、蠕虫遏制、恶意软件分类或受感染端点修复相关请求。

conducting-cloud-incident-response

9
from killvxk/cybersecurity-skills-zh

响应云环境(AWS、Azure、GCP)中的安全事件,执行基于身份的遏制、云原生日志分析、资源隔离和针对临时云基础设施的取证证据采集。适用于云事件响应、AWS 安全事件、Azure 受攻陷、GCP 泄露、云取证或云身份受攻陷相关请求。