Ruby/Railsプログラマならおなじみの「Gemfile.lock」。実際にプログラムで使われているGemパッケージの名前やバージョンが記載されたファイルです。
今回紹介するサイト「Is it vulnerable?」は、Gemfile.lockに含まれるGemパッケージに脆弱性があるかどうかを一括チェックしてくれるオンラインサービスです(Hacker News)。
インターネット上に公開するWebサービスで、脆弱性の存在するGemパッケージを使っていると致命傷になる場合もあるかもしれません。このサービスを使って早めに調査しておいたほうが良いでしょう。
使用方法
「Is it vulnerable?」のトップページのドロップエリアへ「Gemfile.lock」をドロップします。すぐに結果が表示され「Yep, it’s vulnerable.」ならば、脆弱性が存在していることになります。
上の場合、例えば、「activesupport 4.2.1」には、「XSS Vulnerability in ActiveSupport::JSON.encode」と「Possible Denial of Service attack in Active Support」という脆弱性が存在しているので、Upgrade toに書かれている4.1.11以降 (4.2未満) or 4.2.2以降のバージョンのGemファイルにバージョンアップしたほうが良いということが分かります。
それならばということで、Gemfileを修正して適切なバージョンに変更し、bundle updateを実行後、再度テストしてみます。
今度は成功しました。あらゆる場合に100%脆弱性なしを目指すのは難しいかもしれませんが、自分が使っているGemfile.lockにどのような問題が存在しているのか知っておくだけでも損はないでしょう。
Rubyを使ってWebアプリケーション等を作成している開発者におすすめのサービスです。