こんにちは、エンジニアの望月(@c5meru)です。
最近、kindleで「徳丸本」を購入しました。
プロとしてお仕事していく以上、セキュリティの知識は欠かせないと思うので、じっくり読んでいこうと思います!
さて、今日はそんなセキュリティチェックに関するお話です。
表題のBrakeman
は、Ruby on Railsアプリケーションの脆弱性チェックをしてくれる静的解析です。
簡単に導入でき、コマンドひとつで実行できるので、定期的に利用することをおすすめします!
Brakemanのインストール
まず、以下のように、Gemfileに1行追記します。
# Gemfile source 'https://rubygems.org' group :development, :test do gem 'brakeman', require: false # この行を追記 end
次に、bundle install
をします。
$ bundle install
これだけで、Brakemanのインストールは完了です。
Brakemanの実行
アプリケーションのルートディレクトリで、以下のコマンドを実行します。
$ brakeman
すると、以下のようにチェック結果が出力されます。
== Brakeman Report == Application Path: /Users/meru/rails_app Rails Version: 5.1.4 Brakeman Version: 4.0.1 Scan Date: 2017-12-14 16:19:02 +0900 Duration: 6.525023 seconds Checks Run: .... == Overview == Controllers: 53 Models: 100 Templates: 82 Errors: 0 Security Warnings: 3 == Warning Types == Redirect: 1 SQL Injection: 1 SSL Verification Bypass: 1 == Warnings == // 以下、警告の内容
htmlオプション
以下のようなオプションを付けて実行すると、結果をhtmlで出力できます。
$ brakeman -o index.html
コマンドを実行したディレクトリに、htmlファイルが生成されているはずです。
エラー・警告の説明を見るオプション
チェック項目や、エラー・警告の内容は-k
オプションで確認できます。
$ brakeman -k Available Checks: ------------------------------ CheckBasicAuth Checks for the use of http_basic_authenticate_with CheckBasicAuthTimingAttack Check for timing attack in basic auth (CVE-2015-7576) CheckCrossSiteScripting Checks for unescaped output in views ...
まとめ
以上、簡単なBrakemanの使い方でした。
指定のファイルをignoreしたりもできるようなので、公式のドキュメントもご参照ください🙇
エンジニアを募集しています
Ruby on Railsでの開発ができる方、募集しています!
詳しくは以下を見てみて下さい(`・ω・´)