我的开源项目:python依赖安全修复助手

我的开源项目:python依赖安全修复助手

项目地址,dep-safe-agent

项目介绍

dep-safe-agent,是一个python依赖安全修复助手,输入一个本地git仓库,即可完成依赖解析、cve检测、可达性分析、changelog读取、最小化修复、测试验证、最终提pr并生成报告。

项目优势

相比dependabot,我们的agent有以下优势:

  • 分析漏洞函数的可达性从而在无真实调用的情况下不做多余升级;
  • 读取版本变更changelog,分析是否存在破坏性变更,辅以运行项目自带测试套件,避免盲目升级导致项目崩溃;
  • 选用最低修复版本进行升级,避免引入多余变更。

作为agent,它有以下亮点:

  • 每一个失败路径都有降级策略,比如可达性分析在ast失效后会采用subagent探索代码文件,changelog从github获取失败后会采用subagent联网搜索获取信息,修复过程任何失败都会降级为提github issue。
  • 特别的人工审核方式,项目不是human-in-the-loop,而是after,启动agent之后只需在github页面审批pr或issue或阅览安全修复报告即可。
  • 评估完整,按行为类别分类设计包括breaking upgrade、simple bump、multi vulns等,双层指标,一层评估pipeline是否健康,比如完成率、预算耗尽率,另一层评估决策是否正确,比如修复版本是否正确、pr卫生如何、回归测试是否通过等,覆盖所有路径。

项目关键决策

bash降级

项目借鉴了swe-agent的模式但之将其作为降级路径,标准工作流只需调用自定义工具比如check cve、get changelog等,但是允许使用bash应对意外情况,提升容错率,比如使用bash寻找依赖文件等。

批间上下文重置

上下文管理,消息列表在多轮扫描之间就行重置,因为漏洞之间的修复上下文相对独立,重置影响较小且极大降低上下文管理的复杂度。另外,设置了0.85阈值,达到后会对工具结果进行裁剪,并进行结构化摘要,包括当前漏洞元信息、changelog、可达性等信息。

评估流程?

首先介绍一下项目的评估部分,整体上行为分类、两层指标。

以一个失败案例为例介绍流程,multi_vuln类里的flask-pyyaml,系统输入就是扫描漏洞这个指令,预期输出是flask与pyyaml各提一个pr,但是实际输出是只有flask提了一个,分析发现是扫描器一轮扫描5个,多轮扫描并没有生效,原来是提示词写成了单轮扫描的标准工作流,要求agent扫描后直接提交终止,修复方式为更改提示词为单轮扫描后要求继续调用scan扫描直至返回空列表,回归测试后发现仍出现偶发的只扫描单轮,于是将轮转逻辑写成代码,由代码循环负责多轮扫描,回归测试始终成功。

相关推荐
2601_9673268325 分钟前
无线扩音器哪家质量好?无线扩音器哪个牌子最好最安全?汇总对比
安全
iNeuOS工业互联网27 分钟前
多模态知识库,打通文本、图像与视频资源的协同实践与应用
人工智能·python·音视频
一晌小贪欢28 分钟前
python-第20天:关键字参数与不定长参数
java·开发语言·前端·python·数据可视化·函数参数·python办公
Metaphor69231 分钟前
如何在 Python 环境中裁剪 PDF 页面
python·pdf
灰灰202633 分钟前
等保、密评、分保、关保、风评、PIA:政务六大安全合规体系一张表全部理清
安全·政务·等级保护·政务安全合规·分级保护·个人信息保护评估
Steve__evetS33 分钟前
Claude Code记忆机制
agent·记忆·claude code
半亩码田36 分钟前
C#转Python第4.4篇:JSON 处理:json 模块 vs System.Text.Json
python·c#·json
SelectDB技术团队1 小时前
统一全文检索与 SQL 分析:Apache Doris 日志分析实践
大数据·数据结构·后端·python·全文检索·doris·日志分析
Privasa-隐私实验室1 小时前
跨端技术选型|Flutter搭建隐私加密App,安卓与iOS双端差异适配实战
android·笔记·安全·flutter·ios·隐私安全·aes-256