注入型漏洞以及agent-audit的检测原理

发布时间:2026/10/24 3:08:35
注入型漏洞以及agent-audit的检测原理 keywords: AI安全漏洞源码1. 引入agent-audit能扫描Agent项目源代码通过静态分析的方法发现Agent的风险参考1。在参考2中可以看到agent-audit能检测多种安全问题。其中排第一的就是比较严重的注入类攻击“Injection attacks”这是指外部可控用户输入未经过滤直接传入代码执行、系统命令、数据库查询逻辑极易引发代码注入、命令注入、SQL 注入漏洞”它也被agent-audit标为AGENT-001的漏洞。2. 注入型漏洞原理代码注入Code Injection1定义程序未做过滤把外部输入拼接进代码逻辑解释器正常解析并执行恶意内容对应 exec() 这类代码执行函数。2示例cmdinput(请输入计算表达式)exec(cmd)正常输入12 → 输出 3恶意输入import(‘os’).system(‘rm -rf /’)服务端直接执行这段 Python 代码造成服务器文件被删除。命令注入Command Injection1定义程序调用系统命令时拼接了用户输入攻击者利用 Shell 特殊字符; | 等截断原有命令追加恶意系统指令。2示例importsubprocess filenameinput(请输入文件名)subprocess.call(cat filename,shellTrue)正常输入test.txt → 读取文件内容恶意输入test.txt; whoamiShell 会先后执行两条命令cat test.txt whoami攻击者获取服务器账户信息。SQL 注入SQL Injection1定义可控用户输入被直接拼接进 SQL 语句数据库把输入当成 SQL 指令执行针对数据库场景。前端输入直接拼接到查询 / 增删改 SQL 中利用 SQL 语法特殊字符’ # – 等篡改原有 SQL 逻辑。2示例原始 SQL 拼接逻辑sqlSELECT*FROMuserWHEREusername输入的账号ANDpassword输入的密码正常输入账号admin、密码123456 → 正常登录恶意输入账号 admin’ – 密码随意拼接后 SQLsqlSELECT*FROMuserWHEREusernameadmin-- AND passwordxxx– 是 SQL 注释符后面语句全部失效无需密码直接登录管理员账号。3. agent-audit检测注入型漏洞用法安装pipinstallagent-audit扫描agent-audit scan ./your-agent-project扫描后输出sarif格式报告agent-audit scan.--formatsarif--outputresults.sarif4. agent-audit检测注入型漏洞原理从参考3中我们可以看到AGENT-001的核心检测逻辑ifpattern.get(has_tainted_input,False):iftaint_analysisnotinpattern:# Fallback: construct synthetic taint analysisfunc_namepattern.get(function,)# Map function to sink type - matching oracle expectations# Oracle uses: eval, code_execution, shell_execution, sql_executionsink_type_map{eval:eval,# Oracle expects eval for eval()exec:code_execution,compile:code_execution,os.system:shell_execution,os.popen:shell_execution,subprocess.run:shell_execution,subprocess.Popen:shell_execution,subprocess.call:shell_execution,subprocess.check_output:shell_execution,subprocess.check_call:shell_execution,}sink_typesink_type_map.get(func_name,shell_execution)从代码中我们可以看出大致的检测逻辑为找危险函数扫描代码定位 eval/os.system/subprocess 等高危函数查污点输入判断这些函数的参数是否来自用户可控的未过滤输入用户可控的外部输入如 URL 参数、表单输入、文件上传内容判定漏洞危险函数 未过滤污点输入 确认命令注入漏洞其中污点分析是关键。参考4中给出了其污点分析的方案使用 Python 标准库 ast 实现函数级别的污点追踪系统 用于检测用户输入是否流向危险函数。污点分析的基本原理是 标记不可信数据污点源追踪其传播路径检查是否到达危险函数sink 。污点分析关键实现1污点分类 函数参数被视为潜在污染源保守假设环境变量、用户输入调用如 request.json() 也被标记。2数据流追踪 通过 AST 访问器记录变量赋值、函数参数传递、f-string 插值、字符串拼接等场景中的数据流向。3BFS 可达性检测 从每个污染变量开始沿数据流图广度优先搜索检查是否到达危险函数 subprocess.run 、 os.system 、 eval 等。4净化处理 若污染变量在到达 sink 前经过净化操作如 shlex.quote() 则不报告漏洞。5. 总结本文讲解三类注入型漏洞代码注入、命令注入、SQL 注入的原理并从agent-audit源码讲解了其检测注入型漏洞的逻辑。6. 参考https://github.com/HeadyZhang/agent-audithttps://github.com/HeadyZhang/agent-audit/tree/27c8416b003117f7acf40fd7925c35862d170ba8#what-it-detectshttps://github.com/HeadyZhang/agent-audit/blob/27c8416b003117f7acf40fd7925c35862d170ba8/packages/audit/agent_audit/rules/engine.py#L552https://github.com/HeadyZhang/agent-audit/blob/27c8416b003117f7acf40fd7925c35862d170ba8/packages/audit/agent_audit/analysis/taint_tracker.py

关于本文作者

来自尧图内容编辑团队

尧图内容编辑团队 内容团队

尧图内容编辑团队

本文由尧图网络内容编辑团队执笔。团队由资深项目经理、前端工程师与设计师组成,所有内容均来自亲手交付的真实项目,先讲清问题、再给出可落地的解法。尧图深耕北京网站建设十年,服务过京华建材集团、智造科技等各行业客户,把一线经验沉淀为可复用的行业观察。

  • 十年建站经验,覆盖建材、制造、服务、文创等
  • 项目经理把关选题与事实准确性
  • 工程师与设计师联合撰写专业细节
  • 统一编辑规范,保证文风与排版一致
  • 每月复盘转化数据,迭代选题方向

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

建站决策前值得细读的三篇

网站改版的5个关键决策
2024-08-12

网站改版的5个关键决策

什么时候该改版、改到什么程度、如何避免流量掉光,京华建材集团改版复盘给出答案。

获取专属建站方案

看完文章,把您的行业与预算告诉我们,免费获取一份量身定制的官网建设方案与报价。

立即免费咨询