# Slice:用 AI 革新代码安全分析的新一代工具

145 阅读1分钟

Slice:用 AI 革新代码安全分析的新一代工具

🚀 概述

在代码安全领域,一个突破性的工具正在改变游戏规则。Slice —— 一个结合了静态应用安全测试(SAST)和大语言模型(LLM)的跨过程上下文提取器,正在为安全研究人员提供前所未有的漏洞发现能力。

项目地址: noperator.dev/posts/slice…

🎯 核心问题:LLM 能否真正发现生产代码中的复杂漏洞?

自 2022 年末 ChatGPT 发布以来,整个技术社区都在思考一个问题:LLM 能否在广泛使用的生产代码库中找到复杂的漏洞?

Caleb Gross 的 Slice 工具给出了肯定的答案。通过巧妙地结合传统静态分析技术与现代 AI 能力,Slice 成功地在 Linux 内核等大型代码库中发现了真实的安全漏洞。

💡 技术创新:智能的代码选择与分析

1. 核心挑战

在使用 LLM 进行代码安全分析时,我们面临三个关键挑战:

  • 如何决定向 LLM 发送哪些潜在易受攻击的代码?
  • 如何在扩大搜索范围的同时保持高信噪比,防止误报?
  • 如何将当今的 AI 模型现实地整合到研究人员的工作流程中?

2. Slice 的解决方案

Slice 采用了一种创新的四步流程:

$ slice -h
Slice: SAST + LLM Interprocedural Context Extractor
Uses CodeQL, Tree-Sitter, and LLMs to find vulns across complex call graphs.
Intended flow is query -> filter -> rank.

Available Commands:
  parse      Parse code and extract function information
  query      Run CodeQL queries and enrich results with source code
  filter     Filter CodeQL vulnerability results using LLM processing
  rank       Rank validated vulnerability findings by criticality

🔍 实战案例:重现 CVE-2025-37778

Slice 的强大之处在于它能够:

  • 无需编译代码:直接读取源代码进行分析
  • 跨函数追踪:分析深度达 3 层的调用图
  • 智能过滤:使用 LLM 减少误报

关键特性

  1. 免编译分析

    • 无需构建环境配置
    • 支持分析代码片段
    • 适用于大规模代码扫描
  2. 智能漏洞检测

    • 专注于 use-after-free 等复杂漏洞
    • 利用 CodeQL 进行初步筛选
    • 通过 LLM 进行深度分析
  3. 高效的工作流程

    • 自动化的代码选择机制 现出了令人印象深刻的结果:

与传统 LLM 的对比

  • GPT-4o (o3):在 100 次运行中发现 kerberos 认证漏洞 8 次

    • 66 次正确判断无漏洞(真阴性)
    • 28 次误报(假阳性)
    • 性能提升:比 Claude Sonnet 3.7 提高 2-3 倍
  • 扩展输入后的表现:即使在 1/100 的成功率下,o3 仍能发现漏洞

    • 证明了在更大上下文窗口下的鲁棒性
    • 展示了规模化分析的可行性

🛠️ 技术架构

1. 多层次分析管道

源代码 → CodeQL 查询 → Tree-Sitter 解析 → LLM 过滤 → 风险排序

2. 核心组件

  • CodeQL:提供强大的语义代码查询能力
  • Tree-Sitter:实现快速、增量的语法分析
  • LLM 集成:利用 AI 理解复杂的代码语义和上下文
  • 智能排序:基于关键性对发现的漏洞进行优先级排序

3. 无需编译的优势

  • 降低了分析门槛
  • 支持不完整或损坏的代码
  • 极大提升了扫描速度和覆盖范围

🎓 使用场景

1. 安全研究人员

  • 快速分析大型代码库
  • 发现传统工具难以检测的复杂漏洞
  • 无需搭建复杂的编译环境

2. 开发团队

  • 集成到 CI/CD 流程
  • 早期发现安全问题
  • 降低修复成本

3. 开源项目维护者

  • 定期安全审计
  • 社区贡献代码审查
  • 提升项目安全性

💪 独特优势

1. 智能化程度高

  • 不再是简单的模式匹配
  • 理解代码的语义和上下文
  • 自动追踪复杂的数据流

2. 易于集成

  • 命令行友好
  • 模块化设计
  • 支持自定义扩展

3. 持续进化

  • 随着 LLM 技术的进步而提升
  • 社区驱动的规则更新
  • 开放的架构设计

🚦 实践建议

对于初学者

  1. 从简单的代码片段开始
  2. 熟悉 CodeQL 查询语法
  3. 理解 LLM 的能力和限制

对于高级用户

  1. 自定义查询规则
  2. 调优 LLM 参数
  3. 构建专属的漏洞检测流程

最佳实践

  • 渐进式分析:从小范围开始,逐步扩大分析范围
  • 结果验证:对 LLM 的发现进行人工验证
  • 持续优化:根据
    • 基于上下文的智能分析
    • 可扩展的架构设计

📊 性能表现

根据实际测试数据,Slice 展 实际结果调整查询策略

🌟 未来展望

Slice 代表了代码安全分析的新方向:

1. AI 驱动的安全

  • LLM 技术与传统安全工具的深度融合
  • 更智能的漏洞检测能力
  • 降低安全分析的技术门槛

2. 社区生态

  • 开源社区的积极参与
  • 规则库的持续更新
  • 最佳实践的分享与传播

3. 技术演进

  • 支持更多编程语言
  • 更深层次的调用图分析
  • 与更多 AI 模型的集成

🎬 总结

Slice 不仅仅是一个工具,它代表了一种新的安全分析范式。通过巧妙地结合静态分析的准确性和 AI 的智能理解能力,Slice 让我们看到了自动化漏洞发现的新可能。

核心价值

  • 突破传统限制:无需编译,直接分析
  • 智能化升级:从模式匹配到语义理解
  • 实用性优先:解决真实世界的安全问题

行动号召

  1. 立即尝试:访问项目页面,开始你的安全分析之旅
  2. 参与贡献:分享你的发现,完善工具生态
  3. 传播理念:让更多人了解 AI 在安全领域的应用

🔗 相关资源

  • 项目详情: noperator.dev/posts/slice…
  • 作者: Caleb Gross
  • 相关研究: Sean Heelan 的 Linux 内核漏洞发现实验
  • 技术栈: CodeQL + Tree-Sitter + LLM

"The future of security is not just about finding vulnerabilities, but understanding them."

Slice 正在将这个愿景变为现实。加入我们,一起探索 AI 驱动的代码安全新纪元!

💡 快速开始

# 安装 Slice
$ git clone https://github.com/[repository-url]/slice
$ cd slice
$ ./install.sh

# 分析你的第一个项目
$ slice parse ./your-project
$ slice query --pattern "use-after-free"
$ slice filter --llm gpt4
$ slice rank --output vulnerabilities.json

让安全分析变得简单、智能、高效 —— 这就是 Slice 的使命。🚀