开源
Semgrep:轻量级开源静态分析引擎
来源:元经纪     阅读:1071
网站管理员
发布于 2023-06-16 05:30
查看主页

概述

Semgrep 是一个快速的开源静态分析引擎,用于查找错误、检测第三方依赖项中的漏洞以及执行代码标准。Semgrep 在您的计算机或构建环境中本地分析代码:代码永远不会上传

Semgrep 支持 30 多种语言。

类别 语言
遗传算法 C# · Go · Java · JavaScript · JSX · JSON · PHP · Python · Ruby · Scala · Terraform · TypeScript · TSX
测试版 Kotlin · Rust
实验性的 Bash·C·C++·Clojure·Dart·Dockerfile·Elixir·HTML·Julia·Jsonnet·Lisp·Lua·OCaml·R·Scheme·Solidity·Swift·YAML·XML·通用(ERB、Jinja等)

入门

[hidecontent type="logged" desc="隐藏内容:登录后可查看"]

  1. 从 CLI
  2. 来自 Semgrep 云平台

对于初学者,我们建议从Semgrep Cloud Platform开始,因为它提供了一个可视化界面、一个演示项目、结果分类和探索工作流,并且可以快速地在 CI/CD 中进行设置。扫描仍在本地,代码未上传。或者,您也可以在不登录的情况下使用 CLI 并导航终端输出以运行一次性搜索。

选项 1:从 CLI 开始

  1. 安装 Semgrep CLI
# For macOS
$ brew install semgrep

# For Ubuntu/WSL/Linux/macOS
$ python3 -m pip install semgrep

# To try Semgrep without installation run via Docker
$ docker run --rm -v "${PWD}:/src" returntocorp/semgrep semgrep
  1. 转到应用程序的根目录并运行semgrep scan --config auto. 这将使用默认设置扫描您的项目。

  2. [可选,但推荐] 运行semgrep login以获取 Semgrep 云平台的登录 URL。在浏览器中打开登录网址并登录。

方案二:从Semgrep云平台开始(推荐)

  1. 注册到semgrep.dev

  2. 探索演示应用程序

  3. 通过导航到扫描您的项目Projects > Scan New Project > Run scan in CI

  4. 选择您的版本控制系统并按照向导添加您的项目。完成此设置后,Semgrep 将在每次拉取请求后扫描您的项目。

  5. [可选但推荐] 如果您想在本地运行 Semgrep,请按照 CLI 部分中的步骤操作。

笔记:

  1. 访问Docs > Running rules以了解有关auto配置和其他规则的更多信息。

  2. 如果有任何问题,请在 Smegrep Slack 组中提问https://go.semgrep.dev/slack

  3. 要运行 Semgrep 供应链,请联系 Semgrep 团队。访问完整文档以了解更多信息。

Semgrep 生态系统

Semgrep 生态系统包括以下产品:

  • Semgrep OSS Engine - 处于一切核心的开源引擎(本项目)。
  • Semgrep Cloud Platform (SCP) - 使用 Semgrep 大规模部署、管理和监控 SAST 和 SCA,具有免费和付费层级。与 GitHub、GitLab、CircleCI 等持续集成 (CI) 提供商集成。
  • Semgrep 代码- 使用 Semgrep 的 Pro 规则和 Semgrep Pro 引擎扫描您的代码,以查找 OWASP 十大漏洞并防范您的组织特有的关键安全风险。Semgrep 代码同时提供社区(免费)和团队(付费)层。
  • Semgrep Supply Chain (SSC) - 一种高信号依赖性扫描器,可检测开源第三方库中可访问的漏洞和软件开发生命周期 (SDLC) 中的功能。Semgrep 供应链可在团队(付费)层级使用。

和:

  • Semgrep Playground - 用于编写和共享规则的在线交互式工具。
  • Semgrep Registry - 2,000 多个社区驱动的规则,涵盖安全性、正确性和依赖性漏洞。

加入已经在 GitLab、Dropbox、Slack、Figma、Shopify、HashiCorp、Snowflake 和 Trail of Bits 等公司使用 Semgrep 的数十万其他开发人员和安全工程师。

Semgrep 由软件安全公司 Semgrep, Inc.开发并提供商业支持。

Semgrep 规则

Semgrep 规则看起来像您已经编写的代码;没有抽象语法树、正则表达式角力或痛苦的 DSL。下面是查找 Python 语句的快速规则print()

单击此处在 Semgrep 的 Playground 中在线运行它。

例子

访问文档 > 规则示例以了解用例和想法。

用例 semgrep 规则
禁止危险的 API 防止使用 exec
搜索路由和认证 提取 Spring 路由
强制使用安全默认值 安全地设置 Flask cookie
流入接收器的污染数据 ExpressJS 数据流进入 sandbox.run
实施项目最佳实践 使用 assertEqual 进行 == 检查始终检查子进程调用
编纂项目特定知识 在进行交易之前验证交易
审核安全热点 在 Apache Airflow 中查找 XSS硬编码凭据
审计配置文件 查找 S3 ARN 使用
从已弃用的 API 迁移 DES 已弃用弃用的 Flask API弃用的 Bokeh API
应用自动修复 使用 listenAndServeTLS

扩展

访问Docs > Extensions以了解如何在您的编辑器或预提交中使用 Semgrep。当集成到 CI 中并配置为扫描拉取请求时,Semgrep 将仅报告该拉取请求引入的问题;这使您可以开始使用 Semgrep,而无需修复或忽略先前存在的问题!

文档

在网站上浏览完整的 Semgrep文档。如果您是 Semgrep 的新手,请查看Docs > Getting started交互式教程

指标

使用注册表中的远程配置(如--config=p/ci)向 semgrep.dev 报告假名规则指标。

使用本地文件(如--config=xyz.yml)中的配置不会启用指标。

要禁用注册表规则指标,请使用--metrics=off.

Semgrep隐私政策描述了指导数据收集决策的原则,以及启用指标时收集和未收集的数据的细分。

更多的

升级中

要升级,请运行以下与您安装 Semgrep 的方式相关的命令:

# Using Homebrew
$ brew upgrade semgrep

# Using pip
$ python3 -m pip install --upgrade semgrep

# Using Docker
$ docker pull returntocorp/semgrep:latest

[/hidecontent]

 
免责声明:本文为用户发表,不代表网站立场,仅供参考,不构成引导等用途。 开源
苦等七年终于来了!《白夜破晓》长丰集结海报出炉:潘粤明主演
上半年温州规上工业增加值增速全省第一 产业链混搭 闯入新赛道
中关村世界领先科技园区计划于2027年初步建成
线下商场迎来“内容为王”时代
大众帮办|遭美团强制调低房价,百元酒店陷“低价内卷”困局

首页

分类

定制方案

消息

我的