
bearer v2.1.1
代码安全扫描工具(SAST),用于发现、筛选并优先处理安全与隐私风险。
扫描您的源代码,针对顶级安全和隐私风险。
Bearer 是一款静态应用安全测试(SAST)工具,旨在扫描您的源代码并分析数据流,以识别、过滤和优先处理安全与隐私风险。
Bearer 提供免费开源解决方案 Bearer CLI,以及商业解决方案 Bearer Pro,可通过 Cycode 获取。
语言支持
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,但我们建议仅在高关键性问题上使其失败,因为这可能对您的组织产生重大影响。
此外,将 Bearer CLI 作为定时任务运行是跟踪安全状况的好方法,即使在活动较少的项目中也能发现新的安全问题。
请务必阅读我们的集成策略指南了解更多信息。
是否支持过程间和文件间分析?
是的,Bearer Pro 支持过程间和文件间分析,目前完全支持 Java,并正在积极扩展至其他主要支持的语言。这种高级分析使 Bearer Pro 能够在整个代码库中跨函数和文件边界追踪数据流和控制流。这对于准确识别依赖于不同代码组件交互的复杂漏洞至关重要,与仅限于单个函数或文件的分析相比,能显著减少误报。
Bearer Pro 在 OWASP Java Benchmark 上针对 Java 的过程间和文件间分析取得了 76% 的成绩,误报率低于 2%。
✋ 联系我们
感谢使用 Bearer CLI。仍有问题?
- 先从文档开始。
- 有功能请求或发现 Bug?创建新 Issue。
- 发现了安全问题?请查看我们的安全政策了解报告详情。
- 了解更多请访问 Bearer.com
🤝 贡献
有兴趣贡献?我们欢迎!有关如何贡献、设置开发环境以及我们的流程等详细信息,请查看贡献指南。
🚨 行为准则
所有与本项目互动的人员都应遵守我们的行为准则中的指南。
🛡️ 安全
要报告漏洞或疑似漏洞,请参阅我们的安全政策。如有任何问题、疑虑或其他安全事项,欢迎创建 Issue。
🎓 许可证
Bearer CLI 代码根据 Elastic License 2.0(ELv2)条款许可,这意味着您可以在组织内自由使用它来保护您的应用程序,无需任何商业要求。
未经 Bearer Inc. 明确许可,不得向第三方提供 Bearer CLI 作为托管或管理服务。