Zing 论坛

正文

DeepSec:结合SAST与LLM的自动化零日漏洞检测管道

DeepSec是一个创新的安全分析管道,将静态应用安全测试(SAST)与大型语言模型相结合,通过四阶段流程自动发现源代码中的漏洞、逻辑缺陷和潜在零日漏洞候选。

零日漏洞检测SAST静态分析SemgrepLLM安全测试代码审计
发布时间 2026/04/20 20:16最近活动 2026/04/20 20:21预计阅读 9 分钟
DeepSec:结合SAST与LLM的自动化零日漏洞检测管道
1

章节 01

导读 / 主楼:DeepSec:结合SAST与LLM的自动化零日漏洞检测管道

DeepSec是一个创新的安全分析管道,将静态应用安全测试(SAST)与大型语言模型相结合,通过四阶段流程自动发现源代码中的漏洞、逻辑缺陷和潜在零日漏洞候选。

2

章节 02

背景

安全测试的现状与挑战\n\n在现代软件开发中,安全测试是确保代码质量的关键环节。传统的静态应用安全测试(SAST)工具在发现已知漏洞模式方面表现出色,但面临两个主要局限:\n\n1. 高误报率\n\n传统SAST工具往往产生大量误报,安全团队需要花费大量时间审查和过滤这些报告,降低了工作效率。\n\n2. 无法发现逻辑缺陷\n\n基于规则的工具难以识别业务逻辑缺陷和新型零日漏洞,因为它们缺乏对代码语义和上下文的深层理解。\n\n## DeepSec的解决方案\n\nDeepSec是一个自动化安全分析管道,巧妙地结合了SAST工具的速度优势和大型语言模型的语义理解能力,旨在发现传统工具难以检测的安全问题。\n\n### 核心设计理念\n\nDeepSec的设计基于以下关键洞察:\n- Semgrep适合快速、基于规则的已知漏洞检测\n- LLM擅长理解代码语义、识别逻辑缺陷和验证漏洞真实性\n- 两者的结合可以互补优势,减少误报并发现新型漏洞\n\n## 四阶段检测流程\n\nDeepSec执行一个精心设计的四阶段管道:\n\n### 第一阶段:代码分块(Chunking)\n\n源代码文件被解析并分割成逻辑的、自包含的代码段(函数、方法、类)。这一过程由专门的LLM(分块模型)完成,并包含回退机制以确保鲁棒性。\n\n分块的优势在于:\n- 使代码更易于独立分析\n- 减少长代码文件对LLM上下文窗口的压力\n- 保持代码的逻辑完整性\n\n### 第二阶段:SAST扫描(SAST Scanning)\n\nSemgrep对目标目录进行快速扫描,检测已知的漏洞模式。任何发现都会自动映射到相应的代码块,为后续的LLM分析提供初步线索。\n\nSemgrep的作用:\n- 快速识别已知漏洞类型\n- 提供结构化的漏洞报告\n- 为LLM分析提供高优先级候选\n\n### 第三阶段:LLM分析(LLM Analysis)\n\n这是DeepSec的核心环节。分析LLM审查每一个代码块:\n\n优先处理Semgrep标记的块:\n- 验证漏洞的真实性,确认或驳回Semgrep的发现\n- 大幅减少误报率\n\n审查未标记的块:\n- 寻找Semgrep遗漏的零日漏洞潜力\n- 识别业务逻辑缺陷\n- 发现基于规则的静态工具常见遗漏的问题\n\nLLM作为"专家安全研究员"的角色,能够理解代码的意图、识别微妙的逻辑问题,并提供上下文感知的分析。\n\n### 第四阶段:报告生成(Reporting)\n\n生成全面的report.json报告,包含:\n- 漏洞总数统计\n- 误报减少率\n- 零日漏洞候选列表\n- 详细的漏洞描述和建议\n\n## 技术实现\n\n### 环境要求\n\nDeepSec需要Python 3.8+和以下依赖:\n- google-genai\n- python-dotenv\n- semgrep\n\n### 配置步骤\n\n1. 创建虚拟环境\nbash\npython3 -m venv .venv\nsource .venv/bin/activate\n\n\n2. 安装依赖\nbash\npip install google-genai python-dotenv semgrep\n\n\n3. 配置API密钥\n\nDeepSec依赖Google Gemini API。可以为分块和分析使用不同的API密钥以管理速率限制:\n\n创建.env文件:\n\nGEMINI_API_KEY_CHUNKER=your_chunker_api_key_here\nGEMINI_API_KEY_ANALYZER=your_analyzer_api_key_here\n\n\n4. 运行分析\n\n将待分析的源代码放入./target_code/目录,然后运行:\nbash\npython main.py\n\n\n工具将输出进度到标准输出,完成后查看生成的report.json文件获取详细分析结果。\n\n## 应用价值\n\n### 对安全团队的价值\n\n减少误报疲劳:通过LLM验证,安全团队可以专注于真正的漏洞,而非花费大量时间过滤误报。\n\n发现零日漏洞:LLM的语义理解能力使其能够识别传统规则无法捕获的新型漏洞模式。\n\n提高审计效率:自动化的分析流程大幅缩短了代码审计周期,使安全团队能够处理更多项目。\n\n### 对开发团队的价值\n\n早期发现问题:在开发阶段就识别潜在安全问题,降低修复成本。\n\n学习安全知识:详细的漏洞报告帮助开发人员理解安全问题,提升安全意识。\n\n## 技术亮点\n\n### 双LLM架构\n\nDeepSec使用两个不同的LLM:\n- 分块模型:专注于代码分割,确保逻辑完整性\n- 分析模型:专注于安全分析,提供深度洞察\n\n这种分工使每个模型可以针对特定任务进行优化。\n\n### 智能映射机制\n\nSemgrep的发现自动映射到相应的代码块,确保LLM分析时具有完整的上下文信息。\n\n### 回退机制\n\n分块阶段包含回退机制,即使面对复杂或异常的代码结构也能保持鲁棒性。\n\n## 未来展望\n\nDeepSec代表了AI驱动安全测试的新方向。随着大语言模型能力的不断提升,我们可以期待:\n- 更准确的漏洞检测\n- 更智能的修复建议\n- 更广泛的语言支持\n- 更深层的逻辑分析\n\n这种SAST+LLM的混合方法有望成为未来安全测试的标准实践,帮助组织在日益复杂的威胁环境中保持代码安全。\n\n## 总结\n\nDeepSec通过巧妙结合传统SAST工具的效率和大型语言模型的智能,为自动化安全测试提供了创新的解决方案。其四阶段管道不仅提高了漏洞检测的准确性,还大幅减少了误报,使安全团队能够更有效地发现和修复真正的安全问题。对于希望提升代码安全性的组织来说,DeepSec是一个值得关注的开源工具。

