kiurakku/shok-monitor

GitHub: kiurakku/shok-monitor

一款无需安装 Agent 的 Windows 桌面端 SOC 与 GRC 平台,通过 SSH 即可实现对 Linux 主机、39 种数据库的统一监控及合规与威胁分析。

Stars: 0 | Forks: 0

SHOK — SOC & GRC Platform # SHOK **无 Agent 的 SOC 与 GRC 平台 — 支持 Linux、Docker、39 种数据库及通过 SSH 的威胁情报** [![Release](https://img.shields.io/github/v/release/kiurakku/shok-monitor?style=for-the-badge&logo=github&logoColor=white)](https://github.com/kiurakku/shok-monitor/releases) [![License](https://img.shields.io/github/license/kiurakku/shok-monitor?style=for-the-badge&color=blue)](LICENSE) [![Platform](https://img.shields.io/badge/Windows-10%2F11-0078D6?style=for-the-badge&logo=windows&logoColor=white)](https://github.com/kiurakku/shok-monitor/releases) [![Electron](https://img.shields.io/badge/Electron-43-47848F?style=for-the-badge&logo=electron&logoColor=white)](https://www.electronjs.org/) [![React](https://img.shields.io/badge/React-19-61DAFB?style=for-the-badge&logo=react&logoColor=black)](https://react.dev/) [![TypeScript](https://img.shields.io/badge/TypeScript-5.8-3178C6?style=for-the-badge&logo=typescript&logoColor=white)](https://www.typescriptlang.org/) [![Node.js](https://img.shields.io/badge/Node.js-18+-339933?style=for-the-badge&logo=node.js&logoColor=white)](https://nodejs.org/) [![Downloads](https://img.shields.io/github/downloads/kiurakku/shok-monitor/total?style=flat-square&logo=github)](https://github.com/kiurakku/shok-monitor/releases) [![Stars](https://img.shields.io/github/stars/kiurakku/shok-monitor?style=flat-square&logo=github)](https://github.com/kiurakku/shok-monitor/stargazers) [![Issues](https://img.shields.io/github/issues/kiurakku/shok-monitor?style=flat-square&logo=github)](https://github.com/kiurakku/shok-monitor/issues) [![Last commit](https://img.shields.io/github/last-commit/kiurakku/shok-monitor?style=flat-square&logo=github)](https://github.com/kiurakku/shok-monitor/commits/main) [⬇️ 下载 v1.4.0](https://github.com/kiurakku/shok-monitor/releases/latest) · [🐛 报告 Bug](https://github.com/kiurakku/shok-monitor/issues/new) · [📖 快速开始](#-quick-start)
## ✨ 关于 **SHOK** 是一款 Windows 桌面应用,能将你的 SSH 密钥环转变为功能完整的 **SOC 与 GRC 工作站** — 基础设施监控、数据库访问、安全态势、威胁情报、合规与审计,全部无需 Agent。远程机器上无需安装任何东西 — 仅需 SSH(端口 22)。 | | | |---|---| | 🖥️ **平台** | Windows 10/11(可直接运行的 `.exe`) | | 🔌 **连接** | SSH 密钥或密码 | | 🐳 **基础设施** | 主机、Docker 容器、网络、卷、终端 | | 🗄️ **数据库** | 39 种引擎 — 查询、浏览、REST 控制台 | | 🛡️ **SOC** | 安全态势、实时威胁情报 + geo-IP、事件 | | ⚖️ **GRC** | CIS/NIST/ISO 合规控制、认证、审计日志 | | 🌍 **语言** | 乌克兰语、英语、俄语、波兰语、中文 | | 🎨 **主题** | 16 种颜色主题 + 亚克力玻璃窗口 | | 🔒 **安全** | 引擎仅监听 `127.0.0.1`,无 Agent | ## 🆕 v1.4.0 中的新特性 - **🎯 威胁情报** — 对 `auth.log` / journald 进行实时分析:显示带有 **geo-IP**(国家 · 城市 · ISP)的顶级攻击 IP、被针对的用户名、攻击地理位置以及成功登录审查。支持实时自动刷新。 - **🚨 自动事件** — 后台监控程序会在失败的 SSH 登录超过可配置阈值(暴力破解检测)时自动创建事件,并按主机进行去重。 - **🛡️ 安全态势** — 根据监听端口、会话、失败登录、防火墙、待更新、SUID 以及 SSH 加固(`PermitRootLogin`、`PasswordAuthentication` 等)计算每个主机的风险评分。 - **⚖️ 合规 (GRC)** — 通过 SSH 检查 15 项自动化的 CIS/NIST 控制 + 手动治理认证,并提供总体评分和框架标签。 - **📜 审计日志** — 仅追加、可搜索的所有操作记录,可导出为 CSV — 作为审计的证据。 - **🎨 设计系统 v2** — 分组导航(监控 / SOC / GRC / 系统)、KPI 磁贴、评分环、风险徽章、抽屉、16 种主题。 ## 📸 功能
### 📊 SOC 仪表盘 整个资产环境的统一面板 — KPI、各主机风险、整体态势环、最新事件与活动。 ### 🖥️ 监控 每台主机的实时 CPU、RAM、磁盘、负载和运行时间。Docker 容器(启动/停止/重启/删除)、网络、卷、实时日志、内置 SSH 终端 (xterm.js)。 ### 🗄️ 数据库 通过 SSH 隧道连接 39 种引擎 — 分类选择器、表浏览与编辑、SQL/NoSQL 查询、REST 控制台、**在服务器上查找**自动发现。 ### 🎯 威胁情报 实时 `auth.log` / journald 分析:带有 **geo-IP** 的顶级攻击 IP、攻击地理位置、被针对的用户名、成功登录审查。 ### 🛡️ 安全态势 每台主机的风险评分:监听端口、会话、失败登录、防火墙、待更新、SUID、SSH 加固 — 附带可操作的发现。 ### 🚨 事件 具有严重性、状态工作流、主机关联和完整时间线的事件登记册。在达到暴力破解阈值时**自动创建**。 ### ⚖️ 合规 (GRC) 通过 SSH 进行 15 项自动化的 CIS/NIST 控制 + 手动治理认证,提供总体评分以及 ISO/NIST/CIS 框架标签。 ### 📜 审计 仅追加、可搜索的操作日志 — 作为审计和调查的证据,支持一键导出为 CSV。 ### ⚙️ 设置 5 种语言、16 种主题、亚克力窗口、UI 缩放、威胁阈值、geo-IP 开关 — 本地存储。
## 🗄️ 数据库引擎 ### 完整支持(查询 + 浏览) | 家族 | 引擎 | |--------|---------| | **PostgreSQL** | PostgreSQL, TimescaleDB, CockroachDB, YugabyteDB, QuestDB, Redshift (自托管) | | **MySQL** | MySQL, MariaDB | | **Redis** | Redis, KeyDB, Valkey, Dragonfly | | **文档型** | MongoDB | | **SQLite** | 通过 SSH 进行本地 WASM 浏览(只读;文件加载到内存中) | ### REST 控制台(HTTP 适配器) Elasticsearch · OpenSearch · CouchDB · ClickHouse · Meilisearch · Typesense · Qdrant · Weaviate · Chroma · ArangoDB · InfluxDB · Prometheus ### 即将推出(需要专用驱动) MS SQL · Oracle · Cassandra · ScyllaDB · Neo4j · Memgraph · Memcached · Milvus ### 云端(供应商 API 密钥 — 不支持通过 SSH) DynamoDB · BigQuery · Snowflake · Firebase · Firestore · Pinecone · Neptune ## 🛡️ SOC 与 GRC 以下所有功能均运行在**通过 SSH 收集的真实数据**之上 — 无需 Agent,服务器上无需安装任何东西。 | 模块 | 功能 | 框架 | |--------|--------------|-----------| | **安全态势** | 根据开放端口、会话、失败登录、防火墙、更新、SUID、SSH 加固计算风险评分 | — | | **威胁情报** | 来自 `auth.log`/journald 的顶级攻击 IP,geo-IP(国家 · 城市 · ISP)、被针对的用户名、攻击地图 | — | | **事件** | 包含严重性、状态工作流、时间线的登记册;在达到暴力破解阈值时**自动创建** | NIST IR | | **合规** | 自动化的 SSH 加固 / 防火墙 / 自动更新 / auditd / 时间同步检查 + 手动认证 | CIS · NIST · ISO 27001 | | **审计** | 带有 CSV 导出功能的仅追加操作日志 — 给审计人员的证据 | NIST AU | **自动事件规则** — 当 24 小时内失败的 SSH 登录次数超过可配置阈值(默认为 `300`)时,将自动创建事件并按主机进行去重。可以在 **Settings → Threats** 中切换和调整。 ## ⬇️ 安装 ### 预构建版本(推荐) 1. 从 [Releases](https://github.com/kiurakku/shok-monitor/releases) 下载 [`SHOK-v1.4.0-win.zip`](https://github.com/kiurakku/shok-monitor/releases/latest) 2. 解压存档 3. 运行 `SHOK.exe` ### 从源码构建 ``` git clone https://github.com/kiurakku/shok-monitor.git cd shok-monitor npm install npm run build npm run dist:win # → release/win-unpacked/SHOK.exe ``` ## 🚀 快速开始 1. 启动 **SHOK** 2. 转到 **Hosts → Add host** 3. 输入 IP、用户名和认证方式: - **SSH 密钥** *(推荐)*: `C:\Users\User\.ssh\id_ed25519` - **密码**: 标准 SSH 密码 4. 点击 **Test connection** → **Add** 几秒钟内,你就会看到实时指标、容器和网络。接下来可以探索: - **Databases → Find on server** — 自动检测 PostgreSQL、Redis、SQLite 文件等。 - **Security** / **Threats** — 获取即时风险评分,并查看谁在暴力破解你的 SSH(附带 geo-IP)。 - **Compliance** — 通过 SSH 运行 CIS/NIST 检查并认证治理控制。 ## 🏗️ 架构 ``` ┌──────────────────────────────────────────────────┐ │ Electron (SHOK.exe) │ │ ┌──────────────┐ ┌──────────────────────┐ │ │ │ React UI │◄────►│ Node.js Engine │ │ │ │ (Vite) │ WS │ (127.0.0.1) │ │ │ └──────────────┘ └──────────┬───────────┘ │ └───────────────────────────────────┼──────────────┘ │ SSH (port 22) ┌──────────┴──────────────┐ │ Linux Server(s) │ │ /proc · docker · db │ │ auth.log · sshd · ss │ └──────────────────────────┘ ``` - 每台主机**维持一个持久的 SSH 连接**(多路复用),每个任务使用独立的通道 - **指标:** 每次轮询运行单个脚本(`/proc/stat`、`free`、`df`、`docker ps/stats`);在单次 SSH 往返中获取 CPU 增量 - **数据库:** 将 SSH 端口转发到本地驱动程序(pg、mysql2、ioredis、mongodb)或用于 REST 引擎的 HTTP 代理 - **SQLite:** 通过 SSH 流式传输文件(base64) → 使用 `sql.js` WASM 在本地打开(只读) - **SOC/GRC:** `security.js`、`threats.js`、`compliance.js` 通过 SSH 运行加固的单遍扫描脚本;通过批量查询解析 geo-IP;自动事件监控程序每 5 分钟扫描一次 ## 🛠️ 开发 | 命令 | 描述 | |---------|-------------| | `npm run dev` | 带有 HMR 的前端(需要运行 `server`) | | `npm run server` | 独立的引擎,会自动打开浏览器 | | `npm run app` | 开发模式下的 Electron | | `npm run build` | 构建前端 → `dist/` | | `npm run dist:win` | 构建 `SHOK.exe` → `release/win-unpacked/` | `ШОК.bat` — 在不使用 Electron 的情况下通过浏览器启动的备用方案。 ### 环境要求 - **Windows 10/11**(预构建的 exe 无需其他要求) - **Node.js 18+**(用于开发) - 带有 SSH 的 **Linux 服务器**;Docker 和数据库为可选项 ## 🔐 数据与安全 | 内容 | 位置 | |------|-------| | 主机 / 数据库 / 事件 / 审计 | `%APPDATA%\shok-monitor\config\`(仅限本地) | | 密码 | 以明文形式存储 — **请使用 SSH 密钥** | | 出站流量 | 无,除了可选的 geo-IP 查询(仅针对攻击者的公网 IP) | ## 📁 项目结构 ``` shok-monitor/ ├── electron/ # Electron main process (acrylic window) ├── server/ # Node.js SSH engine │ ├── collector.js # Host metrics (single-pass CPU delta) │ ├── db.js # 39 DB engines, tunnels, REST/SQLite │ ├── engines.js # Engine registry │ ├── security.js # SOC — host posture │ ├── threats.js # SOC — auth.log threat intel │ ├── geoip.js # Geo-IP batch lookup + cache │ ├── compliance.js # GRC — CIS/NIST controls │ └── config.js # Hosts, DBs, incidents, audit, SOC config ├── src/ │ ├── pages/ # Dashboard, Security, Threats, Incidents, │ │ # Compliance, Audit, Database, Hosts, … │ ├── components/ui.tsx # Design system v2 │ └── lib/ # api, engines, i18n (5 langs), settings ├── buildResources/ # App icon └── .github/assets/ # Banner, logo, social preview ```
标签:Electron, GRC, MITM代理, React, Syscalls, 威胁情报, 安全运营, 开发者工具, 扫描框架, 插件系统, 数据泄露, 无代理监控, 自动化攻击