CodyLiska/osint-dashboard
GitHub: CodyLiska/osint-dashboard
OSIRIS 是一个静态优先的多领域开源情报(OSINT)态势仪表盘,通过 WebGL 地图将航空、海事、自然灾害、加密货币制裁、Telegram 等十余种公开数据源整合到统一界面中,帮助分析师快速获取全景态势感知。
Stars: 0 | Forks: 0
# OSIRIS 态势仪表盘
静态优先的 OSINT 仪表盘,适用于航空、海事、CCTV、地震、火灾、天气、新闻、太空、网络、冲突、加密货币、制裁和 Telegram OSINT 工作流。
## 运行
```
npm start
```
打开 `http://localhost:4173`。
初版不需要安装任何包。该应用使用一个小型 Node 服务器提供静态文件和无密 API 代理路由,同时 MapLibre GL 和 deck.gl 从公共 CDN 在浏览器中加载。
## 已实现基线
- 16 个可切换的情报图层,带有实时实体计数。
- 通过 MapLibre GL 加上 deck.gl 散点图层进行 WebGL 地图渲染。
- 使用 `fetched` 保护机制进行渐进式图层加载,以避免重复请求。
- 使用可见地图边界进行感知视口的航空刷新。
- 静态海事、咽喉点、CCTV、冲突、新闻和空间情报图层。
- 实时的 USGS M2.5+ 地震数据流。
- NASA FIRMS 活跃火灾适配器,用于视口范围内的热力探测。
- NASA EONET 事件源,用于恶劣天气类别。
- OpenSky Network 状态查找,用于显示可见飞行器,支持可选的 OAuth client-credentials。
- 规范化的 `/api/layers/:layer` 路由返回 `{ entities, meta }`。
- `/api/health` 处的源健康遥测。
- 来自 `t.me/s/` 的 Telegram 公共预览数据接入,支持多语言地点匹配。
- 通过 Blockstream 进行 BTC 查询,通过无密 Ethereum 公共 RPC (`ethereum.publicnode.com`) 进行 ETH 余额查询。
- 使用 0xB10C 镜像进行 OFAC 受制裁加密地址交叉核对。
- OpenSanctions 搜索选项卡,用于查询人员、组织、船只和飞行器。
- 在滚动 30 天窗口内进行 NVD CVE 关键字搜索。
## 环境变量
`OSIRIS_TELEGRAM_CHANNELS` 覆盖默认的逗号分隔 Telegram 源列表:
```
OSIRIS_TELEGRAM_CHANNELS=disclosetv,Faytuks,liveukraine_media,wartranslated,Middle_East_Spectator,BNONews npm start
```
当未设置 `OSIRIS_TELEGRAM_CHANNELS` 时,OSIRIS 使用分组的全球公共预览列表,涵盖全球警报、乌克兰/俄罗斯、中东、非洲、亚太、欧洲和美洲。`OSIRIS_TELEGRAM_MAX_CHANNELS` 控制从逗号分隔列表中加载的最大频道数。
`PORT` 覆盖本地服务器端口:
```
PORT=4300 npm start
```
可选的实时源凭据:
```
OPENSKY_CLIENT_ID=... OPENSKY_CLIENT_SECRET=... npm start
FIRMS_MAP_KEY=... npm start
FIRMS_SOURCES=VIIRS_NOAA20_NRT,VIIRS_SNPP_NRT,MODIS_NRT FIRMS_DAY_RANGE=1 npm start
```
OpenSky 可以在较低配额下匿名工作。提供 OAuth client credentials 可启用经过身份验证的 state-vector 调用。NASA FIRMS 需要一个免费的 `FIRMS_MAP_KEY`;如果没有它,火灾图层仍然可用,但报告的活跃 FIRMS 实体数为零。
## 数据源说明
初版优先考虑无密的公共 endpoint。某些数据源可能会进行速率限制、阻止抓取或更改响应结构。当某个图层加载失败时,服务器会将源错误作为地图实体返回,以便在使损坏的集成可见的同时,保持仪表盘的可操作性。
## 构建阶段
已完成 (2026-07-17):
1. 完成:完善的地名词典 + 置信度评分(`src/lib/gazetteer.js`,词边界匹配;Telegram 实体上的 `confidence`)。
2. 完成:针对大容量图层的聚类 + 严重性过滤器(感知缩放的网格聚类,全局最低严重性滑块)。
3. 完成:每图层轮询间隔(已用时间计时器;`LAYER_REFRESH_MS`)。
4. 完成:在 localStorage 中持久化图层可见性、地图视口和侦测历史。
5. 完成:通过无密 RDAP (`/api/intel/whois`) 的 WHOIS/IP 情报路由,带有 OpenSanctions 名称交叉核对。
6. 完成:大型静态数据集迁移至带有出处的版本化 JSON (`public/data/*.json`)。
7. 完成:用于分析报告的可导出事件快照(JSON)(导出按钮)。
待办:
7. 为允许更高配额的其他数据源添加经过身份验证的适配器。
标签:ESC4, HTTP/HTTPS抓包, MITM代理, OSINT, 地理信息系统, 态势感知, 情报 dashboard, 数据可视化, 自定义脚本