EhsanAzish80/Nick
GitHub: EhsanAzish80/Nick
Nick 是一个基于设备端 AI 行为评分、无需云依赖的开源 macOS 安全套件,用单一应用覆盖系统审计、持久化监控、网络检测、进程分析、YARA 扫描和摄像头防护六层防御。
Stars: 5 | Forks: 0
Open-source macOS security suite with on-device AI threat scoring
One app. Six layers of protection. Zero cloud dependency. Read every line of code.
Features • Architecture • Installation • Build • Contributing • Roadmap
## 为什么选择 Nick? macOS 自带可靠的内置安全功能 —— XProtect、Gatekeeper、SIP —— 但这些防御机制基于特征码且反应式。它们在 Apple 添加定义后才能捕获已知威胁。它们无法捕获: - **行为威胁** —— 已签名的应用悄悄窃取你的钥匙串 - **地头蛇式攻击** —— `curl` 管道到 `bash`、`osascript` 运行混淆脚本 - **持久化后门** —— 被感染的软件静默安装新的 LaunchAgent - **隧道检测** —— 反弹 Shell、意外的 SSH 转发、SOCKS 代理 - **零日漏洞利用** —— 任何特征库都未见的新型恶意软件 现有工具要么每年收费 60 美元以上(Norton、Intego),要么需要安装 5-6 个独立的工具(Objective-See 的优秀但零散的套件),要么仅限企业使用(CrowdStrike、SentinelOne)。 **Nick 是一个取代六个工具的应用**,它拥有唯一的开源、设备端 AI 行为威胁评分引擎。无需云端。无需订阅。无需信任 —— 代码就在这里。 ## 功能 ### 🔍 系统完整性审计 持续验证你的 Mac 安全状态: - SIP(系统完整性保护)状态 - FileVault 加密状态 - Gatekeeper 配置 - 应用防火墙状态和规则 - XProtect 定义新鲜度 - TCC 数据库完整性 - `sudo` 配置和 PATH 完整性 ### 🛡️ 持久化监控器 监控 macOS 上每个已知的持久化机制,并在变更时发出警报: - `/Library/LaunchDaemons` 和 `/Library/LaunchAgents` - `~/Library/LaunchAgents` - 登录项 - Cron 任务和定期脚本 - 系统扩展和内核扩展 - 浏览器扩展(Safari、Chrome、Firefox) ### 🌐 网络看门狗 实时查看什么连接到何处: - 映射到进程的活动连接 - 监听端口检测(意外服务) - 反弹 Shell 检测(具有出站连接的 Shell 进程) - SSH 隧道和端口转发识别 - DNS 查询监控已知恶意域名 - 意外的 VPN/代理进程检测 ### 🔬 进程审计器 识别可疑运行时行为: - 正在执行的未签名或临时签名二进制文件 - 从 `/tmp`、`/var/tmp` 或隐藏目录运行的进程 - LOLBin 滥用检测(`curl | bash`、带有混淆载荷的 `osascript`、`openssl` 反向连接) - 可疑的父子进程链 - 来自 GUI 应用的意外子进程 ### 🧬 YARA 扫描器 按需和实时文件扫描: - 嵌入的 YARA 引擎(libyara),配备了精选的 macOS 专用规则集 - 通过拉取请求贡献的社区规则 - 对关键目录的计划扫描 - 拖放扫描任何文件或文件夹 - 启发式分析:熵评分、Mach-O 头部检查、嵌入式 URL/IP 提取 ### 📷 摄像头与麦克风哨兵 实时检测对摄像头和麦克风的未授权访问: - 监控所有 CoreMediaIO 视频设备的意外激活 - 监控 CoreAudio 输入设备的未经许可的录音 - 将设备激活归因于最近启动的非系统进程 - 当发现未签名二进制文件访问媒体硬件时,将严重性提升至高级 - 基线-增量方法:仅对新激活发出警报,而非持续的正常使用 ### 📡 日志记录与 SIEM 集成(v1.2) Nick 的功能性日志管道将警报发送到你的现有安全基础设施,无需配置开销: - **格式:** Key=Value、JSON、CEF —— 选择一种或自行管道输出 - **输出:** 每日轮转的本地日志文件、HTTP POST webhook(Splunk HEC、AWS、PagerDuty、任何 HTTPS 端点)、stdout - **MDM 可配置** —— 所有设置都可以从管理的默认域 (`com.ehsanazish.nick`) 读取 无需 syslog。无需 OpenTelemetry。无需专门的开发人员。 ### 🧠 AI 行为评分(差异化特性) 设备端 CoreML 管道,用于行为威胁关联。v0.9 附带基于规则的评分;ML 模型在训练于真实信号数据后激活。 - 单个信号是嘈杂的。关联信号是可操作的。 - `curl` 下载二进制文件到 `/tmp` = 中等风险 - 该二进制文件 2 秒后以未签名方式执行 = 高风险 - 该二进制文件打开到原始 IP 的 443 端口出站连接 = 严重 - 由设备端 Foundation Models(macOS 26+)驱动的自然语言警报解释 - 数据从不离开你的 Mac ## 架构 ``` ┌──────────────────────────────────────────────┐ ┌───────────────────────────┐ │ Nick.app (SwiftUI) │ │ NickFinderSync.appex │ │ Menu Bar + Dashboard + Alerts │◄─│ Finder context menu │ ├──────────────────────────────────────────────┤ │ App Group UserDefaults │ │ NickLogging (functional pipeline) │ └───────────────────────────┘ │ KV / JSON / CEF → file / HTTP / stdout │ ├──────────────────────────────────────────────┤ │ Threat Correlator │ │ Combines signals → CoreML threat score │ ├──────────┬──────────┬───────────┬────────────┤ │ Process │ Persist- │ Network │ File │ │ Auditor │ ence │ Watchdog │ System │ │ │ Monitor │ + Baseline│ Watcher │ ├──────────┴──────────┴───────────┴────────────┤ │ YARA Engine (libyara) │ │ + Heuristic Analysis Layer │ ├──────────────────────────────────────────────┤ │ AI Behavioral Scorer (CoreML) │ ├──────────────────────────────────────────────┤ │ Privileged Helper (XPC) │ │ SMAppService · Elevated Operations │ └──────────────────────────────────────────────┘ ``` ### 项目结构 ``` Nick/ ├── Core/ # Detection engine (pure Swift, no UI dependency) │ ├── AVCapture/ # Camera and microphone activity monitoring │ ├── BehavioralScorer/ # CoreML inference engine │ ├── DeepScan/ # Full-system YARA deep scan driver │ ├── Helper/ # Privileged helper client interface │ ├── Logging/ # Functional alert logging pipeline (KV/JSON/CEF) │ ├── Models/ # Core-layer model types │ ├── NetworkAnalyzer/ # Connection monitoring, tunnel detection, and baseline │ ├── Notifications/ # NotificationManager │ ├── PersistenceWatcher/ # LaunchAgent/Daemon/Login Item surveillance │ ├── ProcessMonitor/ # Process auditing and anomaly detection │ ├── Protocols/ # Shared monitor protocol definitions │ ├── Services/ # macOS Services menu provider │ ├── Settings/ # AppSettings │ ├── SystemAudit/ # SIP, FileVault, Gatekeeper, firewall checks │ ├── ThreatCorrelator/ # Multi-signal correlation, scoring, and suppression │ ├── ThreatLog/ # Persistent threat log │ ├── YARAEngine/ # C interop wrapper for libyara + FSEvents watcher │ ├── SecurityEngine.swift # Top-level observable state model │ └── MonitorCoordinator.swift # Lifecycle orchestration for all monitors │ ├── App/ # SwiftUI macOS application │ ├── Dashboard/ # Overview, scanner, deep scan, network, and alert views │ ├── Alerts/ # Threat log export and history │ ├── Settings/ # Settings view │ ├── SystemAudit/ # System audit view │ ├── Theme/ # Design tokens (colors, typography, spacing, layout) │ ├── MainWindowView.swift # NavigationSplitView shell and sidebar │ ├── NickApp.swift # @main entry point │ └── AppDelegate.swift # NSStatusItem and engine bootstrap │ ├── NickHelper/ # Privileged helper tool (XPC + SMAppService) │ ├── NickFinderSync/ # Finder Sync Extension — right-click "Scan with Nick" │ ├── Models/ # Shared Swift model types │ └── Training/ # CoreML training pipeline (Python) │ ├── Rules/ # YARA rule sets │ └── community/ # Community-contributed rules │ └── Tests/ ├── NickTests/ # Unit tests └── NickIntegrationTests/ # End-to-end detection tests ``` ## 安装说明 ### 系统要求 - macOS 26 或更高版本(YARA 静态库所需) - Apple Silicon 或 Intel Mac ### 下载 从 [版本发布](https://github.com/EhsanAzish80/Nick/releases) 下载最新的公证 `.dmg` 文件。 ### Homebrew(即将推出) ``` brew install --cask nick-security ``` ### 权限 Nick 需要以下权限才能正常运行(每个权限都会单独请求并附带说明): | 权限 | 原因 | |---|---| | **完全磁盘访问权限** | 监控 LaunchAgent、浏览器扩展和系统目录 | | **网络监控** | 检测可疑连接和隧道 | | **摄像头和麦克风** | 检测对媒体硬件的未授权访问 | | **辅助功能** | 检测 UI 级进程操纵(可选) | | **通知** | 当检测到威胁时向你发出警报 | Nick 从不访问你的文档、照片或个人文件。监控仅限于系统目录、进程表和网络状态。 ## 从源码构建 ``` ## 克隆 git clone https://github.com/EhsanAzish80/Nick.git cd Nick ## 在 Xcode 中打开(需要 Xcode 16+) open Nick.xcodeproj ## 构建(包括 Nick.app + NickFinderSync.appex + NickHelper) xcodebuild -scheme Nick -configuration Release ## 运行测试 xcodebuild test -scheme NickTests -destination "platform=macOS" ## 构建 unsigned(不需要签名团队) xcodebuild -scheme Nick CODE_SIGN_IDENTITY="" CODE_SIGNING_REQUIRED=NO CODE_SIGNING_ALLOWED=NO ``` ### 依赖项 Nick 使用零第三方 Swift 依赖项。唯一的外部依赖项是 `libyara`(C 语言库,已 vendored)。 - **UI**:SwiftUI(Apple 框架) - **持久化检测**:FSEvents、Foundation(Apple 框架) - **网络监控**:Network.framework、`sysctl`(Apple 框架 / POSIX) - **进程审计**:`proc_info`、`sysctl`(POSIX) - **扫描**:libyara(vendored,BSD 许可) - **AI 评分**:CoreML、Foundation Models(Apple 框架) - **特权辅助程序**:SMAppService、XPCApple 框架) ## Nick 对比 | 功能 | Nick | Objective-See(6 个工具) | Little Snitch | Intego | Norton | |---|:---:|:---:|:---:|:---:|:---:| | 进程监控 | ✅ | ✅ (BlockBlock + KnockKnock) | ❌ | ❌ | ✅ | | 持久化检测 | ✅ | ✅ (BlockBlock) | ❌ | ❌ | ✅ | | 网络监控 | ✅ | ✅ (LuLu) | ✅ | ✅ (NetBarrier) | ✅ | | 摄像头/麦克风监控 | ✅ | ✅ (OverSight) | ❌ | ❌ | ✅ | | YARA 扫描 | ✅ | ❌ | ❌ | ✅ | ✅ | | 行为 AI 评分 | ✅ | ❌ | ❌ | ❌ | ❌ | | 关联威胁检测 | ✅ | ❌ | ❌ | ❌ | ❌ | | 系统加固审计 | ✅ | ❌ | ❌ | ❌ | ❌ | | 日志导出 (KV/JSON/CEF) | ✅ | ❌ | ❌ | ❌ | ❌ | | SIEM Webhook | ✅ | ❌ | ❌ | ❌ | ❌ | | 开源 | ✅ | ✅ | ❌ | ❌ | ❌ | | 无云端依赖 | ✅ | ✅ | ✅ | ❌ | ❌ | | 单一应用 | ✅ | ❌ (6 separate apps) | ✅ | ✅ | ✅ | | 免费 | ✅ | ✅ | ❌ ($59) | ❌ ($40-70/yr) | ❌ ($40-80/yr) | ## 路线图 ### ✅ v1.0 — 公开发布 ### ✅ v1.1 — 检测加固 ### ✅ v1.2 — AI 与报告 - 功能性日志管道(KV/JSON/CEF → 文件/Webhook/标准输出) - 所有警报路径上的 Foundation Models 解释 - 网络基线异常检测 - Finder 同步扩展(无需用户同意即可右键点击) - 计划深度扫描 - 通过 `sysctl` 获取监听端口 - 用 `proc_pidfdinfo` 替换 `lsof` - MDM 配置描述文件支持 - 可配置的警报抑制规则 ### 🔄 v1.3 — 企业版与社区版 - Homebrew cask 分发 - 社区 YARA 规则提交管道 - CoreML 行为模型(在 v1.2 的可选遥测数据上训练) - 警报聚合视图(分组相关警报) ### 🔮 v2.0 — 预防(等待 Apple 授权) - Endpoint Security 框架(执行前拦截进程) - 网络扩展(出站连接阻止) - 实时 DNS 监控 ## 安全 Nick 是一个安全工具 —— 我们对自己有更高的标准。如果你在 Nick 本身中发现漏洞,请遵循我们的 [负责任的披露流程](SECURITY.md)。**请勿** 为安全漏洞创建公开 issue。 ## 卸载 1. 从菜单栏图标退出 Nick → **退出 Nick**。 2. 打开 **Nick → 设置 → 维护**,点击 **删除辅助程序…** 以注销特权辅助程序。 3. 将 `Nick.app` 从 `/Applications` 拖入废纸篓。 4. 移除偏好设置和数据: ``` defaults delete com.ehsanazish.nick rm -rf ~/Library/Application\ Support/Nick rm -f ~/Library/LaunchAgents/com.ehsanazish.nick.plist sudo rm -f /Library/LaunchDaemons/com.ehsanazish.nick.helper.plist sudo rm -f /Library/PrivilegedHelperTools/com.ehsanazish.nick.helper ``` ## 理念 1. **永不使用云端。** 所有扫描、分析和 AI 推理都在你的 Mac 上执行。你的安全数据从不离开你的机器。 2. **零第三方 Swift 依赖项。** 每个依赖项都是一个攻击面。Nick 使用 Apple 框架和一个单独的 vendored C 库(libyara)。 3. **透明高于信任。** 你不应盲目信任任何安全工具。阅读代码。审计辅助程序。验证签名。 4. **信号优于警报。** 单个事件嘈杂。关联行为评分减少误报并呈现真实威胁。 5. **克制优于装饰。** 干净、原生的 macOS 界面。没有恐吓策略。没有追加销售。没有暗黑模式。 ## 许可证 Nick 采用 [GNU Affero General Public License v3.0](LICENSE) 许可。 这意味着你可以自由使用、修改和分发 Nick。如果你以网络服务的形式运行修改后的版本,你必须公开你的源代码。这确保了安全社区始终能够访问检测逻辑。 ## 致谢 Nick 站在巨人的肩膀上: - [Patrick Wardle](https://objective-see.org) 和 Objective-See Foundation —— 感谢他们开创了开源的 macOS 安全 - [YARA](https://virustotal.github.io/yara/) —— 驱动全球恶意软件研究的模式匹配引擎 - macOS 安全研究社区 —— 感谢他们不断发现并记录威胁由 Ehsan Azish 在 3nsofts 构建 · 使用 Swift 精心打造 · 由社区保护
标签:AI威胁评分, AMSI绕过, IP 地址批量处理, Living-off-the-land攻击检测, macOS安全, macOS防御, Swift, 二进制发布, 六层防护, 威胁检测, 安全套件, 开源工具, 持久化检测, 无云端依赖, 本地AI, 端点安全, 终端安全, 网络信息收集, 网络安全, 行为检测, 补丁管理, 隐私保护