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安全扫描, 代码审查, 大语言模型, 安全分析管道, 安全管道, 安全防护, 提示注入防御, 无后门, 源代码安全, 漏洞发现, 盲注攻击, 结构化查询, 自动化安全, 误报减少, 逆向工具, 逻辑漏洞, 防御框架, 零日候选, 静态应用安全测试