Lineup-NOAH/kangalis-core

GitHub: Lineup-NOAH/kangalis-core

Kangalis 是一款 100% 本地部署的开源内部网络漏洞扫描与管理平台,通过结合可利用性信号实现风险优先级排序。

Stars: 0 | Forks: 0

# Kangalis [![CI](https://static.pigsec.cn/wp-content/uploads/repos/cas/ad/ad5834178f7599af9fdda11629d49cae07f2997beec49821b2920eff5bfd50e7.svg)](https://github.com/Lineup-NOAH/kangalis-core/actions/workflows/ci.yml) [![version](https://img.shields.io/badge/version-1.0.1-blue)] [![python](https://img.shields.io/badge/python-3.12%2B-blue)] [![license](https://img.shields.io/badge/license-MIT-green)] 一个轻量级的 OpenVAS/Nessus 替代方案:它能在您的内部网络中发现主机和服务,将它们与已知漏洞(CVEs)进行匹配,并利用**可利用性信号**(Exploit-DB、CISA KEV、EPSS)对其进行丰富,从而提供**风险优先级排序**。 它还可以通过 **MCP** 与 Claude 进行交互。

Kangalis architecture — detect, match, prioritize; runs 100% on-prem; exploitation is a separate optional plugin

## 📦 开源核心 本代码库是**开源核心**(MIT):网络/主机发现、端口及服务/版本检测、CVE 匹配、可利用性**信号**(Exploit-DB/CISA KEV/EPSS — *仅供参考*)、合规性检查(CIS/KVKK/ISO/PCI)、报告生成,以及本地(本地部署)防御性 AI。它**绝不运行漏洞利用程序。** 真实的漏洞利用/入侵行为(Metasploit 编排、沙箱化的 PoC 执行、凭证暴力破解)被保留在单独的、可选的**漏洞利用插件**中,并且**不**包含在此代码库内。即使没有该插件,核心功能也已完全齐备。 ## 功能 - 🔍 **网络和主机扫描** — 主机发现、端口扫描、服务/版本检测 (nmap) - 🛡️ **CVE 匹配 + 风险评分** — NVD/OSV + Exploit-DB + CISA KEV + EPSS - 🌐 **Web 扫描** — 安全标头、TLS/SSL 检查、目录发现 - 📦 **SCA** — 依赖项(requirements.txt、package.json)漏洞扫描 - ✅ **合规性检查** — CIS/KVKK/ISO/PCI 控制措施与报告 - 🤖 **MCP 服务器** — Claude 启动扫描并查询结果 - 🧠 **本地(本地部署)防御性 AI** — 扫描发现摘要与合规性叙述生成 - 📊 **Web 仪表板** — HTMX + Tailwind 架构/设计:[`docs/PROJECT_PLAN.md`](docs/PROJECT_PLAN.md) ## 工作原理 大多数扫描器只会向您抛出成千上万个 CVE 然后就置之不理。Kangalis 的构建围绕着同一个问题:**这里有什么能真正对我造成伤害 —— 我应该先修复什么?** 它在**您自己的基础设施**上(见上图)端到端地运行一个严密的**检测 → 匹配 → 优先级排序**流水线。 **为什么每一步都很重要** - **1 · 发现 (nmap)。** 经过实战检验的指纹识别技术能映射出您内部网络上的每一台存活主机、开放端口以及服务版本 —— 这是构建所有后续工作的真实基准。 - **2 · CVE 匹配 —— 离线,在您的本地机器上运行。** nmap 告诉我们*什么正在运行*;Kangalis 将该版本与其**自身的本地 CVE/CPE 数据库**(通过后台同步从 NVD 镜像)进行匹配。**单次扫描不产生任何互联网调用 —— 关于您网络的任何信息都不会离开您的机器。** 它完全支持在**物理隔离**(air-gapped)环境下运行,这是银行、OT/ICS 以及其他受监管环境的硬性要求,而云端扫描器在架构上根本无法满足这一点。 - **3 · 风险优先级排序,而不是单纯堆砌 CVE。** 每一次匹配都会利用真实的**可利用性信号**进行丰富 —— Exploit-DB(存在公开漏洞利用程序)、**CISA KEV**(在野被积极利用)以及 **EPSS**(统计学漏洞利用概率)。攻击者实际使用的那约 2% 的漏洞会浮出水面;而理论上的噪音则会被沉淀下去。 **Kangalis 的不同之处** - 🔒 **100% 本地部署 · 零流量外发。** 扫描、数据、漏洞数据库以及 AI 全部保留在您的硬件上。设计上即为物理隔离就绪。 - 🎯 **感知漏洞利用的优先级排序。** KEV + EPSS + Exploit-DB 将*“10,000 个 CVE”* 转化为 *“就是今天这 12 个。”* - ✅ **诚实的可信度。** 扫描发现结果被明确标记为 **NSE-confirmed**(主动验证)或 **version-inferred**(版本推断) —— 拒绝哗众取宠的误报。 - 🛡️ **默认安全。** 默认模式是非侵入式的;激进的探测属于**主动选择并受限启用**,因此扫描绝不会搞垮生产环境。 - 🧠 **本地防御性 AI。** 本地模型(Ollama)解释扫描发现并起草修复方案 —— 最终动作始终由人类触发,且不会有任何数据离开本地机器。 - 🤖 **Claude 原生 (MCP)。** 直接通过 Claude 启动扫描并查询结果。 - 📋 **内置合规性。** CIS · KVKK · ISO 27001 · PCI-DSS 控制措施及审计就绪报告。 **扫描模式** | 模式 | 功能 | |---|---| | **Ping** | 快速主机发现 | | **Network** | 端口 · 服务 · 版本(+ 版本推断出的 CVE) | | **Safe CVE** | 本地 CVE 数据库匹配,非侵入式 —— **默认** | | **Aggressive CVE** | + 实时 NVD + 主动 NSE 确认 —— *依然绝不进行漏洞利用*;主动选择 / 受限启用 | | **Web CVE** | Web 技术栈 CVE(安全标头 · TLS · 应用程序) | | **Credentialed** | 身份验证审计(SSH/Windows/DB/SNMP/SMB/LDAP)+ 合规性 | (外加用于依赖项清单的 **SCA**) ### 🧩 漏洞利用 —— 一个独立的、高级的插件(不在本代码库中) 开源核心会**发现并标记**可被利用的 CVE,但**绝不运行漏洞利用程序** —— 这是一个纯粹的、防御性的工具,您可以零责任地部署到任何地方。为了从*“可能被利用”*升级为*确凿证明*,可选的、受许可证限制的**漏洞利用插件**将会介入(Metasploit 编排、沙箱化的 Exploit-DB/searchsploit PoC 运行程序、凭证暴力破解)。核心代码库仅提供 Exploit-DB 的**元数据信号**(*存在漏洞利用* —— id ↔ CVE ↔ URL,仅供参考);获取并**运行** PoC 是插件的职责。 ## 安装(快速入门) **唯一前提条件:Docker + Docker Compose。** 完全**在本地部署**运行:扫描、数据和 AI 全部保留在您自己的机器上 —— 数据绝不外泄。 ### 选项 1 — 设置向导(最简单;从源码构建) 一条命令:构建 + 启动 → 自动运行 **migrate** → 提示创建管理员用户 → 提示输入授权的扫描范围/CIDR。所有内容(包括 `nmap`)都会自动置入镜像中(无需手动安装)。 ``` # Linux / macOS bash setup.sh # or: make setup # Windows (PowerShell) powershell -ExecutionPolicy Bypass -File setup.ps1 ``` ### 选项 2 — 使用已发布的镜像(免构建;速度更快) 直接从镜像仓库 (ghcr.io) 拉取预构建镜像并运行 —— 无需在本地构建: ``` git clone https://github.com/Lineup-NOAH/kangalis-core.git && cd kangalis-core cp .env.example .env # fill in the secret keys (or run the Option 1 wizard) docker compose pull # pulls the published core image (NO build) docker compose up -d # starts; migrate sets up the schema automatically # 管理员用户 + 授权扫描范围 (必需): docker compose exec app python -m cybersectool.scripts.create_user \ --username --password --role admin # 从面板 (Settings → Authorized Scope) 或通过 docs/INSTALL.md §3.3 定义范围。 ``` 然后打开控制面板:**http://localhost:8000/login** ### 重置 / 彻底重装 如果安装中断,或者您想更改数据库用户/密码,**旧的数据库卷会与新的 `.env` 产生冲突**(`migrate` → `password authentication failed for user ...`)。PostgreSQL 仅在首次启动时固化用户/密码;删除文件夹或 Docker **并不会移除该卷**。使用以下一条命令进行彻底重置: ``` # Windows powershell -ExecutionPolicy Bypass -File reset.ps1 # Linux / macOS bash reset.sh ``` ### 本地 AI(可选,本地部署,零流量外发) AI 是完全本地的(在 CPU 上运行);它仅提供建议/草稿,并且最终动作始终由人类触发。**推荐方案 —— Ollama**(官方 `ollama/ollama` 镜像;模型在运行时被拉取): ``` docker compose --profile ai up -d ollama # Ollama engine (Docker Hub, public) docker compose exec ollama ollama pull qwen3:8b # download the model (~5 GB, one-time) ``` 然后在控制面板的 **Plugins → AI** 下:endpoint 填入 `http://ollama:11434/v1`,模型填入 `qwen3:8b`,点击“Test connection” → 变绿即成功。 - 📘 详细的安装 / 手动步骤 / 生产环境部署:[`docs/INSTALL.md`](docs/INSTALL.md) - 🧩 可选功能(本地 AI、MCP、插件):[`docs/PLUGINS.md`](docs/PLUGINS.md) ## 技术栈 | 层级 | 选择 | |---|---| | 语言 / 打包 | Python 3.12+ · uv | | 后端 | FastAPI | | 数据库 | PostgreSQL + SQLAlchemy + Alembic | | 任务队列 | Celery + Redis | | 前端 | Jinja2 + HTMX + Tailwind | | 扫描 | nmap, httpx | | 部署 | Docker + docker-compose | ## 开发环境 要求:[uv](https://docs.astral.sh/uv/)(uv 会自行下载 Python)。 ``` # 安装依赖项 (包括 Python 3.12) uv sync # 运行测试 uv run pytest # Lint & 类型检查 uv run ruff check . uv run mypy # (可选) 安装 pre-commit hooks uv run pre-commit install ``` ## 项目结构 ``` src/cybersectool/ ├── core/ # shared business logic (service layer) + scope guard ├── scanners/ # scan modules (network, web, sca, hardening) ├── intel/ # vulnerability/exploit data sources (NVD, OSV, EDB, KEV, EPSS) ├── api/ # FastAPI routers ├── web/ # dashboard (Jinja2 + HTMX) ├── tasks/ # Celery tasks └── mcp/ # MCP server ``` ## 贡献 / 工作流 Fork 并向 **main** 分支提交 PR。遵循 Conventional Commits 规范。每个 PR 都必须通过 `ruff` + `mypy` + `pytest` 检查。 详情:[CONTRIBUTING.md](CONTRIBUTING.md) ## 许可证 [MIT](LICENSE) © 2026 Lineup-NOAH - 第三方依赖项许可证:[THIRD-PARTY-NOTICES.md](THIRD-PARTY-NOTICES.md) - 安全与负责任/授权使用:[SECURITY.md](SECURITY.md) - **免责声明与使用条款:** [DISCLAIMER.md](DISCLAIMER.md)
标签:AI风险缓解, MCP, Python, 搜索引擎查询, 无后门, 智能体, 测试用例, 网络安全, 请求拦截, 逆向工具, 隐私保护