Web 安全学习笔记 · 审计工具全景指南:从 SAST 静态扫描到 SCA 供应链分析的实战工具箱 文档网络安全教程【免费下载链接】Learn-Web-HackingStudy Notes For Web Hacking / Web安全学习笔记项目地址https://gitcode.com/gh_mirrors/le/Learn-Web-Hacking点击查看免费下载本篇指南以《Web 安全学习笔记》中「工具与资源 → 审计工具」章节source/tools/audit.rst为核心骨架系统梳理面向通用、PHP、Python、Java、JavaScript、供应链与小程序的代码审计工具矩阵。读者读完本文将掌握每种工具的定位与适用语言/场景、它们分别对应哪一种自动化审计原理危险函数匹配、控制流分析、基于图的分析、灰盒运行时检测等以及如何与仓库中记录的手工审计流程结合搭建一条从静态扫描到人工复核的完整代码审计链路。审计工具在笔记中的定位在《Web 安全学习笔记》的整体体系中工具章节source/tools/index.rst按「推荐资源、论文、信息收集、社会工程学、模糊测试、漏洞利用、近源渗透、Web 持久化、横向移动、云安全、操作系统持久化、审计工具、防御、安全开发、运维、取证、其他」编排审计工具与漏洞利用、防御等章节并列服务于渗透测试与安全建设的「白盒」一侧。README.md 的大纲中也将「审计工具」单独列为一项。值得强调的是这份工具清单并非孤立堆砌它与笔记中另一篇方法论文档 source/misc/audit.rst代码审计强互补后者讲清「审计是什么、自动化的原理是什么、手工审计的流程是什么」前者则给出「用哪些工具落地这些原理」。把两者对照阅读才能真正用好每个工具。先建立坐标系代码审计的核心概念与自动化原理在逐个介绍工具之前有必要先回顾 source/misc/audit.rst 中定义的三元组概念所有审计工具本质上都在围绕这三者工作概念别名含义典型例子PHP输入Source用户可控或间接可控的数据入口$_GET/$_POST/$_REQUEST/$_COOKIE/$_FILES/$_SERVER处理函数Clean / Filter / Sanitizer对数据做过滤或编解码为漏洞利用带来不确定性mysqli_real_escape_string/htmlspecialchars/base64_encode/str_rot13危险函数Sink Call / 漏洞点可能触发文件操作、命令执行、数据库操作等危险行为的函数include/system/echo一个漏洞的触发过程就是从输入Source经处理函数到达危险函数Sink的过程Source To Sink审计就是寻找这条链路。据此笔记归纳出五类自动化审计方案本清单中的工具大多可归入其中危险函数匹配直接搜寻危险函数与危险参数定位漏洞实现简单但误报率较高且通常孤立分析单个文件忽略跨文件调用关系控制流分析引入 AST 与数据流/控制流分析结合过程内与过程间分析降低误报代表作RIPS但计算开销增加基于图的分析利用 CFG控制流图特性与图计算算法简化计算代表作Semmle QL代码相似性比对对已有漏洞图谱进行相似性匹配适合发现复制框架代码产生的同源漏洞灰盒分析对运行时代码进行 Hook执行到危险函数时自动回溯输入代表作prvd开销小但对触发路径有依赖。通用审计工具「通用」类工具不局限于单一语言覆盖源代码静态分析、代码可视化探索、容器漏洞扫描等不同粒度。CobraCobra 是国内安全团队 FeeiCN 开源的源代码安全审计工具主要面向 PHP 应用通过对源码进行解析与规则匹配来定位潜在的漏洞点。它适合在拿到目标源码后第一时间跑一遍作为人工审计的起点而非终点——因为基于规则匹配的工具往往会产生较多误报需要结合 source/misc/audit.rst 中「危险函数匹配」一节对输出结果做二次研判。Semmle QLSemmle QL 是典型的「基于图的分析」思路的实现它把整个代码库建模为可查询的关系数据库安全研究者可以用声明式的 QL 查询语言编写污点分析Taint Analysis查询从 Source 追踪到 Sink。笔记在 source/misc/audit.rst 中专门把 Semmle QL 与 Microsoft 的Semmle QL归为「基于图的分析」的代表性工具指出这类方案利用 CFG 特性和图计算算法一定程度上简化了计算、降低了误报。它的优势在于查询逻辑透明、可定制适合对复杂框架代码做深度审计。SourcetrailSourcetrail 是文档中明确标注为 free and open-source cross-platform source explorer免费开源的跨平台源码浏览器的工具。它不属于自动「找漏洞」的扫描器而是通过构建可视化的代码依赖图帮助审计者快速理解大型项目的调用关系、类继承关系和数据流走向。在手工审计流程source/misc/audit.rst 的「手工审计流程」一节中它尤其适合「了解程序运行流程」这一步——例如梳理文件加载方式、类库依赖关系时可视化的代码图谱能显著降低理解成本。trivytrivy 是文档标注为 A Simple and Comprehensive Vulnerability Scanner for Containers, Suitable for CI 的容器漏洞扫描器定位清晰简单、全面、面向 CI。与源码审计工具不同它审计的对象是容器镜像与其中的依赖通过比对已知漏洞库如操作系统软件包、语言依赖的 CVE 数据来发现风险。常见的使用方式包括扫描镜像trivy image 镜像名扫描文件系统trivy fs 目录扫描代码仓库trivy repo 仓库路径扫描基础设施配置文件trivy config 目录由于它支持无状态命令行调用很容易接入 CI 流水线在镜像构建阶段即中断含高危漏洞的交付。这与笔记 source/misc/supplychain.rst 中强调的供应链安全理念一脉相承在依赖进入生产环境之前完成风险识别。FortifyFortify 是商业化的企业级静态代码分析SAST平台支持多种语言与平台提供从源码扫描、缺陷管理到合规报表的完整能力。它适合企业安全团队在 SDL安全开发生命周期流程中作为集中式扫描设施使用与笔记 source/tools/sdl.rst 中「安全开发」章节的漏洞管理诉求相对应。JoernJoern 是文档标注为 Open-source code analysis platform for C/C/Java/Binary/Javascript based on code property graphs 的开源代码分析平台其核心是代码属性图Code Property GraphCPG——把抽象语法树、控制流图与程序依赖图统一建模成一张图。与「基于图的分析」的方法论一脉相承Joern 提供图查询能力可对 C/C、Java、二进制与 JavaScript 代码做跨语言的漏洞模式挖掘尤其适合需要处理非托管语言或二进制程序的场景。PHP 审计工具PHP 是 Web 安全审计的重点语言笔记为其单独列出四款工具覆盖从静态分析到灰盒运行时检测的完整谱系。RIPSRIPS 是 PHP 静态代码分析领域的经典工具由 Dahse J 等人设计。笔记在 source/misc/audit.rst 中对其原理有明确记录RIPS 进行数据流与控制流分析结合过程内与过程间的分析得到审计结果相对纯危险函数匹配的方式误报率显著降低代价是计算开销增加。它对应「控制流分析」这一自动化方案是理解静态分析演进的重要标本——从「匹配危险函数」到「追踪数据流」是审计工具能力的分水岭。prvdprvd 是 fate0 开发的 PHP 运行时漏洞检测工具对应笔记中的灰盒分析思路对代码进行 Hook当执行到危险函数时自动回溯输入、判断输入是否可控且未被有效过滤。笔记明确指出这种方式解决了控制流分析实现复杂、计算路径开销大的问题在判断过滤函数上也有突破但灰盒方式并不一定会触发所有漏洞——它依赖运行时实际执行路径。因此 prvd 适合作为静态分析之后的补充手段与 RIPS 等工具形成互补。phpvulhunterphpvulhunter 是 OneSourceCat 开源的 PHP 漏洞检测工具通过对 PHP 源码进行解析与规则匹配定位常见的高风险函数调用与危险代码模式。它属于规则/危险函数匹配类工具的范畴运行速度快、易于上手适合快速粗筛再结合人工审计排除误报。chipchip 是 phith0n 开发的一款用于检测 PHP 代码潜在安全威胁的轻量工具文档原描述a simple tool to detect potential security threat in php code。它的定位是「简单」适合作为日常快速检查的辅助工具在开发阶段或拿到代码后第一时间做安全自检。作者在 PHP 安全研究领域有长期积累工具针对 PHP 特性做了针对性设计。Python 审计工具pyvulhunterpyvulhunter 是 shengqi158 开源的 Python 代码审计工具针对 Python 应用中的危险函数调用与不安全写法进行静态分析。在 Python Web 框架如 Flask、Django盛行的背景下它常用于审计 Python 侧的命令执行、反序列化、文件操作等风险点定位与 PHP 侧的 phpvulhunter 类似。pytpytPython Taint Analysis是 python-security 社区的静态分析工具核心方法是污点分析标记用户可控的数据源Source追踪其流经的路径判断是否到达危险操作Sink。这与笔记中「Source To Sink」的漏洞模型直接对应适合对 Python 代码库做系统性的注入类漏洞排查。Java 审计工具Find Security Bugsfind-sec-bugsfind-sec-bugs 是 Java 生态中广泛使用的安全静态分析插件以 FindBugs / SpotBugs 为基础扩展而来针对 Java含 Spring、Struts 等框架识别 SQL 注入、命令执行、反序列化、路径穿越、SSRF 等典型安全问题。它能直接集成到 Maven / Gradle / Jenkins 等构建与 CI 链路中是 Java 项目 SAST 落地的常见选择与 source/tools/sdl.rst 中「安全开发」的工程化诉求一致。Gadget InspectorGadget Inspector 是文档标注为 A byte code analyzer for finding deserialization gadget chains in Java applications 的字节码分析器专门用于在 Java 应用中寻找反序列化 gadget chain。它的核心思路是分析 Java 字节码中方法的调用关系、字段访问与可达性自动拼接出从入口如readObject到危险操作如Runtime.exec的利用链。值得注意的仓库内部关联是Gadget Inspector 同时出现在笔记的 source/tools/exploit.rst「反序列化」一节中与 ysoserial、marshalsec、SerializationDumper 并列说明它既可以作为审计工具帮助乙方发现反序列化风险也可以作为研究工具辅助构造利用链是连接「审计」与「利用」两端的典型工具。JavaScript 审计工具NodeJsScanNodeJsScan 是 ajinabraham 开源的 Node.js 安全静态扫描器面向 JavaScript / Node.js 应用检测已知的漏洞模式与不安全编码实践。随着前后端 JavaScript 代码量激增NodeJsScan 这类工具用于审计 Node 服务的命令执行、原型链污染、路径遍历等风险点对应笔记 source/misc/audit.rst 中的自动化审计思路在 JS 生态的落地。供应链安全审计SCA 组件分析Dependency-TrackDependency-Track 是文档中唯一单独成节的供应链审计平台原文定位为an intelligent Supply Chain Component Analysis platform that allows organizations to identify and reduce risk from the use of third-party and open source components智能供应链组件分析平台帮助组织识别并降低使用第三方与开源组件带来的风险。它属于 SCASoftware Composition Analysis类工具通过接收 BOM / SBOM软件物料清单或与构建系统集成持续追踪应用使用的第三方组件清单将组件与公开漏洞数据库比对给出受影响组件、版本与风险等级以平台化方式管理漏洞生命周期适合企业集中式使用。这套能力与笔记 source/misc/supplychain.rst 对供应链安全的定义高度呼应供应链安全覆盖软件开发、测试、部署、维护、更新的整个生命周期而供应链漏洞正是其中「第三方组件存在可利用漏洞」的风险类型。该文档同时提醒了几类典型供应链攻击方式——创建相似名称软件包Combosquatting / Typosquatting / 修改词序 / 修改分割符、注入依赖命名为内部包、影响构建利用 CI/CD 漏洞、提交后门代码劫持开发者账号、利用 Homoglyph / Unicode Bidirectional 等渲染问题隐藏提交逻辑。结合 Dependency-Track 这类 SCA 平台可以在组件引入阶段就建立持续监控是对抗供应链风险的工程化手段。小程序审计工具unveilrunveilr 是 r3x5ur 开源的小程序相关工具。小程序如微信小程序的前端代码通常被打包加密分发unveilr 用于对小程序包进行还原/反编译使审计者可以阅读其前端 JS 逻辑进而检查敏感信息硬编码、危险接口调用、越权逻辑等安全问题。它填补了「通用源码审计工具不覆盖小程序格式」的空白是移动端小程序安全审计的实用补充。如何组合使用一个可落地的审计流水线单个工具难以覆盖全部风险结合笔记的方法论与工具清单可以搭建如下分层审计流水线审计阶段对应原理推荐工具快速粗筛危险函数匹配 / 规则扫描Cobra、phpvulhunter、chip、NodeJsScan、pyvulhunter深度静态分析控制流分析 / 污点分析RIPS、pyt、find-sec-bugs、Semmle QL、Joern反序列化专项字节码分析 / gadget 挖掘Gadget Inspector结合 exploit.rst 中的 ysoserial 等运行时验证灰盒分析prvd依赖与供应链SCA 组件分析trivy、Dependency-Track代码理解辅助可视化探索Sourcetrail人工复核手工审计流程参照 source/misc/audit.rst「手工审计流程」特别提醒两点自动化输出必须人工复核。笔记明确指出危险函数匹配类方案误报率高因为它们没有对程序流程做深入分析、孤立看待文件而忽略跨文件调用即使在框架化代码中能找到的漏洞也相对有限。因此工具扫描结果应结合笔记中的手工审计流程获取代码确定版本、了解程序运行流程、账户体系、按漏洞类型查找 Sink、确认过滤机制是否可绕过进行验证。静态与动态结合。prvd 这类灰盒工具弥补了纯静态分析在过滤函数判断上的短板但依赖实际执行路径、不保证触发所有漏洞trivy / Dependency-Track 则从「依赖」维度补上源码审计覆盖不到的范围。三者结合才能接近完整的风险视图。延伸阅读source/misc/audit.rst代码审计方法论全文Source/Sink 概念、五类自动化审计方案、手工审计流程、参考文献source/misc/supplychain.rst供应链安全定义、五类供应链问题与常见攻击方式source/tools/exploit.rst漏洞利用/检测工具清单Gadget Inspector 在反序列化章节的交叉引用source/tools/index.rst工具与资源章节的内容索引source/tools/sdl.rst安全开发与漏洞管理相关的平台化工具。赞分享文档网络安全教程【免费下载链接】Learn-Web-HackingStudy Notes For Web Hacking / Web安全学习笔记项目地址https://gitcode.com/gh_mirrors/le/Learn-Web-Hacking点击查看免费下载相关推荐基于 GitHub Copilot 的 SAST/SCA 安全分析 Agent源码静态扫描与软件成分审计实战指南基于 GitHub Copilot 的 SAST/SCA 安全分析 Agent源码静态扫描与软件成分审计实战指南 导读 本文围绕 sast sca secur文档知识库AI 技能/插件zizmorGitHub Actions 与 CI/CD 供应链静态安全审计工具实战指南zizmorGitHub Actions 与 CI/CD 供应链静态安全审计工具实战指南 导读 zizmor 是一款面向 CI/CD 系统的 静态安全分析工具SAST供应链安全CI/CD改了 pageSize 重启却原样不动Beekeeper Studio 配置文件的 4 个位置一次说清改了 pageSize 重启却原样不动Beekeeper Studio 配置文件的 4 个位置一次说清 Beekeeper Studio 是一个管理 MySQ桌面应用数据库客户端开发工具上一篇告别切换烦恼Termshark多文件比较完全指南下一篇Buefy与CSS变量构建主题系统的现代方法创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考