eyweiss/threat-intel-tip

GitHub: eyweiss/threat-intel-tip

一个基于 Next.js 的威胁情报搜索与知识图谱探索原型,支持跨实体关联导航和别名解析,以无后端的纯前端方式展示情报关系网络。

Stars: 0 | Forks: 0

# 威胁情报平台 — eSentire PM 作业 这是一个演示威胁情报搜索和知识图谱探索的工作原型,作为 eSentire 的 PM 作业构建。 **在线演示:** [threat-intel-tip.vercel.app](https://threat-intel-tip.vercel.app)  ·  **仓库:** [eyweiss/threat-intel-tip](https://github.com/eyweiss/threat-intel-tip) ## 功能简介 该平台允许用户跨四种实体类型进行搜索——威胁行为者、CVE、攻击活动和行业——并在相关实体之间进行跳转,以探索它们之间的关联。 **核心流程:** 1. **支持别名解析的搜索** —— 输入“Nobelium”,系统会自动解析为 APT29 2. **筛选结果**,可按实体类型、置信度级别(已确认 / 疑似)以及行业进行筛选 3. **实体档案** 会展示所有已知关系,并按动词(利用、开展、针对、重叠)进行分组,每项关系都附有置信度徽章和来源引用 4. **跳转导航** —— 点击任何关联的实体即可跳转至其档案;面包屑会记录探索路径 5. **空状态的透明度** —— 没有数据的区域会明确显示“暂无数据”,而不是将其隐藏,从而区分“缺乏记录”与“缺乏事实” **任务书中的示例路径:** 搜索“Nobelium” → APT29 档案 → Log4Shell(被 5 个行为者利用) → APT28(疑似与 APT29 重叠) —— 面包屑会显示完整的轨迹 ## 领域模型 | 实体 | 核心字段 | |--------|-----------| | **ThreatActor** | name, aliases[], attribution, motivation, status | | **Vulnerability** | CVE id, commonName, CVSS score, severity, exploitationStatus | | **Campaign** | name, timeline, attributedTo (actor), attributionConfidence | | **TargetSector** | name, description | 关系(每项均包含 `confidence` 和 `source`): `exploits` · `runs` · `targets` · `overlaps` · `usedIn` **种子数据:** 5 个行为者 · 4 个 CVE · 5 个攻击活动 · 7 个行业 · 30 个关系 ## 技术栈 | 层级 | 选型 | |-------|--------| | 框架 | Next.js 16 App Router + TypeScript | | 样式 | Tailwind CSS v4 + shadcn/ui (Base UI) | | 数据 | 静态 JSON 文件 (`src/data/intel.json`) —— 无后端 | | 字体 | Inter + JetBrains Mono 通过 `next/font/google` | | 部署 | Vercel | 无数据库、无身份验证、无 API 路由。 ## 本地运行 ``` git clone https://github.com/eyweiss/threat-intel-tip.git cd threat-intel-tip npm install npm run dev ``` 打开 [http://localhost:3000](http://localhost:3000)。 ## 项目结构 ``` src/ ├── app/ │ ├── page.tsx # Landing page │ ├── search/page.tsx # Search — typeahead, filters, results │ └── entity/[type]/[id]/ │ └── page.tsx # Entity profile — header + relationship sections ├── components/ │ ├── AppShell.tsx # Sticky nav header + footer │ ├── EntityBadge.tsx # Purple/rose/teal/gray type badge │ └── ConfidenceBadge.tsx # Emerald (confirmed) / amber (suspected) pill ├── data/ │ └── intel.json # All entities and relationships └── lib/ ├── types.ts # TypeScript interfaces (Entity, Relationship, …) └── queries.ts # getEntity, searchEntities, resolveAlias, getRelationships ``` ## 范围边界 特意排除在范围之外的功能:身份验证、真实数据库、多跳图谱可视化、创建/编辑功能、深色模式。 所有数据仅用于演示说明,不代表 eSentire 实际掌握的情报资产。
标签:原型设计, 威胁情报, 开发者工具, 网络安全, 自动化攻击, 隐私保护