Connects Claude to the JavaSinkTracer static analysis engine for Java security auditing. Exposes tools to build call graphs, scan for vulnerabilities like SQL injection and RCE, analyze vulnerability chains, and extract method source code. Uses function-level taint analysis instead of variable-level tracking to handle complex scenarios like threading and reflection. You'd reach for this when doing security code reviews of Java projects, especially Spring Boot applications, where you need AI-assisted vulnerability discovery that can trace from dangerous sinks back to external entry points across method boundaries.
基于函数级污点分析的 Java 源代码漏洞审计工具JavaSinkTracer,通过 Model Context Protocol (MCP) 为 AI 助手提供安全分析能力。
pip install -r requirements.txt
编辑配置文件并添加 MCP 服务器配置:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%/Claude/claude_desktop_config.json
{
"mcpServers": {
"javasinktracer": {
"command": "python",
"args": [
"/path/to/JavaSinkTracer/mcp_server.py"
],
"description": "Java源代码漏洞审计工具 - 基于函数级污点分析"
}
}
}
注意:将 /path/to/JavaSinkTracer 替换为实际的项目路径。
配置完成后重启 Claude Desktop,MCP 工具将自动加载。
https://www.bilibili.com/video/BV1XrxDz1EvF
从危险函数(Sink)反向追踪到外部入口(Source),自动发现潜在的安全漏洞链路。
构建完整的 Java 项目函数调用关系图,支持跨文件、跨类的调用追踪。
基于函数级污点分析,有效规避变量级追踪在复杂场景(线程、反射、回调)下的断链问题。
自动提取漏洞链路上每个函数的完整源代码,便于人工或 AI 深入分析。
| 工具名称 | 功能说明 |
|---|---|
build_callgraph | 构建项目调用关系图 |
find_vulnerabilities | 扫描安全漏洞 |
analyze_vulnerability_chain | 分析漏洞调用链源代码 |
extract_method_code | 提取指定方法源代码 |
list_sink_rules | 查看漏洞规则配置 |
get_project_statistics | 获取项目统计信息 |
请帮我扫描 /path/to/java-project 项目的安全漏洞
AI 会自动:
检查项目中是否存在 SQL 注入和命令执行漏洞
AI 会扫描特定类型的漏洞(SQLI、RCE)。
这个漏洞链路是真实漏洞吗?请分析调用链的源代码
AI 会提取完整的调用链代码并进行分析。
不同于传统 SAST 工具的"变量级"污点分析,本工具采用"函数级"污点分析:
规则配置文件位于 Rules/rules.json,包含:
Runtime.exec)HttpServletRequest.getParameter)StringEscapeUtils.escapeHtml)可以根据实际需求编辑 rules.json 添加新的 Sink、Source 或 Sanitizer 规则:
{
"sink_rules": [
{
"sink_name": "CUSTOM_VULN",
"sink_desc": "自定义漏洞类型",
"severity_level": "High",
"cwe": "CWE-XXX",
"sinks": [
"com.example.DangerousClass:dangerousMethod"
]
}
]
}
project_path:rules_pathfind_vulnerabilities 工具默认使用轻量级模式:
analyze_vulnerability_chain 获取详细代码build_callgraph 预热缓存analyze_vulnerability_chain 查看源代码编辑 mcp_server.py:
@app.list_tools()
async def list_tools() -> list[Tool]:
return [
Tool(
name="your_tool",
description="工具描述",
inputSchema={...}
)
]
@app.call_tool()
async def call_tool(name: str, arguments: Any):
if name == "your_tool":
# 实现你的工具逻辑
pass
MCP_GUIDE.mdREADME.mdUPGRADE_SUMMARY.mdJavaSinkTracer开发者 Tr0e
本项目仅供学习与研究使用,请勿用于商业或非法用途。因使用本项目产生的任何后果由使用者自行承担。