发现
命令行工具开发者工具
Opengrep:开源静态代码安全分析引擎
Semgrep 的开源分支,用规则在 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 整理,以原仓库为准。
更新记录
- v1.33.1当前版本
修复 python cli 上 ASP.NET 的 C# 与 VB 规则无法扫描泛型处理程序(.ashx)和 Web 服务(.asmx)的问题;Windows 上文件扩展名匹配不再区分大小写。
评论