0xhmza/Learn-TTPs
GitHub: 0xhmza/Learn-TTPs
基于 SM-2 间隔重复算法的 MITRE ATT&CK 离线抽认卡应用,帮助安全从业者系统掌握攻防技术与缓解措施。
Stars: 0 | Forks: 0
# 学习 TTPs
对手的 TTPs 并非一成不变。MITRE ATT&CK 每年更新两次,会出现新的子技术,战术会被重新分类,而那些没有跟上变化的防御者正在悄无声息地落后。**Learn TTPs** 是一个静态站点的抽认卡应用,它将整个 ATT&CK 知识库转化为间隔重复的学习卡组 —— 无需账户,无需服务器,无需安装。
## 为什么开发这个工具
只读一遍技术描述并不意味着你能在实际场景中认出它。间隔重复会强迫你在大脑即将遗忘之前回到卡片上 —— 经过几周的每日复习,像 *T1059.001 – PowerShell* 或 *T1078 – Valid Accounts* 这样的检测名称就不再是冷知识,而会变成一种条件反射。
MITRE ATT&CK 框架是红队、蓝队、威胁情报分析师和 SOC 分流的标准词汇。熟练掌握它意味着能更快地编写工单、构建更敏锐的威胁模型,并能与你合作的每个团队进行更高效的对话。
## 功能特性
- **Anki 风格的 SM-2 算法** —— 卡片根据你的掌握程度进行调度;简单的卡片重现频率较低,困难的卡片则更频繁。
- **两个卡组** —— *Techniques*(技术,按战术分组)和 *Mitigations*(缓解措施,对策和防御控制)。
- **会话统计** —— 查看每个会话的重来 / 困难 / 良好 / 简单 的分布情况。
- **持久化进度** —— 状态存储在 IndexedDB 中(localStorage 作为后备);只有在重置时才会清除。
- **完全离线** —— 无 CDN 字体,无外部请求。打开 `index.html` 即可开始学习。
- **可配置的每次会话新卡片数量** 上限。
## 数据
抽认卡内容直接来源于 MITRE ATT&CK 数据集:
| File | Contents |
|------|----------|
| `techniques.csv` | Enterprise ATT&CK 技术和子技术(ID、名称、描述、战术、平台) |
| `mitigations.csv` | ATT&CK 缓解措施(ID、名称、描述) |
当新版本发布时,这两个文件可以从官方 MITRE ATT&CK GitHub release 进行更新。
## 使用方法
```
# 克隆并打开 — 就是这样
git clone https://github.com/0xhmza/learn-ttps.git
cd learn-ttps
# 在浏览器中打开 index.html
```
或访问在线版本 **[0xhmza.github.io/learn-ttps](https://0xhmza.github.io/learn-ttps)** *(如果已托管)*。
## 项目结构
```
.
├── index.html # App shell and all views
├── style.css # Single-file stylesheet
├── app.js # SM-2 engine, CSV parser, routing
├── techniques.csv # ATT&CK techniques dataset
├── mitigations.csv # ATT&CK mitigations dataset
└── data/ # Optional extended data
```
## 调度器工作原理
卡片在三种状态间循环:**New(新卡) → Learning(学习中) → Review(复习)**。
| Rating | Meaning | Effect |
|--------|---------|--------|
| Again | 完全忘记 | 重置为 Learning;间隔 → 1 天 |
| Hard | 记得有些吃力 | 间隔 × 1.2 |
| Good | 正常回忆 | 间隔 × ease factor(起始值为 2.5) |
| Easy | 瞬间回忆 | 间隔 × ease × 1.3;ease factor +0.15 |
Ease factor 会在选择 *Hard* 和 *Again* 时降低,防止简单的卡片主导你的队列。
## 许可证
MIT —— 你可以用它做任何你想做的事,只是不要声称是你编写了 ATT&CK 数据。
标签:Anki, Cloudflare, IndexedDB, MITRE ATT&CK, Ruby, SM-2算法, TGT, TTP, 多模态安全, 威胁情报, 学习工具, 安全培训, 开发者工具, 攻防演练, 数据可视化, 数据展示, 知识库, 离线应用, 红队, 网络安全, 自定义脚本, 闪卡, 间隔重复, 隐私保护, 静态网站