kochj23/NMAPScanner

GitHub: kochj23/NMAPScanner

macOS 平台的网络安全扫描器,通过 SwiftUI 封装 nmap 实现端口扫描、漏洞检测和 AI 驱动的威胁分析功能。

Stars: 2 | Forks: 0

# NMAP 扫描器 一款原生 macOS 网络安全扫描器,在现代 SwiftUI 界面中封装 nmap,具有 AI 驱动的威胁检测、设备管理、UniFi 控制器集成、合规报告和本地 REST API。 ![Build](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/8bb8ba6015105731.svg) ![macOS 14.0+](https://img.shields.io/badge/platform-macOS%2014.0%2B-blue) ![Swift 5.9+](https://img.shields.io/badge/Swift-5.9%2B-orange) ![License](https://img.shields.io/badge/license-MIT-green) ![Version](https://img.shields.io/badge/version-9.0.0-purple) ![Tests](https://img.shields.io/badge/tests-291%20passing-brightgreen) ## 功能 | 功能 | 描述 | |---------|-------------| | 网络发现 | 基于 ARP、ping、Bonjour 和 nmap 的主机检测,并行扫描 115 个端口 | | 6 种扫描配置 | 快速、标准、全面、激进、隐蔽和自定义 nmap 配置 | | 操作系统和服务检测 | nmap 操作系统指纹识别、服务版本探测和横幅抓取 | | AI 威胁分析 | 本地设备严重性评分、异常检测、设备分类,以及通过 Ollama / MLX / TinyLLM 生成 LLM 安全报告 | | 隐藏 AI 检测 | 发现网络上未授权的 LLM/AI 服务 | | 漏洞扫描 | CVE 交叉引用、SSL/TLS 证书评级、DNS 安全分析、不安全端口检测、恶意软件端口模式匹配 | | 合规报告 | 针对 NIST、CIS、PCI-DSS、HIPAA、SOC 2 和 ISO 27001 框架的验证 | | 设备管理 | 白名单、阻止(pfctl)、深度扫描、VLAN 隔离(UniFi)、信誉评分、正常运行时间跟踪、分组 | | UniFi 集成 | 登录 UniFi OS 控制器、列出客户端、识别 Protect 摄像头、创建防火墙规则和 VLAN 分配 | | 导出格式 | PDF、CSV、JSON、HTML、Markdown 和 STIX 2.1 威胁情报包 | | 8 标签页导航 | 仪表盘、安全和流量、AI 助手、网络工具、拓扑图、HomeKit、WiFi 网络、依赖图 | | 菜单栏代理 | 持久状态图标,带快速扫描、设备列表和威胁计数 | | 桌面小组件 | WidgetKit 扩展(小/中/大),显示安全评分、设备数量和扫描计划 | | 计划扫描 | 可配置间隔,带扫描历史和看门狗 | | Nova API 服务器 | 端口 37423 上的 REST API(仅限环回),用于自动化 | ## 架构 ``` graph TD subgraph UI["SwiftUI Frontend (8 Tabs)"] DASH[Dashboard V3] SEC[Security and Traffic] AIUI[AI Assistant] TOOLS[Network Tools
Ping / Traceroute / DNS / ARP / Config] TOPO[Topology Graph] HK[HomeKit Tab] WIFI[WiFi Networks] DEP[Dependency Graph] MENU[MenuBarAgent] end subgraph Engine["Scan Engine"] ISV3[IntegratedScannerV3] ISV3 --> APS[AdvancedPortScanner] ISV3 --> PING[PingScanner] ISV3 --> BONJ[BonjourScanner] ISV3 --> ARP[ARPScanner] APS -->|Process.arguments| NMAP["/usr/local/bin/nmap"] NMAP --> PARSER[Text Output Parser] PARSER --> RESULT["AdvancedScanResult
(ports, OS, services)"] end subgraph AI["AI / ML Subsystem"] MLX[MLXInferenceEngine] MLX --> BACKENDS["Ollama / MLX / TinyLLM"] THREAT_AI[AISecurityAnalyzer] MLX_THREAT[MLXThreatAnalyzer] SHADOW[ShadowAIDetector] REPORT[LLMSecurityReportGenerator] ETHICAL[EthicalAIGuardian] end subgraph Security["Security Subsystem"] VULN[VulnerabilityScanner] SSL[SSLCertificateAnalyzer] DNS_SEC[DNSSecurityAnalyzer] INSECURE[InsecurePortDetector] MALWARE[MalwarePatternDetector] IOT[IoTSecurityScorer] ROGUE[RogueDeviceDetector] COMPLIANCE["ComplianceFramework
NIST / CIS / PCI / HIPAA / SOC2 / ISO27001"] end subgraph Integration["Integration Layer"] UNIFI[UniFiController] --> KEYCHAIN[macOS Keychain] NOVA["NovaAPIServer :37423"] EXPORT[ExportManager] --> FORMATS["PDF / CSV / JSON / HTML / STIX 2.1"] DEVICE[DevicePersistence] SCHED[ScheduledScanManager] WIDGET[WidgetKit Extension] end UI --> Engine UI --> AI UI --> Security Engine --> Security AI --> Security UI --> Integration RESULT --> DEVICE RESULT --> WIDGET NOVA --> Engine ``` ### 扫描数据流 ``` sequenceDiagram participant User participant Dashboard participant IntegratedScannerV3 participant AdvancedPortScanner participant nmap participant AISecurityAnalyzer participant DevicePersistence participant WidgetKit User->>Dashboard: Start scan (profile + target) Dashboard->>IntegratedScannerV3: scan(target, profile) IntegratedScannerV3->>AdvancedPortScanner: TCP/UDP port scan IntegratedScannerV3->>IntegratedScannerV3: ARP + Ping + Bonjour (parallel) AdvancedPortScanner->>nmap: Process.run(arguments) nmap-->>AdvancedPortScanner: Text output (ports, OS, services) AdvancedPortScanner->>AdvancedPortScanner: Parse results AdvancedPortScanner-->>IntegratedScannerV3: AdvancedScanResult[] IntegratedScannerV3->>AISecurityAnalyzer: Analyze threats AISecurityAnalyzer->>AISecurityAnalyzer: Risk scoring + anomaly detection AISecurityAnalyzer->>AISecurityAnalyzer: CVE cross-reference + compliance check AISecurityAnalyzer-->>IntegratedScannerV3: Severity ratings + recommendations IntegratedScannerV3->>DevicePersistence: Store/update devices IntegratedScannerV3->>WidgetKit: Update timeline IntegratedScannerV3-->>Dashboard: Render results + threat alerts ``` ## 安装 1. 安装 nmap:`brew install nmap` 2. 从 [Releases](https://github.com/kochj23/NMAPScanner/releases) 下载最新的 DMG 3. 打开 DMG 并将 NMAPScanner.app 拖到 `/Applications` 4. 无沙盒 — 通过 DMG 直接分发,不通过 Mac App Store ### 可选:AI 后端 ``` # Ollama(推荐) brew install ollama && ollama pull llama3 # MLX(仅支持 Apple 芯片) pip install mlx-lm ``` ## 要求 | 要求 | 最低版本 | |-------------|---------| | macOS | 14.0 (Sonoma) | | 架构 | 通用(推荐 Apple Silicon 用于 AI) | | nmap | 必需 — `brew install nmap` | | AI 后端(可选) | Ollama、MLX 或 TinyLLM | | UniFi(可选) | UniFi OS 控制器,带存储在 Keychain 中的凭据 | ## 构建 ``` git clone https://github.com/kochj23/NMAPScanner.git cd NMAPScanner xcodebuild -project NMAPScanner.xcodeproj -scheme NMAPScanner -configuration Release build ``` ## 测试 ``` xcodebuild -project NMAPScanner.xcodeproj -scheme NMAPScanner -destination 'platform=macOS' test ``` 291 个测试,涵盖 9 个测试文件,包括单元、安全、功能和集成类别: | 测试文件 | 测试数 | 类别 | |-----------|------:|----------| | ComprehensiveTestSuite | 78 | 单元、安全、集成、功能、框架 — nmap 命令构建、安全加固、端到端流程、视图实例化 | | ScanProfileTests | 35 | 单元 — 扫描配置、nmap 参数、端口模式、预设 | | CommandInjectionTests | 32 | 安全 — IP 验证、shell 元字符拒绝、URL SSRF、API 正则表达式 | | APIContractTests | 32 | 功能 — Codable 模型、API 响应格式、STIX 2.1 格式、错误类型 | | ThreatAnalysisTests | 30 | 单元 — 风险评分、端口分类、恶意检测、物联网评分 | | DeviceModelTests | 27 | 单元 — EnhancedDevice、PortInfo、风险等级、导出格式 | | SecurityHardeningTests | 25 | 安全 — 子进程安全、输入验证、日志掩码、速率限制 | | NMAPXMLParsingTests | 19 | 单元 — nmap 输出解析、操作系统检测、服务版本、ARP 解析 | | IntegrationTests | 13 | 集成 — nmap 二进制检查、威胁分析器工作流、端到端模型 | ## Nova API 服务器 端口 **37423**(仅限 127.0.0.1 环回)。无需身份验证。 | 方法 | 路径 | 描述 | |--------|------|-------------| | `GET` | `/api/status` | 应用状态、版本、设备/警告数量、正常运行时间 | | `GET` | `/api/ping` | 健康检查 | | `GET` | `/api/scan/results` | 端口扫描结果(IP、主机名、端口、操作系统、服务) | | `POST` | `/api/scan/start` | 开始扫描(`{"ip":"192.168.1.0/24"}`)| | `GET` | `/api/security/warnings` | AI 安全警告,含严重性和 CVE 引用 | | `GET` | `/api/wifi` | 发现的 WiFi 网络(SSID、BSSID、RSSI、安全性)| | `GET` | `/api/unifi/devices` | UniFi 管理的设备 | | `GET` | `/api/threats/ioc` | STIX 2.1 指标包 | | `GET` | `/api/threats/export` | 完整结构化威胁导出 | | `POST` | `/api/threats/import` | 导入外部 STIX 2.1 威胁源 | ``` curl -s http://127.0.0.1:37423/api/status | python3 -m json.tool curl -X POST http://127.0.0.1:37423/api/scan/start \ -H "Content-Type: application/json" \ -d '{"ip":"192.168.1.0/24"}' ``` ## 扫描配置 | 配置 | nmap 等效命令 | 使用场景 | |---------|----------------|----------| | 快速 | `-T4 -F` | 快速扫描常见端口 | | 标准 | `-sT -sV` | TCP 端口服务检测 | | 全面 | `-sS -sU -sV -O` | 完整 TCP + UDP 带操作系统检测 | | 激进 | `-A -T4 -p-` | 所有端口,带操作系统、版本、脚本、路由追踪 | | 隐蔽 | `-sS -T2 -f` | 低调扫描,避免 IDS 检测 | | 自定义 | 用户定义 | 完全控制 nmap 参数 | ## 许可证 MIT 许可证 — 版权所有 (c) 2025-2026 Jordan Koch 请参阅 [LICENSE]( 获取完整文本。 由 Jordan Koch([@kochj23](https://github.com/kochj23))编写
标签:AES-256, AI威胁分析, AI安全, AI风险缓解, AMSI绕过, Chat Copilot, CIS, CVE, DNS安全, GUI扫描器, HIPAA, ISO 27001, macOS应用, Maven构建, NIST, OS指纹识别, PCI-DSS, Shadow AI检测, SOC 2, SSL/TLS检测, STIX, Swift, SwiftUI, UniFi集成, VLAN隔离, 云存储安全, 企业安全, 合规报告, 威胁情报, 威胁检测, 实时处理, 密码管理, 开发者工具, 开源软件, 插件系统, 数字签名, 无线安全, 服务检测, 本地REST API, 漏洞评估, 端口检测, 网络发现, 网络安全, 网络扫描, 网络资产管理, 设备管理, 防火墙管理, 隐私保护