NonBytes/skills-validation

GitHub: NonBytes/skills-validation

一款基于 Tauri v2 和 Rust 构建的离线桌面应用,用于解析、验证、模拟和试运行渗透测试 AI agent 的 skill playbook 文件。

Stars: 0 | Forks: 0

# Skill Tester 一款使用 **Tauri v2** 和 **Rust** 构建的离线桌面应用程序,用于解析、lint、验证、模拟和试运行 agent skill 文件。 Skill 是带有 YAML frontmatter 的 markdown 文件,用于为自主渗透测试 AI agent 提供上下文和 playbook。此实用程序允许开发人员测试匹配逻辑、验证 frontmatter schema 的正确性、检查覆盖率,以及针对本地或云端 LLM 运行试运行测试。 ## 主要功能 1. **Frontmatter Lint 与验证** - 解析单个文件的 YAML frontmatter,或递归遍历目录结构。 - 强制执行 schema 验证(例如:必填字段、有效的阶段、非空内容)。 - 验证**参考文件**(没有 frontmatter 的文件),检查失效链接、孤立文档和缺失的标题。 - **自动修复**功能利用编辑距离进行阶段修正和优先级强制转换,并提供实时的 diff 预览。 - Watch 模式,在文件更改时自动重新验证。 - 按状态过滤(全部 / 通过 / 失败 / 警告 / 错误),并支持跨名称和路径的全文搜索。 - **泰语/英语 UI** — 所有标签、状态消息和验证提示均完全支持双语。 2. **Trigger 匹配模拟器** - 模拟和调试 skill trigger 规则(技术、服务、端口、路径、信号、阶段)。 - 使用 OR 匹配评估标准评估场景状态,并按优先级排序显示结果。 - 突出显示匹配到零个 skill 或匹配到过多 skill 的场景警告。 3. **覆盖率矩阵** - **阶段覆盖率**:跨 9 个网络攻击杀伤链阶段的可视化进度映射。 - **工具覆盖率**:将 87 个内置 agent 工具与 skill 库存进行匹配,以发现缺口。 - **OWASP Top 10 映射**:将 skill 映射到漏洞类别,当缺口(如 A06 或 A09)缺少 playbook 时向您发出警告。 - 还涵盖 **MITRE ATT&CK Tactics**、**CWE Top 25** 和 **PTES Phases**。 4. **LLM 试运行测试器** - 选择云端或本地 LLM 提供商:**OpenAI**、**Anthropic**、**Ollama**、**LM Studio** 和 **AnythingLLM**。 - **自动 skill 匹配** — 用纯文本描述目标场景,引擎会自动选择最相关的 skill playbook(最多 5 个)作为 LLM 上下文,这与真实 agent runtime 的工作方式完全一致。 - 50 个内置示例场景,涵盖 Web、网络、云、AD、协议和 OSINT — 一键即可加载任意场景。 - 显示每次响应匹配到的 skill。 - 支持选择响应语言(英语或泰语)并对 LLM 建议进行评分。 ## 技术栈 - **Frontend**:Vanilla HTML5、CSS3、JavaScript、Tailwind CSS v4 和 `marked.js`(markdown 渲染器)。 - **Backend**:Rust、Tauri v2 框架、Tokio(异步 runtime)、Serde(序列化)、Reqwest(HTTP 客户端)和 Walkdir(文件解析)。 ## 开始使用 ### 前置条件 - **Node.js** (v18+) - **Rust & Cargo** (v1.75+) ### 安装与设置 1. 克隆仓库并导航至项目目录: git clone https://github.com/NonBytes/skills-validation.git cd skills-validation 2. 安装 Node 依赖(Tailwind CSS 构建 CLI 所需): npm install ### 在开发模式下运行 要启动具有热重载和 Tailwind 编译功能的桌面应用程序: 1. 编译 CSS: npm run build:css *(对于持续开发,您可以在单独的终端中运行 `npm run dev:css` 以监听样式变化)* 2. 启动 Tauri 应用程序: cargo tauri dev ## 生产构建指南 要为您的操作系统构建独立的生产可执行文件,请按照以下特定平台的说明进行操作: ### 🍏 macOS 构建 #### 前置条件 - **Xcode Command Line Tools**:通过运行以下命令进行安装: xcode-select --install #### 构建命令 ``` npm run build:css cargo tauri build ``` 输出的 bundle 将生成在: - **`.dmg` 安装程序**:`src-tauri/target/release/bundle/dmg/` - **`.app` 应用程序 bundle**:`src-tauri/target/release/bundle/macos/` ### 🐧 Linux 构建 (Debian/Ubuntu) #### 前置条件 安装必需的系统软件包,包括编译器、OpenSSL、GTK 和 WebKit2GTK: ``` sudo apt update sudo apt install -y \ libwebkit2gtk-4.1-dev \ build-essential \ curl \ wget \ file \ libssl-dev \ libgtk-3-dev \ libappindicator3-dev \ librsvg2-dev ``` #### 构建命令 ``` npm run build:css cargo tauri build ``` 输出的 bundle 将生成在: - **`.deb` 安装程序**:`src-tauri/target/release/bundle/deb/` - **`.AppImage` 可执行文件**:`src-tauri/target/release/bundle/appimage/` ### Windows 构建 #### 前置条件 1. **Visual Studio Build Tools**:安装 C++ Build Tools(通过 Visual Studio Installer)。 2. **WiX Toolset**:将应用程序打包为 `.msi` 安装程序所必需。 - 安装 WiX Toolset v3 或 v4(您可以使用 `winget install WiXToolset.WiXToolsets` 或从他们的网站下载)。 #### 构建命令 ``` npm run build:css cargo tauri build ``` 输出的 bundle 将生成在: - **`.msi` 安装程序**:`src-tauri\target\release\bundle\msi\` - **`.exe` 安装程序 (NSIS)**:`src-tauri\target\release\bundle\nsis\`(如果已配置) ## 下载 预构建的二进制文件可在 [Releases](https://github.com/NonBytes/skills-validation/releases) 页面上找到: | 平台 | 文件 | |---|---| | macOS (Apple Silicon) | `Skills.Validation_x.x.x_aarch64.dmg` | | macOS (Intel) | `Skills.Validation_x.x.x_x64.dmg` | | Linux | `Skills.Validation_x.x.x_amd64.deb` 或 `.AppImage` | | Windows | `Skills.Validation_x.x.x_x64-setup.exe` 或 `.msi` | ### macOS:“应用程序已损坏”警告 该应用程序未使用 Apple Developer 证书进行签名,因此 macOS Gatekeeper 会阻止它。要解决此问题,请在安装后运行以下命令: ``` xattr -cr "/Applications/Skills Validation.app" ``` 或者,如果您打开了 `.dmg` 但尚未将其移动到“应用程序”文件夹中: ``` xattr -cr ~/Downloads/Skills\ Validation.app ``` 然后正常打开该应用程序。 ## 运行测试 Rust 后端包含单元测试,用于验证 trigger 匹配、目录遍历、自动修复编辑距离以及 LLM 配置解析。使用以下命令运行测试套件: ``` cargo test ```
标签:MITM代理, Rust, Tauri, 可视化界面, 安全覆盖度评估, 数据可视化, 桌面应用, 网络流量审计, 自动化渗透测试, 自定义脚本