
bearer v2.1.0
代码安全扫描工具(SAST),用于发现、筛选并优先处理安全与隐私风险。
扫描您的源代码,针对顶级安全和隐私风险。
Bearer 是一款静态应用安全测试(SAST)工具,旨在扫描您的源代码并分析数据流,以识别、过滤和优先处理安全与隐私风险。
Bearer 提供免费开源解决方案 Bearer CLI,以及商业解决方案 Bearer Pro,可通过 Cycode 获取。
[![GitHub Release][release-img]][release]
[![Test][test-img]][test]
语言支持
Bearer CLI(开源):Go • Java • JavaScript • TypeScript • PHP • Python • Ruby
Bearer Pro by Cycode:涵盖所有 Bearer CLI 语言,外加:
- 高级跨文件分析:Java • Python • C# (alpha)
- 额外语言:C# • Kotlin • Elixir • VB.Net
面向开发者的安全与隐私静态代码分析
https://user-images.githubusercontent.com/1649672/230438696-9bb0fd35-2aa9-4273-9970-733189d01ff1.mp4
Bearer CLI 扫描您的源代码以发现:
-
安全风险与漏洞,使用内置规则覆盖 OWASP Top 10 和 CWE Top 25,例如:
- A01:访问控制(如路径遍历、开放重定向、敏感信息泄露)。
- A02:加密失败(如弱算法、不安全通信)。
- A03:注入(如 SQL 注入、输入验证、XSS、XPath)。
- A04:设计(如敏感数据缺少加密、包含敏感信息的持久性 Cookie)。
- A05:安全配置错误(如 Cookie 或 JWT 中明文存储敏感信息)。
- A07:身份识别与认证失败(如使用硬编码密码、证书验证不当)。
- A08:数据完整性失败(如反序列化不可信数据)。
- A09:安全日志与监控失败(如将敏感信息插入日志文件)。
- A10:服务器端请求伪造(SSRF)。
注意:所有规则及其代码模式可通过文档查看。
-
隐私风险,能够检测敏感数据流,如应用中使用的 PII、PHI,以及处理敏感数据的组件(如 pgSQL 等数据库、OpenAI、Sentry 等第三方 API)。这有助于生成隐私报告,适用于:
- 隐私影响评估(PIA)。
- 数据保护影响评估(DPIA)。
- 处理活动记录(RoPA),用于 GDPR 合规报告。
🚀 开始
仅需几分钟即可发现最关键的 security 风险和漏洞。在本指南中,您将安装 Bearer CLI,对本地项目运行安全扫描,并查看结果。让我们开始吧!
安装 Bearer CLI
安装 Bearer CLI 最快的方法是使用安装脚本。它会自动选择适合您架构的最佳构建版本。默认安装到 ./bin,并使用最新发布版本:
curl -sfL https://raw.githubusercontent.com/Bearer/bearer/main/contrib/install.sh | sh
其他安装选项
Homebrew
使用 Bearer CLI 的官方 Homebrew tap:
brew install bearer/tap/bearer
使用以下命令更新现有安装:
brew update && brew upgrade bearer/tap/bearer
Debian/Ubuntu
sudo apt-get update && sudo apt-get install ca-certificates -y && sudo update-ca-certificates
sudo apt-get install apt-transport-https
echo -e "Types: deb\nURIs: https://apt.fury.io/bearer/\nSuites: /\nTrusted: yes" | sudo tee /etc/apt/sources.list.d/fury.sources
sudo apt-get update
sudo apt-get install bearer
使用以下命令更新现有安装:
sudo apt-get update
sudo apt-get install bearer
RHEL/CentOS
添加仓库配置:
$ sudo vim /etc/yum.repos.d/fury.repo
[fury]
name=Gemfury Private Repo
baseurl=https://yum.fury.io/bearer/
enabled=1
gpgcheck=0
然后使用 yum 安装:
sudo yum -y update
sudo yum -y install bearer
使用以下命令更新现有安装:
sudo yum -y update bearer
Docker
Bearer CLI 也可作为 Docker 镜像使用,镜像托管于 Docker Hub 和 ghcr.io。
安装 Docker 后,可以使用以下命令,并将路径替换为实际路径。
docker run --rm -v /path/to/repo:/tmp/scan bearer/bearer:latest-amd64 scan /tmp/scan
此外,您还可以使用 docker compose。将以下内容添加到 docker-compose.yml 文件中,并将 volumes 替换为项目的实际路径:
version: "3"
services:
bearer:
platform: linux/amd64
image: bearer/bearer:latest-amd64
volumes:
- /path/to/repo:/tmp/scan
然后,运行 docker compose run 命令来执行 Bearer CLI,并指定所需标志:
docker compose run bearer scan /tmp/scan --debug
上述 Docker 配置将始终使用最新版本。
二进制文件
从此处下载适用于您操作系统/架构的归档文件。
解压归档文件,将可执行文件放置在 $PATH 中的某个位置(在类 UNIX 系统上,通常是 /usr/local/bin 或类似位置)。确保该文件具有执行权限。
使用二进制文件更新 Bearer CLI 时,下载最新版本并覆盖现有安装位置。
扫描您的项目
体验 Bearer CLI 最简单的方法是使用 OWASP Juice Shop 示例项目。它模拟了一个包含常见安全缺陷的真实的 JavaScript 应用程序。将其克隆或下载到方便的位置即可开始。
git clone https://github.com/juice-shop/juice-shop.git
现在,在项目目录上运行 bearer scan 命令:
bearer scan juice-shop
进度条将显示扫描状态。
扫描完成后,Bearer CLI 默认会输出一份安全报告,其中包含规则发现的详情,以及代码库中违规发生的位置和原因。
默认情况下,scan 命令使用 SAST 扫描器,还提供其他扫描器类型。
分析报告
安全报告以易于理解的方式展示了 Bearer CLI 检测到的安全问题。报告包含以下部分:
- 针对您的代码运行的规则列表。
- 每个检测到的发现,包括触发规则发现的文件位置和行号。
- 统计部分,包含规则检查、发现和警告的摘要。
OWASP Juice Shop 示例应用将触发规则发现并输出完整报告。以下是输出的一部分:
...
HIGH: Sensitive data stored in HTML local storage detected. [CWE-312]
https://docs.bearer.com/reference/rules/javascript_lang_session
To skip this rule, use the flag --skip-rule=javascript_lang_session
File: juice-shop/frontend/src/app/login/login.component.ts:102
102 localStorage.setItem('email', this.user.email)
=====================================
59 checks, 40 findings
CRITICAL: 0
HIGH: 16 (CWE-22, CWE-312, CWE-798, CWE-89)
MEDIUM: 24 (CWE-327, CWE-548, CWE-79)
LOW: 0
WARNING: 0
除了安全报告外,您还可以运行隐私报告。
准备好下一步了吗?有关使用和配置 scan 命令的更多选项,请参阅配置扫描命令。
更多指南和使用技巧,请查看文档。
❓ 常见问题
Bearer CLI 与其他 SAST 工具相比有何不同?
SAST 工具以出大量缺乏上下文和优先级别的问题而闻名,这通常需要安全分析人员手动分类问题。
如今最易受攻击的资产是敏感数据,因此我们从这里入手,通过评估敏感数据流来优先处理发现,突出哪些更关键,哪些不那么重要。这种独特的能力也让我们能够提供隐私扫描功能。
我们相信,通过将安全问题与明确的数据泄露风险和业务影响联系起来,我们能够以零额外成本构建更优秀、更健壮的软件。
此外,作为一款免费且开源、设计上可扩展、并注重良好开发者体验的工具,我们相信您会亲自体验到它的与众不同。
什么是隐私扫描器?
除了检测代码中的安全缺陷外,Bearer CLI 还能自动化证据收集过程,为合规团队生成隐私报告所需的信息。
当您对代码库运行 Bearer CLI 时,它会通过识别源代码中的模式来发现和分类数据。具体来说,它会查找数据类型并进行匹配。最重要的是,它绝不会查看实际值——它做不到——它只查看代码本身。如果您想了解更多,这里有更详细的解释。
Bearer CLI 能够识别来自敏感数据类别的 120 多种数据类型,例如个人数据(PD)、敏感 PD、个人身份信息(PII)和个人健康信息(PHI)。您可以查看支持的数据类型文档中的完整列表。
最后,Bearer CLI 还能检测存储和处理敏感数据的组件,例如数据库、内部 API 和第三方 API。有关完整列表,请参阅配方列表。
支持的语言
了解更多关于语言支持的信息。
扫描我的代码需要多长时间?快吗?
这取决于应用程序的大小。可能只需 20 秒,对于非常大的代码库可能需要几分钟。
通常来说,Bearer CLI 的运行时间不应超过运行测试套件的时间。
如果集成 CI,我们还提供差异扫描解决方案,使其更快。了解更多。
误报问题如何处理?
如果您熟悉 SAST 工具,误报是不可避免的。
通过使用最先进的静态代码分析技术,并提供原生过滤和优先级排序功能来关注最重要的问题,我们相信我们显著改善了 SAST 的整体体验。
我们致力于为用户提供最佳体验。了解更多关于我们如何实现这一目标。
何时何地使用 Bearer CLI?
我们建议在 CI 中运行 Bearer CLI,自动检查新 PR 的安全问题,使开发团队能够立即修复问题。
您也可以在 CD 中集成 Bearer CLI,但我们建议仅在高关键性问题上使其失败,因为这可能对您的组织产生重大影响。