基于 DeepSeek 与 Ollama 的代码审计工具开发实录
背景与动机
在网络安全工程实践中,代码审计和 WebShell 检测是高频且耗时的任务。以往借助云端大模型 API(如 DeepSeek)进行辅助分析时,由于代码文件数量多、Token 消耗量大,导致成本较高且响应速度受限。
为了解决这一问题,我们开发了支持本地 Ollama 部署的工具方案。通过引入本地大模型推理能力,不仅大幅降低了 Token 使用量,还将代码审计的速度提升了数十倍。该工具集成了流量分析、JS 代码审计、进程分析、HTTP 转 Python、文本处理、正则表达式生成、WebShell 检测以及多种语言(PHP、JSP、ASP)的审计功能。
核心功能特性
本工具主要包含以下核心模块:
- 流量分析:辅助分析网络请求特征。
- 代码审计:支持 JS、PHP、JSP、ASP 等多种脚本语言的静态分析。
- WebShell 检测:利用 AI 算法识别潜在的后门代码,相比传统规则检测更为强大。
- 文本处理:包括翻译、正则生成等辅助功能。
- 批量处理:支持对目录下的多个文件进行自动化审计。
环境准备与安装
1. 本地模型部署
本方案推荐使用本地部署的大模型以平衡性能与隐私。建议使用 Qwen2.5 系列模型,大多数主流配置电脑均可运行。
# 拉取基础模型
ollama pull qwen2.5
2. 推荐模型选择
根据实际测试经验,不同模型在代码理解能力上表现各异:
- 入门/快速测试:
qwen2.5:7b- 优点:资源占用低,启动快。
- 缺点:复杂逻辑理解可能稍弱。
- 生产/高质量输出:
qwen2.5-coder:14b- 优点:代码理解能力强,输出结果更准确。
- 缺点:对显存要求稍高。
注意:AI 审计出来的结果仅作为人工参考,最终结论仍需安全工程师进行人工复核。
3. 项目依赖安装
将代码下载到本地后,进入项目目录并安装依赖:
cd DeepSeekSelfTool
pip install -r requirements.txt
配置文件说明
程序的核心配置位于 config.py 文件中。用户需根据实际使用的后端类型(DeepSeek API 或 Ollama 本地服务)修改相应参数。
# API 配置
API_TYPE = "ollama" # 可选值:"deepseek" 或 "ollama"
# DeepSeek API 配置(若使用云端 API 则启用)
DEEPSEEK_API_KEY = "your_api_key_here"
# Ollama API 配置(若使用本地服务则启用)
OLLAMA_API_URL = "http://localhost:11434/api/chat"
OLLAMA_MODEL = "qwen2.5-coder:14b" # 请确保已提前 pull 好该模型


