一键导入
building-incident-timeline-with-timesketch
使用 Timesketch 构建协作式取证事件时间线,对多源事件数据进行摄入、规范化和分析,用于攻击链重建和调查文档化。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
使用 Timesketch 构建协作式取证事件时间线,对多源事件数据进行摄入、规范化和分析,用于攻击链重建和调查文档化。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
通过分析 Zeek dns.log 中的高熵子域名查询、超量查询量、超长查询长度以及异常 DNS 记录类型,检测 DNS 隧道和数据外泄中的隐蔽通道通信。适用于:当需要狩猎基于 DNS 的 C2 或数据外泄通道、调查异常 DNS 查询模式、或响应涉及 DNS 隧道工具(iodine、dnscat2、DNSExfiltrator)的威胁情报时使用。
实施 Google 的 BeyondCorp 零信任访问模型,通过 IAP、Access Context Manager 和 Chrome Enterprise Premium,消除网络边界的隐式信任,强制执行基于身份的访问控制,实现无 VPN 的安全应用访问。适用于将传统 VPN 替换为零信任架构、部署 Identity-Aware Proxy、配置设备信任策略、或为远程办公实施上下文感知访问控制时使用。
在授权的安全评估过程中,使用 Burp Suite 的扫描器、Intruder 和 Repeater 工具识别和验证跨站脚本(XSS)漏洞。适用于 Web 应用渗透测试中检测反射型、存储型和 DOM 型 XSS,验证自动化扫描器报告的 XSS 发现,以及评估 CSP 和 XSS 过滤器的有效性时使用。
攻击活动溯源归因分析涉及系统性地评估证据,以确定哪个威胁行为者或组织对某次网络行动负责。本技能涵盖使用 Diamond Model 和 ACH(竞争假设分析)收集并加权溯源归因指标、分析基础设施重叠、TTP 一致性、恶意软件代码相似性、操作时序模式和语言痕迹,以构建置信度加权的溯源归因评估。
从 PE 文件和内存转储中提取并分析 Cobalt Strike beacon 配置,以识别 C2 基础设施、Malleable C2 配置文件和攻击者操作惯例。
使用 Ghidra 及专用脚本对 Go 编译的恶意软件进行逆向工程,包括函数恢复、字符串提取和去符号表 Go 二进制文件的类型重建。
| name | building-incident-timeline-with-timesketch |
| description | 使用 Timesketch 构建协作式取证事件时间线,对多源事件数据进行摄入、规范化和分析,用于攻击链重建和调查文档化。 |
| domain | cybersecurity |
| subdomain | incident-response |
| tags | ["timesketch","timeline-analysis","forensic-timeline","plaso","dfir","incident-investigation","collaborative-forensics"] |
| version | 1.0 |
| author | mahipal |
| license | Apache-2.0 |
Timesketch 是由 Google 开发的开源协作式取证时间线分析工具,使安全团队能够在事件调查期间可视化和分析来自多个来源的按时间顺序排列的数据。它摄入来自端点、服务器和云服务的日志和制品(Artifact),将其规范化为统一的可搜索时间线,并提供强大的分析能力,包括内置分析器、打标签(Tagging)、素描(Sketch)注释和故事构建。Timesketch 与 Plaso(log2timeline)集成进行制品解析,并支持直接 CSV/JSONL 摄入以在主动事件期间快速构建时间线。
证据来源 --> Plaso/log2timeline --> Plaso 存储文件 (.plaso)
| |
v v
CSV/JSONL --> Timesketch 导入器 --> OpenSearch 索引
|
v
Timesketch Web UI
(搜索、分析、故事)
# 克隆 Timesketch 仓库
git clone https://github.com/google/timesketch.git
cd timesketch
# 运行部署辅助脚本
cd docker
sudo docker compose up -d
# 默认访问:https://localhost:443
# 首次运行时生成管理员凭据
# 使用 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
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"
# 直接导入 CSV
timesketch_importer -s "Case-2025-001" -t "Quick-Triage" events.csv
{"message": "Suspicious logon from 10.1.2.3", "datetime": "2025-01-15T08:30:00Z", "timestamp_desc": "Event Recorded", "source_short": "Security", "hostname": "DC01"}
# 上传 Sigma 规则用于自动检测
timesketch_importer --sigma-rules /path/to/sigma/rules/
1. 登录 Timesketch Web 界面
2. 创建新素描(调查案例)
3. 将相关时间线添加到素描中
4. 设置素描描述和标签
Timesketch 包含自动识别以下内容的分析器:
# 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"
1. 在素描中创建新故事
2. 添加支持每个发现的搜索视图
3. 用调查员注释标注关键事件
4. 将事件链接到 MITRE ATT&CK 技术
5. 按时间顺序记录攻击叙事
6. 导出故事以纳入事件报告
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 进行更快的制品解析(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 流量 |
| 技术 | 时间线指标 |
|---|---|
| 初始访问(TA0001) | 第一个恶意事件、钓鱼邮件接收 |
| 执行(T1059) | PowerShell/CMD 事件、进程创建 |
| 持久化(TA0003) | 注册表修改、计划任务、服务 |
| 横向移动(TA0008) | 远程登录、SMB 连接、RDP 会话 |
| 数据外泄(TA0010) | 大量数据传输、云存储上传 |