xiaohack's Blog - SAST
type: channel
link: https://blog.xiaohack.org/tag/sast-27030d/
items: 重塑传统自动化漏洞挖掘的Multi-Agent框架攻防一体化实践
items: 补齐SDLC最后一块拼图：LLM 在应用安全中的实践探索
items: SonarQube Server 2025.6.1.117629 - 代码质量、安全与静态分析工具

重塑传统自动化漏洞挖掘的Multi-Agent框架攻防一体化实践
type: item
date: 2026-01-24T19:42:28+08:00
description: 重塑传统自动化漏洞挖掘的Multi-Agent框架攻防一体化实践前段时间在某大厂做安全研究时，针对SDLC的重复性审计工作结合大模型Agent思索了一些可行的思路，便在不断摸索中构建了一个Multi-Agent的协同漏洞挖掘框架系统，目前个人使用来看对于开源的web应用的实战效果相比传统的SAST、DAST以及纯LLM的漏洞挖掘工具来说还是很不错的，便记录此篇框架实现过程和当今Agent赋能漏挖的可行性与优势供师傅们交流指点....0x00 传统漏洞挖掘的困局当前针对Web应用后端的自动化漏洞挖掘技术主要受困于“覆盖率”与“准确性”难以两全的矛盾： 传统的静态分析技术虽能提供全量的代码覆盖，但由于缺乏对程序运行时状态和复杂业务逻辑的语义理解，往往导致海量的误报噪声，极大地增加了安全工程师的审计成本 而动态应用程序安全测试虽能在黑盒方面挖掘漏洞更具真实性，却受限于黑盒视角的路径探索能力，难以触及深层业务逻辑，会存在很多漏报 目前大语言模型的出现为代码语义分析带来了新的契机，但受限于Context Window 的约束以及生成式模型固有的幻觉问题，直接依赖原生LLM进行大规模代码审计往往导致分析结果碎片化且缺乏可信度，并且直接将代码喂给大模型容易受与漏洞无关代码的影响 0x01 探索漏洞挖掘框架的新出路？在探索新的框架实现时，我们可以思考是否能将黑白盒的现有技术互补结合来引导漏洞挖掘？以及我们可以看到几年LLM与Agent相关技术如MCP、RAG的工程化落地，能否用LLM赋于框架更好的语义理解和丰富的上下文能力，再通过Agent做一套自动化流程？为突破上述技术瓶颈，我在探索新的漏洞挖掘框架时也看了一些目前学术界的相关LLM赋能的研究与github开源的技术实现，总体的探索方法还是在论文与现实实践中思考各个方面的优势与缺陷，最终确定做一个基于Muti-Agent协同的智能化漏洞挖掘框架：构建一个从静态分析到动态验证的闭环生态。技术上引入MCP 来作为连接LLM推理能力与静态分析工具的桥梁，利用RAG 技术通过构建高质量漏洞专家知识库来校准模型判定，深度缓解LLM的“幻觉”与知识盲区；同时，结合运行时自动化的流量Fuzz模糊测试技术，将白盒的逻辑推演与黑盒的攻击验证深度融合，减少漏洞的误报和漏报。这里放一个当时挖到的有CNVD证书的水洞，通过项目上传与聊天，自动化分析审计出多处SQL注入漏洞，并且能够给出攻击POC，以及后续完整的修复方案0x02 框架核心：打破黑白盒壁垒该框架核心架构旨在重构传统安全检测的边界，提出了一种 “白盒语义指引黑盒，黑盒动态验证白盒”的深度融合范式。框架并非单一工具的线性叠加，而是一个基于Multi-Agent编排（Agent Orchestration）的异构系统。 白盒分析维度：框架引入了MCP作为智能体的执行接口，驱动底层的静态分析工具与正则匹配引擎，对代码AST进行初步扫描，快速锚定潜在的危险函数调用Sink。为解决静态分析中常见的上下文缺失问题，进一步融合了RAG 技术：通过引入高质量的博客记录的高精度漏洞知识库，系统能够为大语言模型提供特定漏洞类型的完备的Context上下文与判定依据，从而在保持高代码覆盖率的同时，抑制传统模式匹配带来的误报，实现了从“语法”到“语义”的代码的全面理解提升。 黑盒验证维度：框架构建了运行时的自动化Fuzz模糊测试。该模块独立承担着对Web通用漏洞（如XSS、SQL注入）及敏感信息泄露的覆盖任务。当白盒Agent发现疑似逻辑漏洞时，通过黑盒上的Fuzz可在流量侧生成针对性的变异Payload进行动态优化，通过分析HTTP响应状态来实证漏洞的可利用性。 我认为将静态视角的逻辑推演与动态视角的攻击验证相结合的机制，能极大地提升了漏洞检测的置信度，实现了真正意义上的全链路攻防评估，刚开始时候画的大致架构草图，仅贴示了主要功能，一些细节实现并未展示：0x03 智能化Agent设计细节1. Static Orchestration Agent：基于MCP协议的异构工具编排在传统的LLM应用中，模型往往被禁锢在文本交互的孤岛中，难以触及本地庞大的代码仓库，且面临着Context Window对海量代码理解的限制。本框架设计的漏洞定位Agent，本质上是一个 静态分析增强型智能体(Static Orchestration Agen) ，通过引入MCP与构建Prompt定义角色任务将LLM从被动的文本生成者转变为主动的工具使用者，通过静态分析获取代码结构中的丰富语义上下文MCP驱动的“深层感知”不同于简单的API调用，MCP协议使得Agent能够理解工具的输入输出Schema，实现复杂的推理链条： 工具与模型的语义对齐：通过定义标准化的MCP接口，将底层的静态代码分析工具封装为L…

