ian-flores/secureguard

GitHub: ian-flores/secureguard

专为 R 语言 LLM 智能体设计的三层本地护栏库,通过输入验证、AST 代码分析和输出过滤保障 AI 工作流安全,零外部 API 依赖。

Stars: 0 | Forks: 0

# secureguard [![R-CMD-check](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/3cccd31a6c142539.svg)](https://github.com/ian-flores/dsecureguard/actions/workflows/R-CMD-check.yaml) [![Codecov test coverage](https://codecov.io/gh/ian-flores/secureguard/graph/badge.svg)](https://app.codecov.io/gh/ian-flores/secureguard) [![Lifecycle: experimental](https://img.shields.io/badge/lifecycle-experimental-orange.svg)](https://lifecycle.r-lib.org/articles/stages.html#experimental) [![pkgdown](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/229c90bbdb142540.svg)](https://ian-flores.github.io/secureguard/) 适用于 R 中 LLM 智能体工作流的可组合护栏。三层防御 —— 输入验证、代码分析和输出过滤 —— 完全在本地运行,零外部 API 调用。 ## 为什么选择 secureguard? 大多数护栏解决方案需要外部 API 调用或云服务。secureguard 完全在本地运行 —— 基于正则表达式的提示注入检测、用于检测危险代码模式的 R AST 分析,以及 PII/机密扫描 —— 所有这些都无需将您的数据发送到任何地方。 ## secure-r-dev 生态系统的一部分 secureguard 是用于在 R 中构建受治理 AI 智能体的 7 包生态系统的一部分: ``` ┌─────────────┐ │ securer │ └──────┬──────┘ ┌────────────────┼──────────────────┐ │ │ │ ┌──────▼──────┐ ┌─────▼───────────┐ ┌───▼──────────────┐ │ securetools │ │>>> secureguard<<<│ │ securecontext │ └──────┬───────┘ └─────┬───────────┘ └───┬──────────────┘ └────────────────┼──────────────────┘ ┌──────▼───────┐ │ orchestr │ └──────┬───────┘ ┌────────────────┼─────────────────┐ │ │ ┌──────▼──────┐ ┌──────▼──────┐ │ securetrace │ │ securebench │ └─────────────┘ └─────────────┘ ``` secureguard 提供了护栏层 —— 输入验证、代码分析和输出过滤,这些功能可以独立运行,也可以与 securer 的预执行 hooks 集成。securebench 位于堆栈底层,通过 precision/recall/F1 指标对护栏准确性进行基准测试。 | 包 | 角色 | |---------|------| | [securer](https://github.com/ian-flores/securer) | 带有 tool-call IPC 的沙盒 R 执行 | | [securetools](https://github.com/ian-flores/securetools) | 预构建的安全强化工具定义 | | [secureguard](https://github.com/ian-flores/secureguard) | 输入/代码/输出护栏(注入、PII、机密) | | [orchestr](https://github.com/ian-flores/orchestr) | 基于图的智能体编排 | | [securecontext](https://github.com/ian-flores/securecontext) | 文档分块、embeddings、RAG 检索 | | [securetrace](https://github.com/ian-flores/securetrace) | 结构化跟踪、token/成本核算、JSONL 导出 | | [securebench](https://github.com/ian-flores/securebench) | 使用 precision/recall/F1 指标进行护栏基准测试 | ## 安装 ``` # install.packages("pak") pak::pak("ian-flores/secureguard") ``` ## 快速示例 ``` library(secureguard) # 在危险代码运行前将其拦截 hook <- as_pre_execute_hook( guard_code_analysis(), guard_code_complexity(max_ast_depth = 15) ) hook("mean(1:10)") # TRUE -- safe hook("system('ls')") # FALSE -- blocked # 检查输出中是否包含敏感数据 out <- guard_output( "User SSN: 123-45-6789", guard_output_pii(), guard_output_secrets() ) out$pass # FALSE out$reasons # "PII detected in output: ssn" ``` ## 功能 ### 输入护栏 | 函数 | 描述 | |---|---| | `guard_prompt_injection()` | 检测提示注入尝试 | | `guard_topic_scope()` | 强制执行允许/阻止的主题列表 | | `guard_input_pii()` | 从用户提示中过滤 PII | ### 代码护栏 | 函数 | 描述 | |---|---| | `guard_code_analysis()` | 基于 AST 的阻止函数检测 | | `guard_code_complexity()` | 深度、调用次数、表达式限制 | | `guard_code_dependencies()` | Namespace 允许/阻止列表 | | `guard_code_dataflow()` | 赋值和全局变量限制 | ### 输出护栏 | 函数 | 描述 | |---|---| | `guard_output_pii()` | PII 检测,支持阻止/脱敏/警告操作 | | `guard_output_secrets()` | 机密检测,支持阻止/脱敏/警告操作 | | `guard_output_size()` | 字符、行和元素限制 | ### 集成 | 函数 | 描述 | |---|---| | `as_pre_execute_hook()` | 将代码护栏转换为 securer hook | | `guard_output()` | 运行带有脱敏支持的输出护栏 | | `secure_pipeline()` | 捆绑输入 + 代码 + 输出护栏 | ## securer 集成 secureguard 与 [securer](https://github.com/ian-flores/securer) 集成以实现沙盒 R 执行: ``` library(securer) library(secureguard) pipeline <- secure_pipeline( input_guardrails = list(guard_prompt_injection()), code_guardrails = list(guard_code_analysis()), output_guardrails = list(guard_output_pii(), guard_output_secrets(action = "redact")) ) sess <- SecureSession$new( pre_execute_hook = pipeline$as_pre_execute_hook() ) # 安全代码正常执行 result <- sess$execute("mean(1:10)") # 危险代码在到达 sandbox 前被拦截 sess$execute("system('ls')") # Error: blocked by guardrail # 检查输出 out <- pipeline$check_output(result) sess$close() ``` ## 文档 - [secureguard 入门](https://ian-flores.github.io/secureguard/articles/secureguard.html) - [高级护栏模式](https://ian-flores.github.io/secureguard/articles/advanced-patterns.html) - [完整参考文档](https://ian-flores.github.io/secureguard/) ## 贡献 欢迎贡献!请在 GitHub 上提交 issue 并发送 pull request。 ## 许可证 MIT
标签:AI安全, API密钥检测, AST解析, C2, Chat Copilot, CISA项目, DLL 劫持, DNS 反向解析, LLM, PII检测, R包, R语言, secure-r-dev, Unmanaged PE, 人工智能, 代码分析, 凭证管理, 大语言模型, 开发库, 护栏, 提示注入防御, 本地部署, 机密扫描, 源代码安全, 用户模式Hook绕过, 网络安全, 输入验证, 输出过滤, 错误基检测, 隐私保护, 零日漏洞检测, 静态代码分析