导语:安全研究人员于近日发布了一套完全本地化的漏洞研究流水线(local-vuln-research-pipeline)。该系统以14B参数代码专用模型Qwen2.5-Coder为核心,通过代码图谱与LLM混合架构,对目标代码进行穷举式source-to-sink路径枚举,已在Linux Kernel、VSCode等大型项目上完成验证。
一、项目概述
该流水线名为local-vuln-research-pipeline,托管于GitHub(theteatoast/local-vuln-research-pipeline),核心设计理念是”完全本地化+穷举覆盖”——不依赖任何云端API,所有分析均在本地硬件完成。
与传统静态分析工具不同,该系统将LLM仅用于可利用性推理,而非漏洞发现。代码图谱构建、路径枚举等核心步骤均为确定性执行,确保分析结果可复现、无遗漏。
核心架构
流水线采用代码图谱 + LLM混合架构,分析流程如下:
- 指纹识别 + SBOM生成:对目标仓库进行完整文件清单构建
- 依赖漏洞扫描:对接NVD数据库,结合EPSS/KEV排名筛选高危依赖
- 静态分析:调用Semgrep扫描,同时构建完整调用图谱
- 威胁建模 + CVE目录:注入产品相关历史CVE,为LLM提供上下文
- 路径枚举:穷举所有source-to-sink路径,进行过程间污点追踪
- 逐路径LLM分析:验证每条路径的真实可利用性
- 盲区覆盖:对未被路径覆盖的源文件逐一进行LLM代码审查
- 攻击链合成:通过networkx传递闭包构建多步攻击路径
- 报告输出:生成包含根因、利用路径和修复建议的完整报告

二、支持能力
支持的编程语言与框架
该系统通过tree-sitter解析9种语言的正则回退,覆盖如下主流技术栈:
- C/C++/Rust:内存安全问题(缓冲区溢出、use-after-free等)
- TypeScript/JavaScript:XSS、SSRF、 prototype pollution、SSTI
- Python:Flask/Django/Express路由安全、ORM注入、认证绕过
- Java:Spring Boot注解安全、SpEL注入、反序列化漏洞
- Go:HTTP路由、goroutine竞态条件
可检测漏洞类型
流水线可检测的漏洞类型覆盖主流攻击向量,包括但不限于:各类注入漏洞(命令注入、SQL注入、路径注入、SSRF、SSTI)、反序列化漏洞、身份认证与访问控制绕过、硬编码凭证、竞态条件(TOCTOU)、XXE、LDAP注入、XPath注入、弱加密与弱随机数使用等。
三、测试配置与性能
根据项目文档,推荐硬件配置如下:
- GPU:RTX 4070 Ti SUPER(16GB VRAM)
- CPU:Ryzen 7 7700(8C/16T)
- 内存:32GB DDR5 6000MHz
- 模型:Qwen2.5-Coder-14B-Abliterated Q4_K_M(14B密集参数,8.6GB)
- Draft模型:Qwen2.5-Coder-0.5B-Q4_K_M(约400MB),用于推测解码
- 推理速度:25-35 tok/s基础,启用推测解码后可达35-50 tok/s
- 上下文窗口:32K tokens
推理服务基于llama.cpp构建,支持jinja模板、flash attention和Q4 KV cache。NVD数据更新需申请API Key,完整下载约45分钟(36万+ CVE记录)。
四、使用方法
项目依赖Python环境,安装步骤如下:
# 安装llama.cpp
winget install llama.cpp # Windows
brew install llama.cpp # macOS / Linux
# 安装Python依赖
pip install -r requirements.txt
pip install huggingface_hub
# 下载主模型(14B)
huggingface-cli download bartowski/Qwen2.5-Coder-14B-Instruct-abliterated-GGUF
Qwen2.5-Coder-14B-Instruct-abliterated-Q4_K_M.gguf --local-dir models/
# 下载Draft模型(0.5B)
huggingface-cli download bartowski/Qwen2.5-Coder-0.5B-Instruct-abliterated-GGUF
Qwen2.5-Coder-0.5B-Instruct-abliterated-Q4_K_M.gguf --local-dir models/
# 启动推理服务
python start_server.py
# 更新CVE数据库(首次运行)
export NVD_API_KEY="your-key-here"
python -m src.main update-cve
# 启动漏洞审计
python run_audit.py /path/to/target-repo
# 断点续扫
python run_audit.py /path/to/target-repo --resume
五、局限性
项目文档明确列出了静态分析固有的局限性:
- C函数指针:通过函数指针的动态调用无法精确定位目标,仅作保守标记
- C++/Java/C#虚表:通过vtable的虚调用采用保守解析策略
- 反射调用:标记为可疑,具体严重程度依赖上下文判定
- C宏:AST解析器不展开宏,宏内漏洞可能漏报
- 汇编代码:不在分析范围内
- 跨翻译单元内联(C语言):调用图谱中将显示为独立函数
对于上述边界情况,系统会将不确定性上报至LLM进行判断,而非直接给出假阴性结果。
六、总结
local-vuln-research-pipeline代表了本地化AI驱动代码审计的一个重要方向——通过穷举式路径枚举确保覆盖无死角,同时以LLM处理语义理解层面的可利用性判断。相比纯动态分析或纯规则匹配的传统方案,其代码图谱 + LLM混合架构在召回率与精确度之间取得了更好的平衡。
对于拥有充足本地算力的安全团队、甲方SRC或大型企业内部安全团队,该工具提供了在不依赖外部云服务的前提下,对大型代码仓库进行系统性漏洞挖掘的可能性。
项目地址:https://github.com/theteatoast/local-vuln-research-pipeline
版权声明:本文由华盟网原创发布,保留所有权利。配图由华盟网授权使用。














暂无评论内容