酒と泪とRubyとRailsと

Ruby on Rails と Objective-C は酒の肴です!

Brakeman Railsのセキュリティチェックを行うためのGem

presidentbeef/brakeman - GitHub』は、 Railsのセキュリティの問題点等をコマンド1つでチェックしてくれるGemです。 企業等のサイト開発などでも気軽に使えるので是非試してみてください。


サンプル

こんな感じでコマンド一つでアプリのセキュリティをチェックしてくれます。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
bundle exec brakeman

+BRAKEMAN REPORT+

Application path: /path/to/rails_app
Rails version: 4.2.5
Brakeman version: 3.1.4
Started at 2016-01-18 23:46:28 +0900
Duration: 0.805318 seconds
Checks run: BasicAuth, ContentTag, CreateWith, CrossSiteScripting, DefaultRoutes, Deserialize, DetailedExceptions, DigestDoS, EscapeFunction, Evaluation, Execute, FileAccess, FileDisclosure, FilterSkipping, ForgerySetting, HeaderDoS, I18nXSS, JRubyXML, JSONEncoding, JSONParsing, LinkTo, LinkToHref, MailTo, MassAssignment, ModelAttrAccessible, ModelAttributes, ModelSerialize, NestedAttributes, NumberToCurrency, QuoteTableName, Redirect, RegexDoS, Render, RenderDoS, RenderInline, ResponseSplitting, SQL, SQLCVEs, SSLVerify, SafeBufferManipulation, SanitizeMethods, SelectTag, SelectVulnerability, Send, SendFile, SessionManipulation, SessionSettings, SimpleFormat, SingleQuotes, SkipBeforeFilter, StripTags, SymbolDoSCVE, TranslateBug, UnsafeReflection, ValidationRegex, WithoutProtection, XMLDoS, YAMLParsing


+SUMMARY+

+-------------------+-------+
| Scanned/Reported  | Total |
+-------------------+-------+
| Controllers       | 6     |
| Models            | 5     |
| Templates         | 26    |
| Errors            | 0     |
| Security Warnings | 0 (0) |
+-------------------+-------+

結果はファイルやjsonで出力できますし、JenkinsなどのCIなどと連携して出力させる事もできます。

ちなみに、『Jenkinsのプラグイン』はこちらです。

Gemインストール

Gemfileに以下を追加して、bundle installを実行。

1
2
3
4
5
# Gemfile
group :development do
  # セキュリティチェック
  gem 'brakeman', require: false
end

application.js の変更

あとは以下のコマンドを実行するだけ。

1
bundle exec brakeman

これで安心して仕事を進められそうです!

Special Thanks

おすすめの書籍