rkevinrodas/cyber-intelligence

GitHub: rkevinrodas/cyber-intelligence

一款离线优先的威胁情报桌面应用,在本地聚合、标准化并分析来自多个安全源的威胁公告与报告。

Stars: 0 | Forks: 0

# CyberIntelligence 一款轻量级、离线优先的威胁情报工作站,以原生桌面应用的形式运行。它从知名的开源安全发布者处获取公告和威胁报告,在本地进行数据标准化,并为您提供简洁的界面来筛查、搜索和导出您找到的内容。 无需账户。无需遥测。数据绝不离开本机。 ## 新手入门 ### 前置条件 - [Node.js 18 或更高版本](https://nodejs.org/en/download) ### 运行应用 **macOS** — 在 Finder 中双击 `Launch CyberIntelligence.command`。 **Windows** — 在资源管理器中双击 `Launch CyberIntelligence.bat`。 启动器会在首次运行时处理所有事项:安装依赖包、构建应用并打开窗口。随后的启动会跳过构建步骤,几乎可以瞬间打开。 如果您更喜欢使用终端: ``` npm install npm run electron:start ``` ## 构建安装包 为任意平台生成可分发的安装包: ``` npm run dist:mac # .dmg + .zip (Intel and Apple Silicon) npm run dist:win # .exe installer via NSIS npm run dist:linux # .AppImage, .deb, .rpm npm run dist:all # all three at once ``` 生成的输出文件会保存在 `release/` 文件夹中。 ### macOS — 签名 未签名的构建版本会触发 Gatekeeper 警告。若要临时跳过该警告,请执行一次: ``` xattr -cr /path/to/CyberIntelligence.app ``` 正式发布版本应通过 Apple 的开发者计划进行签名和公证,以彻底消除该警告。 ### Windows — 签名 未签名的 `.exe` 文件会触发 SmartScreen。使用来自受信任 CA 的代码签名证书可以为终端用户解决此问题。 ## 应用图标 包含的 `public/icon.svg` 是源矢量图。在构建安装包之前,请先对其进行转换: | 文件 | 平台 | 尺寸 | |---|---|---| | `public/icon.icns` | macOS | 1024×1024 | | `public/icon.ico` | Windows | 256×256 (多分辨率) | | `public/icon.png` | Linux | 512×512 | 免费工具:[cloudconvert.com](https://cloudconvert.com)、[icoconvert.com](https://icoconvert.com)。 ## 项目结构 ``` cyber-intelligence/ ├── electron/ │ ├── main.js Electron main process (ESM) │ └── preload.cjs Secure context bridge (CJS — required by Electron) ├── src/ │ ├── components/ All React UI components │ ├── context/ │ │ └── AppContext.jsx Global state (useReducer), sync logic, exports │ ├── services/ │ │ ├── cvss.js CVSS v3.1 calculator + metric inference │ │ ├── db.js IndexedDB wrapper (open, save, query, purge) │ │ ├── feeds.js Feed configurations + RSS/Atom parser │ │ ├── normalize.js Normalisation pipeline, IOC extraction, context enrichment │ │ └── readStore.js Read/unread state (localStorage) │ └── styles/ │ ├── app.css Component styles │ └── theme.css CSS variables — light and dark mode ├── public/ Static assets and app icons ├── Launch CyberIntelligence.command macOS double-click launcher └── Launch CyberIntelligence.bat Windows double-click launcher ``` ## 情报来源 | 来源 | 类型 | |---|---| | The Hacker News | 威胁新闻 | | Bleeping Computer | 威胁新闻 + 安全公告 | | SANS Internet Storm Center | 每日威胁日志 | | CISA Advisories | 美国政府公告 | | Krebs on Security | 调查性报道 | | Dark Reading | 企业安全新闻 | | Security Week | 综合威胁情报 | | Threatpost | 研究与公告 | 您可以随时通过“来源”面板添加自定义 RSS/Atom 源。 ## 核心功能 ### 数据标准化与 IOC 提取 抓取的每篇文章都会被解析和标准化:去除 HTML 标签,解码实体,提取 IOC(IPv4、IPv6、域名、MD5/SHA1/SHA256 哈希值、CVE、URL、MITRE ATT&CK 技术和比特币钱包)。私有 IP 地址段和已知的 CDN/分析域名会被自动过滤掉。 ### 威胁上下文关联 记录会与包含 70 多个威胁组织的数据库进行交叉比对。每条记录都会被标记归属的威胁行为者(包含来源国和赞助方)、MITRE ATT&CK 技术标签、推测的受影响行业、漏洞利用状态(活跃 / PoC / 已修复)、地缘政治来源,以及 1–5 的置信度评分。 ### CVSS v3.1 评分 根据 FIRST 规范实现了完整的 CVSS v3.1 基础评分公式,包括 Roundup 函数和基于作用域的“所需权限”权重计算。当存在已知的 CVE 分数时,将直接使用该分数。否则,系统会从文章文本中推断出八项基础指标,并生成计算得出的分数(在 UI 中标记为“预估”)。 ### 已读 / 未读追踪 每条记录都可以被标记为已读或未读。侧边栏允许您按状态进行筛选。当打开记录的详情视图时,系统会自动将其标记为已读。状态会独立于 IndexedDB 记录保存在 localStorage 中。 ### 可配置的数据保留期 记录的保留时间窗口可由用户自定义(7–365 天),设置路径为 Settings → Data。过期的记录会在应用启动时自动清除。 ### 带筛选的导出 JSON 和 CSV 导出功能会反映当前激活的所有筛选条件 —— 严重程度、阅读状态和搜索查询均会生效。除了标准字段外,CSV 输出还包括 CVSS 向量、漏洞利用状态、归属的威胁行为者以及受影响的行业。 ### 定时自动抓取 您可以配置可选的每日定时抓取任务,使其在特定时间运行。在计划抓取运行前 60 秒,系统会弹出 toast 通知。 ## 安全实践 - `contextIsolation: true` — 渲染进程无法访问 Node.js - `nodeIntegration: false` — UI 层无法直接访问操作系统 - `sandbox: true` — 额外的 Electron 进程隔离 - 所有网络输入在使用前均经过验证 - 不使用 `eval()`、`innerHTML` 或任何动态代码执行 - 每个网络请求均配备 `AbortController` 和严格的 14 秒超时限制 - Object URL 在使用后立即予以释放 - 单实例锁可防止生成重复的 Electron 进程 - 外部链接一律在系统默认浏览器中打开,绝不在应用内部打开
标签:Electron, GNU通用公共许可证, MITM代理, Node.js, 代码示例, 威胁情报, 开发者工具, 数据分析, 数据可视化, 桌面应用, 离线优先, 自定义脚本