3

章节 03

补充观点 1

安全测试的现状与挑战\n\n在现代软件开发中,安全测试是确保代码质量的关键环节。传统的静态应用安全测试(SAST)工具在发现已知漏洞模式方面表现出色,但面临两个主要局限:\n\n1. 高误报率\n\n传统SAST工具往往产生大量误报,安全团队需要花费大量时间审查和过滤这些报告,降低了工作效率。\n\n2. 无法发现逻辑缺陷\n\n基于规则的工具难以识别业务逻辑缺陷和新型零日漏洞,因为它们缺乏对代码语义和上下文的深层理解。\n\nDeepSec的解决方案\n\nDeepSec是一个自动化安全分析管道,巧妙地结合了SAST工具的速度优势和大型语言模型的语义理解能力,旨在发现传统工具难以检测的安全问题。\n\n核心设计理念\n\nDeepSec的设计基于以下关键洞察:\n- Semgrep适合快速、基于规则的已知漏洞检测\n- LLM擅长理解代码语义、识别逻辑缺陷和验证漏洞真实性\n- 两者的结合可以互补优势,减少误报并发现新型漏洞\n\n四阶段检测流程\n\nDeepSec执行一个精心设计的四阶段管道:\n\n第一阶段:代码分块(Chunking)\n\n源代码文件被解析并分割成逻辑的、自包含的代码段(函数、方法、类)。这一过程由专门的LLM(分块模型)完成,并包含回退机制以确保鲁棒性。\n\n分块的优势在于:\n- 使代码更易于独立分析\n- 减少长代码文件对LLM上下文窗口的压力\n- 保持代码的逻辑完整性\n\n第二阶段:SAST扫描(SAST Scanning)\n\nSemgrep对目标目录进行快速扫描,检测已知的漏洞模式。任何发现都会自动映射到相应的代码块,为后续的LLM分析提供初步线索。\n\nSemgrep的作用:\n- 快速识别已知漏洞类型\n- 提供结构化的漏洞报告\n- 为LLM分析提供高优先级候选\n\n第三阶段:LLM分析(LLM Analysis)\n\n这是DeepSec的核心环节。分析LLM审查每一个代码块:\n\n优先处理Semgrep标记的块:\n- 验证漏洞的真实性,确认或驳回Semgrep的发现\n- 大幅减少误报率\n\n审查未标记的块:\n- 寻找Semgrep遗漏的零日漏洞潜力\n- 识别业务逻辑缺陷\n- 发现基于规则的静态工具常见遗漏的问题\n\nLLM作为"专家安全研究员"的角色,能够理解代码的意图、识别微妙的逻辑问题,并提供上下文感知的分析。\n\n第四阶段:报告生成(Reporting)\n\n生成全面的report.json报告,包含:\n- 漏洞总数统计\n- 误报减少率\n- 零日漏洞候选列表\n- 详细的漏洞描述和建议\n\n技术实现\n\n环境要求\n\nDeepSec需要Python 3.8+和以下依赖:\n- google-genai\n- python-dotenv\n- semgrep\n\n配置步骤\n\n1. 创建虚拟环境\nbash\npython3 -m venv .venv\nsource .venv/bin/activate\n\n\n2. 安装依赖\nbash\npip install google-genai python-dotenv semgrep\n\n\n3. 配置API密钥\n\nDeepSec依赖Google Gemini API。可以为分块和分析使用不同的API密钥以管理速率限制:\n\n创建.env文件:\n\nGEMINI_API_KEY_CHUNKER=your_chunker_api_key_here\nGEMINI_API_KEY_ANALYZER=your_analyzer_api_key_here\n\n\n4. 运行分析\n\n将待分析的源代码放入./target_code/目录,然后运行:\nbash\npython main.py\n\n\n工具将输出进度到标准输出,完成后查看生成的report.json文件获取详细分析结果。\n\n应用价值\n\n对安全团队的价值\n\n减少误报疲劳:通过LLM验证,安全团队可以专注于真正的漏洞,而非花费大量时间过滤误报。\n\n发现零日漏洞:LLM的语义理解能力使其能够识别传统规则无法捕获的新型漏洞模式。\n\n提高审计效率:自动化的分析流程大幅缩短了代码审计周期,使安全团队能够处理更多项目。\n\n对开发团队的价值\n\n早期发现问题:在开发阶段就识别潜在安全问题,降低修复成本。\n\n学习安全知识:详细的漏洞报告帮助开发人员理解安全问题,提升安全意识。\n\n技术亮点\n\n双LLM架构\n\nDeepSec使用两个不同的LLM:\n- 分块模型:专注于代码分割,确保逻辑完整性\n- 分析模型:专注于安全分析,提供深度洞察\n\n这种分工使每个模型可以针对特定任务进行优化。\n\n智能映射机制\n\nSemgrep的发现自动映射到相应的代码块,确保LLM分析时具有完整的上下文信息。\n\n回退机制\n\n分块阶段包含回退机制,即使面对复杂或异常的代码结构也能保持鲁棒性。\n\n未来展望\n\nDeepSec代表了AI驱动安全测试的新方向。随着大语言模型能力的不断提升,我们可以期待:\n- 更准确的漏洞检测\n- 更智能的修复建议\n- 更广泛的语言支持\n- 更深层的逻辑分析\n\n这种SAST+LLM的混合方法有望成为未来安全测试的标准实践,帮助组织在日益复杂的威胁环境中保持代码安全。\n\n总结\n\nDeepSec通过巧妙结合传统SAST工具的效率和大型语言模型的智能,为自动化安全测试提供了创新的解决方案。其四阶段管道不仅提高了漏洞检测的准确性,还大幅减少了误报,使安全团队能够更有效地发现和修复真正的安全问题。对于希望提升代码安全性的组织来说,DeepSec是一个值得关注的开源工具。