一个为网络威胁情报(CTI)和安全运营团队打造的协同式、实时笔记平台。
ThreatPad 结合了现代生产力工具的速度与 CTI 特定的功能:IOC 自动提取、STIX 2.1 导出、结构化威胁模板和细粒度访问控制。
在线演示 — 使用 [email protected] / password123 登录


需要 Docker。就是这样。
git clone https://github.com/bhavikmalhotra/ThreatPad.git
cd ThreatPad
docker compose -f docker-compose.prod.yml up -d --build
打开 http://localhost:3000 — 系统会引导您创建管理员账户。
这将启动 PostgreSQL、Redis、API 服务器和 Web 应用。数据库模式会自动应用。
需要 Node.js 22+ 和 pnpm 9+。
pnpm install
cp .env.example .env
docker compose up -d # Postgres + Redis
pnpm --filter @threatpad/db push
pnpm --filter @threatpad/db seed # 可选的演示数据
pnpm dev
[email protected] / password123 (如果已填充演示数据)ThreatPad 使用基于注册表的插件系统。导出是第一个插件类型——未来计划增加更多类型。
在 apps/server/src/plugins/exporters/ 中创建一个文件:
import type { ExportPlugin } from '@threatpad/shared/types';
export const myExporter: ExportPlugin = {
key: 'myformat',
label: 'My Format',
fileExtension: '.xml',
contentType: 'application/xml',
async export({ noteId, iocs, note }) {
const xml = buildXml(iocs);
return { data: xml, contentType: 'application/xml', filename: `iocs-${noteId}.xml` };
},
};
在 apps/server/src/plugins/exporters/index.ts 中注册它:
import { myExporter } from './my-exporter.js';
exportRegistry.register(myExporter);
前端会自动发现新格式——无需更改 UI。
| 插件类型 | 用途 | 状态 |
|---|
| 导出 | IOC 导出格式(STIX、CSV、MISP、OpenIOC) | 可用 |
| 富化 | IOC 查询(VirusTotal、Shodan、AbuseIPDB) | 计划中 |
| IOC 模式 | 自定义指标类型(YARA、Bitcoin、MITRE ATT&CK) | 计划中 |
| 导入 | 从数据源导入(TAXII、MISP、OpenCTI) | 计划中 |