补齐SDLC最后一块拼图：LLM 在应用安全中的实践探索
type: item
date: 2026-01-24T19:38:17+08:00
description: 导语随着 DevSecOps 的不断推进，应用安全已被广泛纳入SDLC的各个阶段。然而，在代码扫描、依赖分析、漏洞检测等能力逐步成熟的同时，一个长期存在却难以解决的问题始终横亘在安全工程实践中：安全工具“能发现问题”，却难以判断问题是否真实、是否可利用、是否值得优先处理。大量规则驱动的扫描结果不仅带来了高误报率，也持续消耗着研发与安全团队的精力。近年来随着大语言模型（LLM）的快速发展，为这一困境提供了新的可能。不同于传统规则或静态特征匹配，LLM 在语义理解、上下文推理和条件组合分析方面展现出独特优势，使其具备参与安全“判断层”的潜力。将 LLM 引入 SDLC，不再只是生成代码或辅助文档，而是尝试参与到安全结果的理解、验证与决策之中。本文结合实际应用安全建设经验，围绕 LLM 在 SDLC 中的落地实践展开，重点探讨其在硬编码、SCA、漏洞挖掘等场景中的应用方式与工程化思路。SDLC 应用安全流程SDLC名词解释 SAST（静态应用安全测试）通过对源代码或编译产物进行静态分析，在不运行系统的情况下发现潜在的安全缺陷，如 SQL 注入、XSS、不安全函数调用和硬编码敏感信息等，适合在开发阶段提前发现问题。 SCA（软件成分分析）聚焦于项目中使用的第三方开源组件，识别依赖库及其传递依赖中已知的安全漏洞、风险版本和许可证问题，帮助团队降低因外部组件引入的安全风险。 DAST（动态应用安全测试）在系统运行状态下，从攻击者视角对应用进行测试，通过捕获流量包修改参数重放，模拟真实攻击行为验证系统是否存在可被实际利用的漏洞，如注入攻击、未授权访问等 硬编码（Hard Coding），是指在程序中直接把固定的值写死在源码里，而不是通过配置文件、环境变量等方式获取，比如下面这些情况，都属于硬编码：用户名、密码、token或加密密钥等 为什么我们需要SDLC？产品一句话需求 → 开发自己理解 → 按照个人习惯去开发 → 功能上线后出现大量漏洞 → 被外部利用造成损失而SDLC要做的就是把漏洞扼杀于摇篮之中，而不是靠后期凭经验渗透测试发现。但目前传统的SDLC存在大量告警/误报，推送大量工单给研发会导致业务间摩擦度增加，因此理想情况是把真正需要修复的工单交给研发处理硬编码规则下引入AI判断，减少误报问题背景：目前硬编码扫描是根据规则的正则匹配，存在一定的局限性和误报整体流程结合硬编码规则 + AI 判断保留高召回，同时降低误报率硬编码规则先行使用固定规则（正则、逻辑判断）先筛掉明显非风险项，让 AI 只处理模糊/不确定案例AI 判断做辅助只对硬编码规则未覆盖、可疑的候选项输出风险判断，输出结果可附置信度或分类标签置信度 + 白名单控制AI 输出带置信度，低于阈值直接忽略，对常见合法值、默认值设置白名单提示词 promot通过定位文件的位置，结合上下文判断实际风险等级，把AI分析结果输出你是一个资深应用安全专家，精通代码安全、凭证泄露、真实攻击利用分析。 现在给你一个【疑似硬编码凭证】的扫描结果，请你进行【可利用性研判】。 输入信息如下（JSON）： %s 请严格按以下维度进行分析： 1. 该硬编码是否为真实敏感凭证 2. 是否存在被外部攻击者利用的可能 3. 是否依赖运行环境 4. 泄露后的安全影响 5. 修复建议 请以 JSON 格式输出分析结果 模型输入字段释义 字段 释义 match 匹配到的硬编码内容（部分脱敏显示） rule key类型 path 硬编码所在的完整文件路径 branch 分支 code 上下5行代码 增加输出长度，避免截断"extra_body": map[string]interface{}{ "think_mode": true, "max_output_tokens": 1024, 实现效果如果是走正常的流程，secret_value会被 generic-api-key规则名字标记严重程度为medium开启AI分析选项后，通过定位文件的位置，结合上下文交给ai分析，AI判断实际危害程度为低在代码中发现硬编码的敏感信息'DEMO_SECRET'，其值为'secret_value'。根据规则'generic-api-key'，这可能是一个API密钥或其他类型的敏感凭证。该变量位于'E:\SDLC平台\backend\uploads\demo.py_scan\demo.txt'文件中，并且注释表明它看起来像一个Key，但无实际用途。由于这是一个测试环境中的示例代码，风险相对较低。 掩码输出硬编码片段代码中存在：const apiKey = "sk_live_9f83a0b7..."AI分析后会直接原样输出，给出完整的佐证片段，这样是不符合数据安全合规要求的，就会产生 二次扩散风险。正确掩码后的做法，AI 只需知道这是一…

SonarQube Server 2025.6.1.117629 - 代码质量、安全与静态分析工具
type: item
date: 2026-01-21T12:05:28+08:00
description: SonarQube Server 2025.6.1.117629 - 代码质量、安全与静态分析工具SonarQube Server 2025 Release 6 (macOS, Linux, Windows) - 代码质量、安全与静态分析工具Self-managed static analysis tool for continuous codebase inspection请访问原文链接：https://sysin.org/blog/sonarqube/ 查看最新版。原创作品，转载请保留出处。作者主页：sysin.orgSonarQube Server代码质量和安全性由您掌控之前称为 SonarQube，本地部署的用于持续代码库检查的静态分析工具保持 AI 生成的代码干净释放 AI 编码助手的强大功能，而无需承担不良、不安全代码的风险。SonarQube Server 是您的干净代码解决方案，可以部署在任何地方、本地或云环境中。受到 700 万开发者和 400,000 多个组织的使用和喜爱提高代码质量的代码质量工具您的代码是一项商业资产。通过 SonarQube Server 达到干净代码状态，实现代码的最高价值。SonarQube Server 功能：代码智能利用 SonarQube 的深度洞察，更全面地了解您的代码库。通过减少认知负荷来提高开发人员的生产力。与顶级 DevOps 平台集成轻松加入项目。与 GitHub Actions、GitLab CI/CD、Azure Pipelines、Bitbucket Pipelines 和 Jenkins 集成，以自动触发分析并显示您工作地点的代码运行状况。代码审查通过 SonarQube 的质量阈值，防止不符合策略的代码进入生产环境。消除人工编写和 AI 生成代码中的问题，从而降低后期修复成本。高性能和可操作性按照您的方式进行部署，无论是在本地、在云中、作为服务器、使用 Docker 或 Kubernetes。多线程、多个计算引擎和特定于语言的加载可提供最佳性能。顶级分析速度和准确性在几分钟而不是几小时内收到可操作的清洁代码指标 (sysin)。Clean as You Code 会在您工作时检查较小的代码片段，为您提供有关新代码质量的准确反馈。重要语言的关键安全规则在您的开发工作流程中，在正确的时间和正确的位置无缝地发现编码问题。受益于 6,000 多个规则以及行业领先的 Java、C#、PHP、Python 等污点分析。共享、统一的配置设置特定的编码标准，使您的团队在代码健康方面保持一致并实现您的代码质量目标。另外，“边编程边学习” 可将开发人员的技能提升到同样高的水平。用于 IDE 的 SonarQube添加 SonarQube for IDE 扩展并将其连接到 SonarQube 服务器，以便在编码时动态查找编码问题，并确保您的团队遵循单一受监管的编码标准。测量代码覆盖率查看测试执行的代码库的百分比，以获得有关代码运行状况的宝贵见解。引导您到覆盖率低的领域进行改进。Sonar 的人工智能AI 辅助编码，由 SONAR 改进新的 AI 代码保证Sonar AI 代码保证是一个强大且简化的流程，用于通过结构化和全面的分析来验证 AI 生成的代码。这确保了每一段新代码在投入生产之前都符合最高的质量和安全标准。AI CodeFix 简介Sonar AI CodeFix 是一项强大的功能 (sysin)，可为代码分析解决方案 SonarQube Server 和 SonarQube Cloud 发现的问题提供代码修复建议。只需单击一下，您就可以获得有关如何解决一系列问题的建议，从而简化问题解决流程。笔者提示：此类功能通常需要有效服务合同。安全漏洞检测增强的开发人员安全工具 | 安全与机密信息检测静态代码分析Sonar 的静态应用程序安全测试 (SAST) 引擎可检测代码中的安全漏洞，以便在构建和测试应用程序之前消除这些漏洞。使用 SAST 为复杂项目实现强大的应用程序安全性和合规性。机密信息检测SonarQube Server 包含一个强大的机密信息检测工具，这是用于检测和删除代码中机密信息的最全面的解决方案之一。与 SonarQube for IDE 一起使用，它可以防止机密信息泄露并成为严重的安全漏洞。安全标准合规性SonarQube Server 可帮助您遵守通用代码安全标准，例如 NIST SSDF。将 SonarQube Server 与 SonarQube for IDE 结合使用，可以自动检查项目代码是否存在安全漏洞，并提高整体代码质量。基于开源，满足所有需求的版本SonarQube Server 版本：Community Build免费开源，可提高开发效率和代码…

补齐SDLC最后一块拼图：LLM 在应用安全中的实践探索
type: item
date: 2026-01-21T09:02:26+08:00
description: 导语随着 DevSecOps 的不断推进，应用安全已被广泛纳入SDLC的各个阶段。然而，在代码扫描、依赖分析、漏洞检测等能力逐步成熟的同时，一个长期存在却难以解决的问题始终横亘在安全工程实践中：安全工具“能发现问题”，却难以判断问题是否真实、是否可利用、是否值得优先处理。大量规则驱动的扫描结果不仅带来了高误报率，也持续消耗着研发与安全团队的精力。近年来随着大语言模型（LLM）的快速发展，为这一困境提供了新的可能。不同于传统规则或静态特征匹配，LLM 在语义理解、上下文推理和条件组合分析方面展现出独特优势，使其具备参与安全“判断层”的潜力。将 LLM 引入 SDLC，不再只是生成代码或辅助文档，而是尝试参与到安全结果的理解、验证与决策之中。本文结合实际应用安全建设经验，围绕 LLM 在 SDLC 中的落地实践展开，重点探讨其在硬编码、SCA、漏洞挖掘等场景中的应用方式与工程化思路。SDLC 应用安全流程SDLC名词解释 SAST（静态应用安全测试）通过对源代码或编译产物进行静态分析，在不运行系统的情况下发现潜在的安全缺陷，如 SQL 注入、XSS、不安全函数调用和硬编码敏感信息等，适合在开发阶段提前发现问题。 SCA（软件成分分析）聚焦于项目中使用的第三方开源组件，识别依赖库及其传递依赖中已知的安全漏洞、风险版本和许可证问题，帮助团队降低因外部组件引入的安全风险。 DAST（动态应用安全测试）在系统运行状态下，从攻击者视角对应用进行测试，通过捕获流量包修改参数重放，模拟真实攻击行为验证系统是否存在可被实际利用的漏洞，如注入攻击、未授权访问等 硬编码（Hard Coding），是指在程序中直接把固定的值写死在源码里，而不是通过配置文件、环境变量等方式获取，比如下面这些情况，都属于硬编码：用户名、密码、token或加密密钥等 为什么我们需要SDLC？产品一句话需求 → 开发自己理解 → 按照个人习惯去开发 → 功能上线后出现大量漏洞 → 被外部利用造成损失而SDLC要做的就是把漏洞扼杀于摇篮之中，而不是靠后期凭经验渗透测试发现。但目前传统的SDLC存在大量告警/误报，推送大量工单给研发会导致业务间摩擦度增加，因此理想情况是把真正需要修复的工单交给研发处理硬编码规则下引入AI判断，减少误报问题背景：目前硬编码扫描是根据规则的正则匹配，存在一定的局限性和误报整体流程结合硬编码规则 + AI 判断保留高召回，同时降低误报率硬编码规则先行使用固定规则（正则、逻辑判断）先筛掉明显非风险项，让 AI 只处理模糊/不确定案例AI 判断做辅助只对硬编码规则未覆盖、可疑的候选项输出风险判断，输出结果可附置信度或分类标签置信度 + 白名单控制AI 输出带置信度，低于阈值直接忽略，对常见合法值、默认值设置白名单提示词 promot通过定位文件的位置，结合上下文判断实际风险等级，把AI分析结果输出你是一个资深应用安全专家，精通代码安全、凭证泄露、真实攻击利用分析。 现在给你一个【疑似硬编码凭证】的扫描结果，请你进行【可利用性研判】。 输入信息如下（JSON）： %s 请严格按以下维度进行分析： 1. 该硬编码是否为真实敏感凭证 2. 是否存在被外部攻击者利用的可能 3. 是否依赖运行环境 4. 泄露后的安全影响 5. 修复建议 请以 JSON 格式输出分析结果 模型输入字段释义 字段 释义 match 匹配到的硬编码内容（部分脱敏显示） rule key类型 path 硬编码所在的完整文件路径 branch 分支 code 上下5行代码 增加输出长度，避免截断"extra_body": map[string]interface{}{ "think_mode": true, "max_output_tokens": 1024, 实现效果如果是走正常的流程，secret_value会被 generic-api-key规则名字标记严重程度为medium开启AI分析选项后，通过定位文件的位置，结合上下文交给ai分析，AI判断实际危害程度为低在代码中发现硬编码的敏感信息'DEMO_SECRET'，其值为'secret_value'。根据规则'generic-api-key'，这可能是一个API密钥或其他类型的敏感凭证。该变量位于'E:\SDLC平台\backend\uploads\demo.py_scan\demo.txt'文件中，并且注释表明它看起来像一个Key，但无实际用途。由于这是一个测试环境中的示例代码，风险相对较低。 掩码输出硬编码片段代码中存在：const apiKey = "sk_live_9f83a0b7..."AI分析后会直接原样输出，给出完整的佐证片段，这样是不符合数据安全合规要求的，就会产生 二次扩散风险。正确掩码后的做法，AI 只需知道这是一…