开源
Brakeman:检测应用程序是否存在漏洞的静态分析工具
来源:元经纪     阅读:611
网站管理员
发布于 2023-02-23 06:56
查看主页

概述

Brakeman 是一种静态分析工具,用于检查 Ruby on Rails 应用程序是否存在安全漏洞。

安装

使用 RubyGems:

gem install brakeman

使用捆绑器:

group :development do
  gem 'brakeman'
end

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

使用presidentbeef:

docker pull presidentbeef/brakeman

使用 Docker 从源代码构建:

git clone https://github.com/presidentbeef/brakeman.git
cd brakeman
docker build . -t brakeman

用法

在本地运行

从 Rails 应用程序的根目录:

brakeman

在 Rails 根之外:

brakeman /path/to/rails/application

使用 Docker 运行

从 Rails 应用程序的根目录:

docker run -v "$(pwd)":/code presidentbeef/brakeman

有一点更好的颜色:

docker run -v "$(pwd)":/code presidentbeef/brakeman --color

对于 HTML 报告:

docker run -v "$(pwd)":/code presidentbeef/brakeman -o brakeman_results.html

在 Rails root 之外(注意输出文件是相对于 path/to/rails/application 的):

docker run -v 'path/to/rails/application':/code presidentbeef/brakeman -o brakeman_results.html

兼容性

Brakeman 应该适用于从 2.3.x 到 7.x 的任何版本的 Rails。

Brakeman 可以分析使用 Ruby 1.8 和更新语法编写的代码,但至少需要 Ruby 2.5.0 才能运行。

基本选项

有关选项的完整列表,请使用brakeman --help或查看OPTIONS.md文件。

要为结果指定输出文件:

brakeman -o output_file

输出格式由文件扩展名或使用选项确定-f。当前选项有:texthtmltabsjsonjunitmarkdowncsvcodeclimatesonar

可以指定多个输出文件:

brakeman -o output.html -o output.json

使用颜色输出到文件和控制台:

brakeman --color -o /dev/stdout -o output.json

要抑制信息性警告并仅输出报告:

brakeman -q

请注意,除报告外,所有 Brakeman 输出都发送到 stderr,这使得将 stdout 重定向到文件并获取报告变得简单。

查看各种调试信息:

brakeman -d

如果需要,可以跳过特定检查。名称需要大小写正确。例如,要跳过查找默认路由 ( DefaultRoutes):

brakeman -x DefaultRoutes

多项检查应以逗号分隔:

brakeman -x DefaultRoutes,Redirect

做相反的事情,只运行一组特定的测试:

brakeman -t SQL,ValidationRegex

如果 Brakeman 运行有点慢,试试

brakeman --faster

这将禁用一些功能,但可能会快得多(目前它与 相同--skip-libs --no-branching)。警告:这可能会导致 Brakeman 遗漏一些漏洞。

默认情况下,如果发现任何安全警告或遇到扫描错误,Brakeman 将返回一个非零退出代码。要禁用此功能:

brakeman --no-exit-on-warn --no-exit-on-error

要跳过 Brakeman 可能无法解析的某些文件或目录,请使用:

brakeman --skip-files file1,/path1/,path2/

要将一次扫描的结果与之前的扫描进行比较,请使用 JSON 输出选项,然后:

brakeman --compare old_report.json

这将输出带有两个列表的 JSON:一个固定警告和一个新警告。

如果配置为这样做,Brakeman 将忽略警告。默认情况下,它会在config/brakeman.ignore. 要创建和管理此文件,请使用:

brakeman -I

警告信息

有关此工具报告的警告的更多信息,请参阅warning_types 。

警告上下文

HTML 输出格式提供了触发警告的原始应用程序源的摘录。由于在查找漏洞时进行的处理,来源可能与报告的警告不同,报告的行号可能略有偏差。但是,上下文仍然提供了对引发警告的代码的快速查看。

置信水平

Brakeman 为每个警告分配一个置信度。这提供了一个粗略的估计,即工具在多大程度上确定给定的警告实际上是一个问题。当然,这些评级不应被视为绝对真理。

信心分为三个层次:

  • 高 - 这是一个简单的警告(布尔值),或者用户输入很可能以不安全的方式使用。
  • 中 - 这通常表示对变量的不安全使用,但该变量可能是也可能不是用户输入。
  • 弱 - 通常意味着以潜在不安全的方式间接使用了用户输入。

仅获得高于给定置信度的警告:

brakeman -w3

-w开关采用 1 到 3 之间的数字,1 表示低(所有警告),3 表示高(仅最高置信度警告)。

配置文件

可以从 YAML 文件中存储和读取 Brakeman 选项。

为了简化编写配置文件的过程,该-C选项将输出当前设置的选项:

$ brakeman -C --skip-files plugins/
---
:skip_files:
- plugins/

在命令行上传递的选项优先于配置文件。

默认配置位置是./config/brakeman.yml~/.brakeman/config.yml/etc/brakeman/config.yml

-c选项可用于指定要使用的配置文件。

[/hidecontent]

 
免责声明:本文为用户发表,不代表网站立场,仅供参考,不构成引导等用途。 开源
大模型从“上新品”进入“强应用”阶段
元宇宙列入30省/市政府工作重点!
京东集团首席执行官许冉:绿色消费正在带动整个产业链转型升级
大学教育应顺应趋势直面人工智能挑战
海关查获“异宠”野蛮收获蚁979只:生性凶猛擅长集体作战

首页

分类

定制方案

消息

我的