adnan-hussen/deepsec
GitHub: adnan-hussen/deepsec
DeepSec 借助 Semgrep 与大语言模型构建自动化安全流水线,弥补传统静态分析在逻辑缺陷与零日检测上的不足。
Stars: 0 | Forks: 0
# DeepSec
DeepSec 是一个自动化安全分析流水线,结合了静态应用程序安全测试(SAST)与大型语言模型(LLM),用于发现源代码中的漏洞、逻辑缺陷以及潜在的零日候选漏洞。
## 描述
传统 SAST 工具擅长发现已知模式,但通常在业务逻辑缺陷方面表现乏力,并且会产生大量误报。DeepSec 通过以下方式解决这一问题:
1. 使用 LLM 将源代码逻辑分解为可审查的片段(函数、方法、类)。
2. 使用 Semgrep 运行基于规则的快速静态分析,预标记可疑漏洞。
3. 调用另一个 LLM 独立评估所有片段,验证 Semgrep 的标记并发现静态工具常遗漏的新问题。
## 工作原理
DeepSec 执行一个四阶段流水线:
1. **分块**:目标目录中的源文件由 LLM(分块模型)解析并拆分为逻辑的、自包含的片段。包含一个用于弹性的回退机制。
2. **SAST 扫描**:Semgrep 扫描同一目录以查找已知漏洞。任何发现都会自动映射到相应的代码片段。
3. **LLM 分析**:分析 LLM 审查每个片段。它优先处理 Semgrep 标记的片段,以确认漏洞或将其驳回为误报。然后审查未标记的片段,以发现 Semgrep 遗漏的零日风险或逻辑缺陷。
4. **报告**:生成一个全面的 `report.json`,总结总漏洞数、误报减少率以及零日候选漏洞。
## 安装
DeepSec 需要 Python 3.8+ 以及以下依赖项:
1. 克隆或下载该仓库。
2. 建议使用虚拟环境:
```
python3 -m venv .venv
source .venv/bin/activate
```
3. 安装所需的 Python 包:
```
pip install google-genai python-dotenv semgrep
```
## 配置
DeepSec 依赖 Google Gemini API。可以通过为分块和分析使用不同的 API 密钥来管理速率限制。
1. 在项目根目录创建 `.env` 文件:
```
touch .env
```
2. 将你的 Gemini API 密钥添加到 `.env` 文件:
```
GEMINI_API_KEY_CHUNKER=your_chunker_api_key_here
GEMINI_API_KEY_ANALYZER=your_analyzer_api_key_here
```
## 用法
1. 将要分析的源代码放置到 `./target_code/` 目录中。
2. 运行流水线:
```
python main.py
```
3. 工具会将进度打印到标准输出。
4. 完成后,查看生成的 `report.json` 文件,获取确认漏洞、零日候选漏洞以及 Semgrep 误报的详细分解。
标签:AI安全, Chat Copilot, DLL 劫持, LLM, Python, SAST, Semgrep, SOC工具, Unmanaged PE, WordPress安全扫描, 代码审查, 大语言模型, 安全分析管道, 安全管道, 安全防护, 提示注入防御, 无后门, 源代码安全, 漏洞发现, 盲注攻击, 结构化查询, 自动化安全, 误报减少, 逆向工具, 逻辑漏洞, 防御框架, 零日候选, 静态应用安全测试