Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
3
Help us understand the problem. What is going on with this article?
@kou_pg_0131

【Rails】bundler-auditの使い方

More than 1 year has passed since last update.

bundler-auditとは

bundler-auditはプロジェクトで利用しているGemの脆弱性の有無をチェックしてくれるGemです。
システムの脆弱性チェックの一つとして利用できますね。

検証した環境

  • Ruby 2.7.0
  • bundler-audit 0.6.1

準備

bundle install

Gemfileに以下を追加してbundle install

Gemfile
group :development do
  gem 'bundler-audit'
end
$ bundle install

脆弱性チェックに使用するDBを更新する

脆弱性チェックを実行する前に、bundler-auditが使用するDBの更新を行いましょう。

$ bundle exec bundler-audit update

このコマンドでは、実際には$HOME/.local/shareディレクトリ配下にrubysec/ruby-advisory-dbgit cloneしているようです。

脆弱性の存在するGemをチェックする

実際にbundler-auditを実行してGemの脆弱性をチェックしてみましょう。
以下のコマンドで実行できます。
脆弱性が見つからなかった場合はNo vulnerabilities foundと出力されます。

$ bundle exec bundler-audit
No vulnerabilities found

DBの更新と脆弱性チェックを同時に実行する

以下のコマンドで脆弱性チェックに使用するDBの更新と脆弱性チェックを同時に実行できます。
DBの更新忘れを防ぐためにも、基本的には以下のコマンドを利用するほうがいいでしょう。

$ bundle exec bundler-audit check --update

実際に脆弱性があるGemをインストールして検証してみる

bundler-auditの出力を確認するために、実際に脆弱性が存在するGemのインストール~脆弱性チェック~修正までやってみます。

脆弱性があるGemをインストール

実際に脆弱性が存在するGemをインストールしてみます。
ここでは試しにbootstrapv4.3.0をインストールしてみます。
Gemfileに以下を追記してbundle install

Gemfile
gem 'bootstrap', '4.3.0'
$ bundle install

脆弱性をチェックする

bundler-auditを実行してみます。

$ bundle exec bundler-audit
Name: bootstrap
Version: 4.3.0
Advisory: CVE-2019-8331
Criticality: Medium
URL: https://blog.getbootstrap.com/2019/02/13/bootstrap-4-3-1-and-3-4-1/
Title: XSS vulnerability in bootstrap
Solution: upgrade to >= 4.3.1

Vulnerabilities found!

脆弱性が見つかったGemとその内容、解決するバージョンまでわかりやすく出力してくれます。

脆弱性を無視する

場合によってはbundler-auditによって見つかった脆弱性を無視したいこともあるかと思います。
そういうときは--ignoreオプションに無視したいAdvisoryを指定しましょう。

$ bundle exec bundler-audit --ignore CVE-2019-8331
No vulnerabilities found

脆弱性のあるGemのバージョンを上げる

先ほどbundler-auditで出力された内容には

Solution: upgrade to >= 4.3.1

と書いてあったので、それに従ってGemfileを修正してみます。
(※実際にはGemfileにバージョンを指定していない場合の方が多いと思うので、その場合はbundle updateコマンド等を利用してください。)

Gemfile
-gem 'bootstrap', '4.3.0'
+gem 'bootstrap', '4.3.1'
$ bundle install

bootstrapのバージョンを上げたのでもう一度bundler-auditを実行してみます。

$ bundle exec bundler-audit
No vulnerabilities found

警告が出なくなりました!

参考

3
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
kou_pg_0131
Goが好き

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
3
Help us understand the problem. What is going on with this article?