跳到正文
发现
命令行工具开发者工具

Opengrep:开源静态代码安全分析引擎

Semgrep 的开源分支,用规则在 30 多种语言中搜索代码模式、发现安全问题。

admin
发布于 2026-10-30
浏览
2
访问
0
下载
0
版本
v1.33.1
平台
Windows、macOS、Linux
该作品还没有经过官方审核。访问演示、下载或复制命令前,请自行确认来源可信。

详细介绍

项目简介

Opengrep 是 Semgrep 的一个 fork,采用 LGPL 2.1 许可证发布,定位为「最先进的开源 SAST 引擎」。它源自 Semgrep 将关键功能移入商业许可之后的社区分支,目标是让静态代码分析保持开放、人人可用。项目由一个 AppSec 组织联盟支持,包括 Aikido、Amplify、Endor Labs、Kodem 和 Orca Security。

Opengrep 是一个速度极快的静态分析工具,用类似语义 grep 的方式搜索代码模式,支持 30 多种语言,可在大型代码库中快速发现并修复安全漏洞。

主要功能

  • 兼容 Semgrep 规则:已有的规则和规则集无需修改即可使用。
  • 标准输出格式:支持 JSON 和 SARIF,方便接入现有流水线。
  • 增强的污点分析(--taint-intrafile):支持构造函数与字段赋值跟踪、方法间污点流、12 种语言的高阶函数,以及 map、filter、reduce 等集合方法的污点传播。
  • 语言覆盖广:Apex、Bash、C、C++、C#、Clojure、Crystal、Dart、Dockerfile、Elixir、Go、HTML、Java、JavaScript、JSON、Jsonnet、JSX、Julia、Kotlin、Lisp、Lua、OCaml、PHP、Python、R、Ruby、Rust、Scala、Scheme、Solidity、Swift、Terraform、TSX、TypeScript、Visual Basic、XML、YAML,以及 ERB、Jinja 等通用模板。
  • 发行方式:由 OCaml 编译的自包含二进制,发布包带 Cosign 签名。
  • 报告与调试:--skin 可选 simple、vivid、legacy 三种文本报告布局;设置 OPENGREP_LOG_FILE 可把 stderr 输出另存为日志文件。

安装与使用

Linux / macOS 快速安装:

curl -fsSL https://raw.githubusercontent.com/opengrep/opengrep/main/install.sh | bash

Windows(PowerShell):

irm https://raw.githubusercontent.com/opengrep/opengrep/main/install.ps1 | iex

也可以从 releases 页面 手动下载二进制。

写一条规则保存在 rules/demo-rust-unwrap.yaml:

rules:
- id: unwrapped-result
  pattern: $VAR.unwrap()
  message: "Unwrap detected - potential panic risk"
  languages: [rust]
  severity: WARNING

然后扫描目标目录:

opengrep scan -f rules code/rust

需要 SARIF 结果时:

opengrep scan --sarif-output=sarif.json -f rules code

注意事项

  • Opengrep 是 Semgrep v1.100.0 的 fork,与 Semgrep Inc. 没有隶属或背书关系。
  • 项目采用 LGPL-2.1 许可证。
  • Windows 安装包内含 opengrep.exe 及其依赖的 DLL,需要把它们放在同一目录中。
  • 更多教程与语言支持说明见 Wiki。

本作品整理自 GitHub 开源项目 opengrep/opengrep,原作者 @opengrep,许可证 LGPL-2.1。中文介绍由 AI 根据项目 README 整理,以原仓库为准。

更新记录

  1. v1.33.1当前版本

    修复 python cli 上 ASP.NET 的 C# 与 VB 规则无法扫描泛型处理程序(.ashx)和 Web 服务(.asmx)的问题;Windows 上文件扩展名匹配不再区分大小写。

评论