Guardrails项目中API密钥在Arize追踪中的泄露问题分析
在Guardrails项目中,当开启Arize追踪功能时,系统会将API密钥作为参数一并捕获并记录。这一问题主要出现在API密钥通过参数传递的场景中,而通过环境变量设置密钥时则不会出现此问题。
该问题的技术背景涉及Guardrails的遥测系统实现机制。在0.5.x版本之前,系统采用基于Guard History的后处理流程,其中包含简单的密钥脱敏逻辑。但在后续版本中,遥测系统更新为基于包装器(wrapper)的实现方式,导致原有的密钥保护机制失效。
从技术实现层面来看,问题主要出现在runner_tracing.py文件中的call span属性捕获逻辑。系统在记录调用参数时,没有对敏感信息进行适当的过滤处理。特别是在处理kwargs参数时,直接将所有键值对序列化并记录,包括敏感的API密钥。
为解决这一问题,开发团队参考了历史版本中的密钥脱敏逻辑。原逻辑采用相对简单但有效的关键词匹配方式,对包含"key"、"token"等敏感词的参数值进行脱敏处理。新实现需要将类似的保护机制集成到当前的包装器流程中,特别是在add_step_attributes函数的参数序列化环节。
值得注意的是,这一问题不仅影响Arize追踪中的call span,同样会影响调用日志中的记录。因此,解决方案需要全面覆盖所有可能记录敏感信息的渠道。
对于开发者而言,这一案例提醒我们在实现系统监控和日志记录功能时,必须特别注意敏感信息的保护。在设计遥测系统时,应该将数据脱敏作为核心功能考虑,而不是事后补救。同时,也展示了在系统架构演进过程中,保持安全功能一致性的重要性。
该问题的修复方案已通过PR提交并合并,为Guardrails项目的安全性提供了重要保障。这一改进使得项目在保持强大监控能力的同时,也确保了用户敏感信息的安全性。
kernelopenEuler内核是openEuler操作系统的核心,既是系统性能与稳定性的基石,也是连接处理器、设备与服务的桥梁。C091
baihu-dataset异构数据集“白虎”正式开源——首批开放10w+条真实机器人动作数据,构建具身智能标准化训练基座。00
mindquantumMindQuantum is a general software library supporting the development of applications for quantum computation.Python058
PaddleOCR-VLPaddleOCR-VL 是一款顶尖且资源高效的文档解析专用模型。其核心组件为 PaddleOCR-VL-0.9B,这是一款精简却功能强大的视觉语言模型(VLM)。该模型融合了 NaViT 风格的动态分辨率视觉编码器与 ERNIE-4.5-0.3B 语言模型,可实现精准的元素识别。Python00
GLM-4.7GLM-4.7上线并开源。新版本面向Coding场景强化了编码能力、长程任务规划与工具协同,并在多项主流公开基准测试中取得开源模型中的领先表现。 目前,GLM-4.7已通过BigModel.cn提供API,并在z.ai全栈开发模式中上线Skills模块,支持多模态任务的统一规划与协作。Jinja00
AgentCPM-Explore没有万亿参数的算力堆砌,没有百万级数据的暴力灌入,清华大学自然语言处理实验室、中国人民大学、面壁智能与 OpenBMB 开源社区联合研发的 AgentCPM-Explore 智能体模型基于仅 4B 参数的模型,在深度探索类任务上取得同尺寸模型 SOTA、越级赶上甚至超越 8B 级 SOTA 模型、比肩部分 30B 级以上和闭源大模型的效果,真正让大模型的长程任务处理能力有望部署于端侧。Jinja00