Lanalyzer

Lanalyzer

🚀 Lanalyzer

Lanalyzer是一款先进的Python静态污点分析工具,旨在检测Python项目中潜在的安全漏洞。它能够识别从不可信数据源(Sources)到敏感操作(Sinks)的数据流,并详细揭示潜在风险。

🚀 快速开始

前提条件

  • Python 3.10 或更高版本
  • uv(建议用于依赖管理)

安装步骤

  1. 克隆仓库:

    git clone https://github.com/bayuncao/lanalyzer.git
    cd lanalyzer
    
  2. 创建虚拟环境并安装依赖:

    uv venv
    uv pip sync pyproject.toml --all-extras
    
  3. 激活虚拟环境:

    source .venv/bin/activate
    

✨ 主要特性

  • 污点分析:跟踪从数据源到敏感操作的数据流。
  • 可定制规则:自定义数据源、敏感操作、数据净化函数和污点传播路径。
  • 静态分析:无需执行代码。
  • 可扩展性:轻松添加新规则以检测如SQL注入、XSS等漏洞。
  • 详细报告:生成包含漏洞详情和缓解建议的全面分析报告。
  • 命令行界面:可直接在终端运行分析。

💻 使用示例

基础用法

对Python文件进行污点分析:

lanalyzer --target  --config  --pretty --output  --log-file  --debug

命令行选项

  • --target:要分析的Python文件或目录的路径。
  • --config:配置文件的路径。
  • --output:保存分析报告的路径。
  • --log-file:保存日志文件的路径。
  • --pretty:美化输出格式。
  • --detailed:显示详细的分析统计信息。
  • --debug:启用调试模式并输出详细日志。

示例

lanalyzer --target example.py --config rules/sql_injection.json --pretty --output example_analysis.json --log-file example_analysis.log --debug

🧩 模型上下文协议 (MCP) 支持

Lanalyzer现在支持模型上下文协议 (MCP),可作为MCP服务器运行,让AI模型和工具通过标准接口访问污点分析功能。

安装MCP依赖

如果你使用pip:

pip install "lanalyzer[mcp]"

如果你使用uv:

uv pip install -e ".[mcp]"

启动MCP服务器

有多种方式启动MCP服务器:

使用Python模块

# 查看帮助信息
python -m lanalyzer.mcp --help

# 启动服务器
python -m lanalyzer.mcp run --host 0.0.0.0 --port 8000 --debug

使用lanalyzer命令行工具

# 查看帮助信息
lanalyzer mcp --help

# 启动服务器
lanalyzer mcp run --host 0.0.0.0 --port 8000 --debug

# 使用FastMCP开发模式(适用时,请验证此命令)
# lanalyzer mcp dev

MCP服务器特性

MCP服务器提供以下核心功能:

  1. 代码分析:分析Python代码字符串中的安全漏洞。
  2. 文件分析:分析特定文件中的安全漏洞。
  3. 路径分析:分析整个目录或项目中的安全漏洞。
  4. 漏洞解释:详细解释发现的漏洞。
  5. 配置管理:获取、验证和创建分析配置。

与AI工具集成

MCP服务器可与支持MCP协议的AI工具集成:

# 使用FastMCP客户端
from fastmcp import FastMCPClient

# 创建连接到服务器的客户端
client = FastMCPClient("http://127.0.0.1:8000")

# 分析代码
result = client.call({
"type": "analyze_code",
"code": "user_input = input()\nquery = f\"SELECT * FROM users WHERE name = '{user_input}'\"",
"file_path": "example.py",
"config_path": "/path/to/config.json"
})

# 打印分析结果
print(result)

在Cursor中使用

如果你在Cursor编辑器中工作,可以直接要求AI使用Lanalyzer分析代码:

请使用lanalyzer分析当前文件的安全漏洞并解释潜在风险。

MCP命令行选项

MCP服务器支持以下命令行选项:

  • --debug:启用调试模式并输出详细日志。
  • --host:设置服务器监听地址(默认:127.0.0.1)。
  • --port:设置服务器监听端口(默认:8000)。

高级MCP用法

自定义配置

你可以使用get_config、validate_config和create_config工具管理漏洞检测配置:

# 获取默认配置
config = client.call({
"type": "get_config"
})

# 创建新配置
result = client.call({
"type": "create_config",
"config_data": {...},  # 配置数据
"config_path": "/path/to/save/config.json"  # 可选
})

批量文件分析

分析整个项目或目录:

result = client.call({
"type": "analyze_path",
"target_path": "/path/to/project",
"config_path": "/path/to/config.json",
"output_path": "/path/to/output.json"  # 可选
})

🤝 贡献代码

我们欢迎贡献!请查看CONTRIBUTING.md文件,了解如何为Lanalyzer贡献代码。

📄 许可证

本项目采用GNU Affero通用公共许可证v3.0。详情请参阅LICENSE文件。

📞 联系我们

  • 0 关注
  • 0 收藏,19 浏览
  • system 提出于 2025-09-29 21:21

相似服务问题

相关AI产品