nsasoft/nsauditor-ai
GitHub: nsasoft/nsauditor-ai
一款基于 Node.js 的开源 AI 网络安全扫描器,旨在零数据外泄的前提下提供自动化漏洞发现、验证与跟踪。
Stars: 1 | Forks: 0
# NSAuditor AI
**零数据暴露的安全智能。**
一个模块化的 AI 辅助网络安全审计平台,能够扫描、理解、优先级排序和跟踪漏洞——无需您的数据离开您的基础设施。
[](https://www.npmjs.com/package/nsauditor-ai)
[](LICENSE)
[](https://nodejs.org)
[](#tests)
NSAuditor AI 是由 [Nsasoft US LLC](https://www.nsauditor.com/ai/>) 构建的隐私优先安全智能平台的开源核心。它协调 20 多个专用扫描插件对目标主机进行探测,通过智能结论融合器合并结果,并可选地生成 AI 驱动的漏洞报告——所有操作完全在您的机器上运行。
**设计上零数据外泄。** NSAuditor AI 完全离线工作。AI 分析、CVE 关联和持续监控全部在本地进行。外部调用(到 AI API、NVD 等)均为可选,并使用您自己的 API 密钥。我们永远不会看到您的扫描数据。
## 功能
```
Scan → Verify → Prioritize → Track → Act
```
- **26 个扫描插件** 探测 ICMP、TCP、UDP、HTTP、TLS、SNMP、DNS、SMB、RPC、mDNS、UPnP、WS-Discovery 等网络
- **智能结果融合** —— 结果融合器将所有插件输出合并为归一化视图,包含操作系统检测、服务指纹识别和证据关联
- **结构化发现格式** —— 所有发现使用统一模式(类别、严重性、证据、修复),支持一致的 SARIF 导出和 MCP 集成
- **AI 驱动分析** —— 将脱敏的扫描结果发送到 OpenAI 或 Claude(您选择密钥)进行漏洞评估和修复指导
- **已验证漏洞(专业版)** —— 安全、非破坏性探针确认发现为真实结果,而非仅基于版本匹配。若无法验证,则标记为“潜在”而非“确认”
- **持续监控(CTEM)** —— 定时重扫、结果差异对比,并在变更时触发 Webhook 告警
- **MCP 集成** —— 通过模型上下文协议向 Claude Code 等 AI 助手暴露扫描工具
- **CI/CD 就绪** —— 提供 SARIF 输出和 `--fail-on` 严重性门控,支持流水线集成
## 版本
NSAuditor AI 提供三个版本:
| | 社区版(免费) | 专业版($49/月) | 企业版($2k+/年) |
|---|:---:|:---:|:---:|
| 26 个扫描插件 | ✅ | ✅ | ✅ |
| AI 分析(OpenAI、Claude、Ollama) | ✅(基础提示) | ✅(增强提示) | ✅(增强提示) |
| 结构化发现格式 | ✅ | ✅ | ✅ |
| CTEM 监控模式 | ✅ | ✅ | ✅ |
| SARIF + CSV 导出 | ✅ | ✅ | ✅ |
| CVE 匹配 + MITRE ATT&CK | — | ✅ | ✅ |
| 并行分析代理 | — | ✅ | ✅ |
| 已验证漏洞(安全探针) | — | ✅ | ✅ |
| 风险评分与优先级 | — | ✅ | ✅ |
| 智能增强 AI 提示 | — | ✅ | ✅ |
| 高级 CTEM + 趋势分析 | — | ✅ | ✅ |
| 云扫描器(AWS/GCP/Azure) | — | — | ✅ |
| 零信任评估 | — | — | ✅ |
| 合规性(NIST/HIPAA/GDPR/PCI) | — | — | ✅ |
| 每扫描 Docker 隔离 | — | — | ✅ |
| 空气隔离部署 | — | — | ✅ |
**本仓库为社区版本** —— 功能完整,采用 MIT 许可,无任何限制。专业版和企业版功能可通过 [`@nsasoft/nsauditor-ai-ee`](https://www.nsauditor.com/ai/pricing) 包获取。
→ [开始 14 天专业版免费试用](https://www.nsauditor.com/ai/trial)(无需信用卡)
## 快速开始
```
# 全局安装
npm install -g nsauditor-ai
# 配置(可选 — 扫描完全可在无 AI 模式下离线运行)
cat > .env << 'EOF'
AI_ENABLED=true
AI_PROVIDER=ollama # openai | claude | ollama
OLLAMA_MODEL=llama3 # For local AI (no API key needed)
# OPENAI_API_KEY=sk-... # 或使用 OpenAI
# ANTHROPIC_API_KEY=sk-ant-... # 或使用 Claude
OPENAI_REDACT=true
EOF
# 扫描主机(全部插件)
nsauditor-ai scan --host 192.168.1.1 --plugins all
# 并行扫描子网
nsauditor-ai scan --host 192.168.1.0/24 --plugins all --parallel 10
# 为 AI 助手启动 MCP 服务器
nsauditor-ai-mcp
```
或者无需安装直接运行:
```
npx nsauditor-ai scan --host 192.168.1.1 --plugins all
```
或者克隆并从源码运行:
```
git clone https://github.com/nsasoft/nsauditor-ai.git
cd nsauditor-ai
npm install
node --env-file=.env cli.mjs scan --host 192.168.1.1 --plugins all
```
结果输出至 `./out/_/`:
| 文件 | 内容 |
|---|---|
| `scan_conclusion_raw.json` | 完整未脱敏结论(管理员参考) |
| `scan_conclusion_raw.html` | 管理员 RAW HTML(含过滤器和完整详情) |
| `scan_response_ai_payload.json` | 发送到 AI 的脱敏负载 |
| `scan_response_ai.json` | 原始 AI API 响应 |
| `scan_response_ai.txt` | AI 结论(Markdown) |
| `scan_response_ai.html` | 带 CVE 链接和徽章的样式化 HTML 报告 |
## 插件
### 核心扫描器
| ID | 名称 | 协议 | 用途 |
|---|---|---|---|
| 001 | Ping 检查器 | ICMP/ARP | 可达性 + 基于 TTL 的操作系统提示 |
| 002 | SSH 扫描器 | TCP:22 | 横幅、版本指纹识别、超时策略 |
| 003 | 端口扫描器 | TCP/UDP | 批量开放端口检测(为下游插件填充上下文) |
| 004 | FTP 横幅检查 | TCP:21 | FTP 守护进程版本检测 |
| 005 | 主机存活检查 | TCP/UDP | 多探针快速可达性确认 |
| 006 | HTTP 探测 | TCP:80/443 | 头部、服务器令牌、厂商提示 |
| 007 | SNMP 扫描器 | UDP:161 | sysDescr、OID、序列号/硬件/固件提取 |
| 008 | 结果融合器 | 元 | 融合所有插件输出(始终最后运行) |
| 009 | DNS 扫描器 | TCP/UDP:53 | `version.bind` CHAOS/TXT + A 记录查询 |
| 010 | Web 应用检测器 | HTTP | 通过 wappalyzer 进行技术栈指纹识别 |
| 011 | TLS 扫描器 | TCP:443+ | 每个端口的 TLS 版本与密码套件枚举 |
| 012 | OpenSearch 扫描器 | HTTP:9200+ | OpenSearch/Dashboards 版本 + Linux/Node.js 提示 |
| 013 | 操作系统检测器 | 元 | 从所有先前横幅及 TTL 回退推导发行版/操作系统 |
| 014 | NetBIOS 扫描器 | UDP:137/TCP:445 | NetBIOS/SMB 枚举 + SMB2 空会话探测 |
| 015 | SUN RPC 扫描器 | TCP/UDP:111 | RPC 端口映射服务发现(NFS、mountd) |
| 016 | WS-Discovery | UDP:3702 | 多播设备发现与 XML 元数据解析 |
| 024 | TCP SYN 扫描器 | TCP(Nmap) | 通过 Nmap 封装的 SYN 半开放扫描(可选) |
| 040 | TLS 证书与密码审计器 | TCP:443+ | 证书过期、链完整性、主机名不匹配、弱密码、已弃用协议、密钥强度 |
| 050 | TRIBE v2 神经 API 安全探针 | TCP/HTTP:8080 | 调试泄露检测、错误中的堆栈跟踪、头部安全性、CORS 误配置、未认证路由 |
| 060 | DNS 安全审计器 | DNS/UDP:53 | SPF/DKIM/DMARC、悬空 CNAME、DNSSEC、NS 委托、区域传输暴露、MX 安全性、CAA 记录 |
### 发现插件
| 名称 | 用途 |
|---|---|
| ARP 扫描器 | MAC 解析 + OUI 厂商查找 + 操作系统提示 |
| mDNS/Bon 扫描器 | 本地服务发现 + TXT 记录中的友好名称 |
| UPnP/SSDP 扫描器 | 设备发现 + 描述 XML 解析 |
| DNS-SD 扫描器 | DNS 服务发现公告 |
| LLMNR 扫描器 | 链路本地多播名称解析 |
| 数据库扫描器 | 数据库服务检测(MySQL、PostgreSQL、Redis 等) |
### 专业版/企业版插件(通过 @nsasoft/nsauditor-ai-ee)
| ID | 名称 | 等级 | 用途 |
|---|---|---|---|
| 020 | AWS 云扫描器 | 企业 | 安全组 + IAM 策略分析 |
| 021 | GCP 云扫描器 | 企业 | 防火墙规则 + IAM 绑定 |
| 022 | Azure 云扫描器 | 企业 | NSG 规则 + RBAC 分析 |
| 023 | 零信任检查器 | 企业 | 分段、加密、身份、横向移动评分 |
### 结果如何融合
结果融合器(插件 008)将所有插件输出合并为归一化结构:
1. **导入** 每个插件的 `conclude()` 适配器以获取归一化的 `ServiceRecord` 对象
2. **合并** 按 `(协议, 端口)` 合并服务,优先选择权威记录
3. **选择操作系统** —— 优先使用操作系统检测器结果,其次为高信号提示(Windows 服务、HTTP 令牌),最后使用 TTL 回退
4. **生成** 统一的 `{ summary, host, services, evidence }` 输出
5. **增强** 主机详情,添加来自 mDNS、UPnP、NetBIOS 的名称;MAC 和厂商信息来自 ARP
## AI 分析
NSAuditor AI 支持三种 AI 提供商进行漏洞分析。**所有提供者在所有层级(CE、专业版、企业版)均可用**。AI 是可选的;平台在不使用 AI 的情况下完全可用。
**提供者:** OpenAI(GPT-4o)、Anthropic Claude(Sonnet/Opus)、Ollama(完全本地)
**各层级变化的是提示内容,而非提供者:**
- **CE** — 基础扫描摘要提示(检测到的服务、端口、版本)
- **专业版** — 增强提示(CVE 匹配、MITRE 技术、风险评分、验证状态注入提示)。相同的 API 调用,输出显著更优
- **企业版** — 专业版提示 + 合规上下文
**脱敏处理:** 在任何数据到达 AI API 之前,脱敏流水线会屏蔽 IP 地址、MAC 地址、序列号以及可配置的敏感关键词。管理员 RAW 报告保留完整细节供内部审查。
```
# .env
AI_PROVIDER=claude
ANTHROPIC_API_KEY=sk-ant-... # Your key — never sent to Nsasoft
ANTHROPIC_MODEL=claude-sonnet-4-20250514
OPENAI_PROMPT_MODE=optimized
OPENAI_REDACT=true
```
对于完全本地 AI(无需外部 API 调用),请使用 [Ollama](https://ollama.ai):
```
AI_PROVIDER=ollama
OLLAMA_MODEL=llama3
```
## 持续监控(CTEM)
监控模式支持周期性重扫、差异检测和 Webhook 告警:
```
nsauditor-ai scan --host 192.168.1.0/24 --plugins all \
--watch --interval 15 \
--webhook-url https://hooks.example.com/security \
--alert-severity high
```
- **调度** — 可配置间隔和并发控制
- **差异检测** — 新、移除和变更的服务在周期之间高亮显示
- **Webhook 告警** — 带重试(指数退避,4xx 错误不重试)的 JSON POST
- **SSRF 防护** — 私有、回路和云元数据地址在扫描入口点和 `sendWebhook()` 中被屏蔽。设置 `NSA_ALLOW_ALL_HOSTS=1` 可扫描 RFC 1918 范围(本地网络审计)
- **扫描历史** 存储在 `.scan_history/`(JSONL 格式,CE 版本保留 7 天)
## MCP 服务器
通过 [模型上下文协议](https://modelcontextprotocol.io) 向 AI 助手暴露扫描能力:
```
nsauditor-ai-mcp
# 或
npx nsauditor-ai-mcp
```
**CE 工具:**
| 工具 | 用途 |
|---|---|
| `scan_host` | 使用插件选择对主机执行完整扫描 |
| `list_plugins` | 列出可用的扫描器插件及其元数据 |
**专业版工具**(需要许可证密钥和 `@nsasoft/nsauditor-ai-ee`):
| 工具 | 用途 |
|---|---|
| `probe_service` | 深度扫描特定端口/服务 |
| `get_vulnerabilities` | 按 CPE 字符串查询 CVE |
| `risk_summary` | 基于上次扫描的优先级风险概览 |
| `scan_compare` | 使用风险加权比较两个扫描结果 |
| `save_finding` | 将已验证的发现保存到发现队列(经过模式检查) |
**企业版工具**(需要企业许可证):
| 工具 | 用途 |
|---|---|
| `start_assessment` | 多主机编排评估工作流 |
| `prioritize_risks` | 跨主机风险优先级排序 |
| `compliance_check` | 合规性映射与差距分析 |
| `export_report` | 生成格式化的合规报告 |
所有主机输入均具备 SSRF 防护(屏蔽 RFC 1918、回路地址、fc00::/7、云元数据),端口校验(1–65535),CPE 格式强制约束,以及用于测试隔离的依赖注入。
### Claude Desktop 设置
首先全局安装包:
```
npm install -g nsauditor-ai
```
然后将其添加到 `claude_desktop_config.json`(设置 → 开发者 → 编辑配置):
```
{
"mcpServers": {
"nsauditor-ai": {
"command": "node",
"args": ["/path/to/global/node_modules/nsauditor-ai/mcp_server.mjs"],
"env": {
"AI_PROVIDER": "claude",
"ANTHROPIC_API_KEY": "your-key-here",
"NSA_ALLOW_ALL_HOSTS": "1",
"PLUGIN_TIMEOUT_MS": "5000"
}
}
}
}
```
使用 `npm root -g` 查找全局安装路径,然后追加 `/nsauditor-ai/mcp_server.mjs`。
- `NSA_ALLOW_ALL_HOSTS=1` — 扫描私有/RFC 1918 地址(如 `192.168.x.x`)所必需
- `PLUGIN_TIMEOUT_MS=5000` — 将每个插件超时缩短至 5 秒,使完整扫描在 Claude Desktop 的 60 秒 MCP 限制内完成
- `AI_PROVIDER` 和 API 密钥 — 可选,启用 AI 驱动的扫描结果分析
### Claude Code 设置
```
claude mcp add nsauditor-ai -- npx nsauditor-ai-mcp
```
## 安全凭证存储
将 API 密钥存储在 macOS 钥匙串中,而非明文 `.env` 文件:
```
# 存储密钥
nsauditor-ai security set ANTHROPIC_API_KEY
nsauditor-ai security set OPENAI_API_KEY
# 列出已存储的密钥(脱敏)
nsauditor-ai security list
# 删除密钥
nsauditor-ai security delete OPENAI_API_KEY
```
然后在 `.env` 或 Claude Desktop 配置中使用 `keychain:` 前缀引用:
```
ANTHROPIC_API_KEY=keychain:ANTHROPIC_API_KEY
```
```
"env": {
"ANTHROPIC_API_KEY": "keychain:ANTHROPIC_API_KEY"
}
```
`keychain:` 前缀在任何读取 API 密钥的位置均有效 — CLI、MCP 服务器或程序化 API。## CLI 参考
```
nsauditor-ai scan [options]
```
| 标志 | 描述 | 默认值 |
|---|---|---|
| `--host <目标>` | 目标:IP、主机名、CIDR、连字符范围。别名:`--ip`、`--target` | *必需* |
| `--host-file <路径>` | 每行一个主机(支持 `#` 注释和空行)的文件 | — |
| `--plugins <列表>` | 逗号分隔的插件 ID 或 `all` | `all` |
| `--ports <列表>` | 逗号分隔的端口列表 | — |
| `--out <目录>` | 自定义输出目录 | `out/` |
| `--parallel ` | 并发主机扫描数 | `1` |
| `--output-format <格式>` | 输出格式:`sarif` 用于 CI/CD | — |
| `--fail-on <严重性>` | 发现严重性达到或超过指定级别时退出码为 2:`critical\|high\|medium\|low\|info` | — |
| `--insecure-https` | 接受自签名 TLS 证书 | `false` |
| `--watch` | 启用 CTEM 持续扫描 | `false` |
| `--interval <分钟>` | 重扫间隔(需启用 `--watch`) | `60` |
| `--webhook-url ` | Webhook URL,用于增量告警 | — |
| `--alert-severity <严重性>` | 触发 Webhook 告警的最低严重性 | `high` |
\* 必须提供 `--host` 或 `--host-file` 之一。
### 主机格式
| 格式 | 示例 | 描述 |
|---|---|---|
| 单个 IP | `192.16.1.1` | 扫描单个主机 |
| 主机名 | `example.com` | 通过 DNS 解析 |
| CIDR | `192.168.1.0/24` | 所有可用主机(最小前缀:/16) |
| 连字符范围(短) | `192.168.1.1-50` | 最后一段范围 |
| 连字符范围(全) | `10.0.0.1-10.0.1.254` | IP 到 IP 范围(最多 65534) |
| 主机文件 | `--host-file targets.txt` | 每行一个主机/CIDR/范围 |
### 示例
```
# 全量扫描(启用自签名证书容差)
nsauditor-ai scan --host 192.168.1.1 --plugins all --insecure-https
# 并行子网扫描
nsauditor-ai scan --host 192.168.1.0/24 --plugins all --parallel 10
# 定向扫描:TLS + HTTP + DNS + 操作系统检测
nsauditor-ai scan --host 192.168.1.8 --plugins 011,006,009,013,008
# SARIF 输出用于 CI/CD,高危及以上发现项导致失败
nsauditor-ai scan --host 10.0.0.5 --plugins all --output-format sarif --fail-on high
# 持续监控与 Webhook 告警
nsauditor-ai scan --host 192.168.1.0/24 --plugins all \
--watch --interval 30 \
--webhook-url https://hooks.example.com/alerts \
--alert-severity high
# 从文件导入主机并并行执行 4 次扫描
nsauditor-ai scan --host-file targets.txt --plugins all --parallel 4
```
## 配置
### 环境变量(.env)
**AI 配置:**
```
AI_ENABLED=false # Set to true to enable AI analysis
AI_PROVIDER=openai # openai | claude | ollama
OPENAI_API_KEY=sk-... # Your OpenAI key
OPENAI_MODEL=gpt-4o-mini
ANTHROPIC_API_KEY=sk-ant-... # Your Claude key
ANTHROPIC_MODEL=claude-sonnet-4-20250514
OPENAI_PROMPT_MODE=optimized # basic | pro | optimized
OPENAI_REDACT=true # Redact before sending to AI
CONFIDENTIAL_KEYWORDS=serial,password,token,secret
```
**插件特定配置:**
```
TLS_SCANNER_TIMEOUT_MS=8000
TLS_SCANNER_VERSIONS=TLSv1,TLSv1.1,TLSv1.2,TLSv1.3
TLS_SCANNER_PORTS=443:https,465:smtps,563:nntps,993:imaps,995:pop3s
OPENSEARCH_SCANNER_TIMEOUT_MS=6000
OPENSEARCH_SCANNER_INSECURE_TLS=false
DNS_TIMEOUT_MS=800
HTTP_PROBE_TIMEOUT_MS=6000
WEBAPP_DETECTOR_TIMEOUT_MS=6000
SMB_NULL_SESSION=false
SMB_NULL_SESSION_TIMEOUT=5000
ENABLE_SYN_SCAN=false
SYN_SCAN_PORTS=
SYN_SCAN_TIMEOUT=30000
PING_FALLBACK=true
PING_FALLBACK_TIMEOUT=2000
```
**许可(专业版/企业版):**
```
NSAUDITOR_LICENSE_KEY=pro_eyJhbGci... # Pro or Enterprise license key
NSAUDITOR_PLUGIN_PATH= # Additional plugin directories (colon-separated)
```
**安全覆盖:**
```
NSA_ALLOW_ALL_HOSTS=1 # Allow scanning private/RFC 1918 ranges (local network auditing)
NSA_AI_TIMEOUT_MS=120000 # AI provider call timeout in ms (default: 120000 = 2 min)
```
**调试:**
```
NSA_VERBOSE=true # Verbose PluginManager logging
DEBUG_MODE=true # Plugin-level debug output
```
## 开发插件
NSAuditor AI 使用即插即用的插件系统。插件会自动从 `./plugins/` 发现——无需注册。
### 插件接口
```
// plugins/0xx_my_scanner.mjs
export default {
id: "0xx",
name: "My Scanner",
description: "What it probes",
priority: 300, // Lower runs first; Concluder is 100000
protocols: ["tcp"],
ports: [1234],
requirements: { // All optional
host: "up", // Skip if host unreachable
tcp_open: [1234], // Skip if port not open
},
// requiredCapabilities: ["enterprise"], // EE plugins only
async run(host, port, opts = {}) {
const { context } = opts; // Shared state + OUI helpers
return {
up: true,
program: "my-service",
version: "1.0.0",
data: [{
probe_protocol: "tcp",
probe_port: 1234,
probe_info: "OK",
response_banner: "my-service/1.0.0"
}]
};
},
// Adapter for Result Concluder
conclude({ result, host }) {
return [{
port: 1234,
protocol: "tcp",
service: "my-service",
program: result.program,
version: result.version,
status: "open",
info: null,
banner: result.data?.[0]?.response_banner || null,
source: "my-scanner",
evidence: result.data || [],
authoritative: true
}];
},
authoritativePorts: new Set(["tcp:1234"])
};
```
### 插件提示
- 对所有网络调用使用基于环境的超时
- 在所有代码路径上使用小延迟后关闭套接字
- 保持 `probe_info` 和 `response_banner` 简洁——完整细节放入证据中
- 使用 `authoritativePorts` 为同一端口优先于其他插件
- 插件也可通过 `NSAUDITOR_PLUGIN_PATH` 从外部 npm 包加载
## 专业版与企业版激活
购买后 [nsauditor.com/ai/pricing](https://www.nsauditor.com/ai/pricing),您将收到一封包含许可证密钥和 npm 安装命令的电子邮件。两个步骤:
```
# 1. 安装 EE 包(一次性,密钥包含在邮件中)
npm install -g @nsasoft/nsauditor-ai-ee --//registry.npmjs.org/:_authToken=npm_xxxxx
# 2. 设置您的许可证密钥
export NSAUDITOR_LICENSE_KEY=pro_eyJhbGci...
```
验证:
```
nsauditor-ai license --status
# ✓ Pro license active | Expires: 2027-04-04
nsauditor-ai license --capabilities
# ✓ intelligenceEngine ✓ riskScoring ✓ proAI ✓ advancedCTEM ...
```
许可证密钥通过 Stripe Webhook 自动交付——无需手动处理。订阅续订会生成新密钥并在当前密钥到期前通过电子邮件发送。
没有许可证密钥?本仓库中的所有功能均可完美使用,无需密钥。社区版本未被阉割——它是一个完整、生产就绪的安全扫描器。
→ [定价](https://www.nsauditor.com/ai/pricing) · [开始免费试用](https://www.nsauditor.com/ai/trial) · [企业联系](https://www.nsauditor.com/ai/enterprise)
## 测试
运行全部 506 个测试:
```
npm test
```
运行特定测试套件:
```
node --test tests/tls_scanner.test.mjs
node --test tests/port_scanner.test.mjs
node --test tests/result_concluder.test.mjs
node --test tests/os_detector.test.mjs
node --test tests/mcp_server.test.mjs
node --test tests/attack_map.test.mjs
```
测试使用 Node.js 内置的 `--test` 运行器和 `assert` 模块——无需外部测试框架。每个测试都是独立的,并带有内联固件和轻量级网络存根。
## 故障排除
| 问题 | 解决方案 |
|---|---|
| 无 DNS 横幅 | 提供商可能屏蔽 CHAOS/TXT(`version.bind`)或 UDP/53 |
| OpenSearch 通过自签名 TLS | 设置 `OPENSEARCH_SCANNER_INSECURE_TLS=true` |
| TLS 显示“已关闭” | 服务可能需要 SNI —— 设置 `TLS_SCANNER_SNI=hostname` |
| RPC 未检测到 | 确保 111 端口可访问且 RPC 端口映射器正在运行 |
| WS-Discovery 超时 | 检查网络配置和防火墙是否允许 UDP 3702 多播 |
| SYN 扫描需要 root | 使用 `sudo` 运行或改用 TCP 连接扫描器(插件 003) |
| Webhook URL 被拒绝 | 私有/回路/云元数据被 SSRF 防护屏蔽。设置 `NSA_ALLOW_ALL_HOSTS=1` 以允许扫描 RFC 1918 范围(本地网络审计) |
| EE 插件未加载 | 验证 `@nsasoft/nsauditor-ai-ee` 已安装且许可证密钥已设置 |
## 贡献
欢迎贡献!请参阅 [CONTRIBUTING.md](CONTRIBUTING.md) 获取指南。
**快速版本:**
1. Fork 本仓库并创建功能分支
2. 在提交中添加 `Signed-off-by` 行(`git commit -s`)
3. 为任何新或变更的行为添加测试
4. 提交 PR
**本仓库的所有贡献均遵循 MIT 许可。** 对于企业版贡献,请参阅 [`@nsasoft/nsauditor-ai-ee`](https://www.nsauditor.com/ai/enterprise) 仓库,该仓库需要签署 IP 分配协议。
**我们不会接受:** 拨打电话外部、传输扫描数据或削弱零数据外泄边界的代码。
### 请求或贡献插件
请先检查 `./plugins/`。若插件不存在:
- **请求它:** 在问题中打开范围、目标端口、协议和示例横幅
- **构建它:** 按照上述插件接口操作,包含测试并更新本 README
常见请求的插件:RDP、VNC、SMTP/POP3/IMAP、MySQL/PostgreSQL/MSSQL/MongoDB/Redis、LDAP、RabbitMQ/Kafka/MQTT、SIP、NTP、Modbus/S7/DNP3/BACnet、WordPress/Jenkins/GitLab 检测器。
## 架构
完整的专业技术架构请参见 [ARCHITECTURE.md](docs/architecture.md)。
**技术栈:** Node.js 20+ · ES Modules (.mjs) · OpenAI + Anthropic SDK · Node.js 内置测试运行器 · MCP stdio 传输
**设计模式:** 工厂(PluginManager.create)· 策略(编排执行/遗留执行)· 上下文(共享状态)· 适配器(plugin conclude())· 守卫子句(需求门控)· 能力门控(CE/专业版/企业版)· 信号量(并发控制)· 差异(扫描历史差异)· 边界防护(SSRF/注入防护)· 查找队列(结构化中间格式)· 并行代理(并发专用分析)· 验证探针(安全非破坏性确认)
## 隐私与安全
NSAuditor AI 构建在 **零数据外泄(ZDE)** 架构之上:
- **无遥测。** 无分析、无使用跟踪、无电话外联。
- **无数据处理。** Nsasoft US LLC 绝不会查看、存储或处理您的扫描结果。
- **AI 可选。** 外部 AI 调用使用您自己的 API 密钥。脱敏在本地先行运行。
- **许可验证离线。** JWT 签名在本地使用嵌入式公钥验证。
- **完全可空气隔离。** 每项功能均可在无互联网访问下运行(企业版包含离线 NVD 源)。
Nsasoft US LLC 不是数据处理器、数据控制者或任何数据保护法规下的业务关联方。您拥有并控制 NSAuditor AI 产生的所有数据。
## 许可证
**MIT** —— 详见 [LICENSE](LICENSE) 全文。
© 2024-present Nsasoft US LLC。“NSAuditor”和“NSAuditor AI”是 Nsasoft US LLC 的商标。
通过 `@nsasoft/nsauditor-ai-ee` 提供的专业版和企业版功能受单独专有许可约束。详情请参见 [www.nsauditor.com/ai/pricing](https://www.nsauditor.com/ai/pricing)。
标签:AI安全, Chat Copilot, Cloudflare, CMS安全, CVE匹配, GNU通用公共许可证, JavaScript, Maven, MCP集成, MITRE ATT&CK, Node.js, npm, Red Team, SARIF导出, TypeScript, 云存储安全, 安全情报, 安全插件, 开源安全工具, 持续监控, 插件架构, 智能结论, 本地部署, 漏洞验证, 离线分析, 结构化查询, 结构化输出, 结果融合, 网络扫描, 网络防护, 自动化安全, 自定义脚本, 请求拦截, 逆向工程平台, 隐私安全, 零数据外泄