で、紹介されているなかで
を、試してみました。
どちらも使うのはめちゃ簡単です。
Gemfileに次のような記述を追加します。
group :development do gem 'brakeman' gem 'bundler-audit' end
あとは
bundle bundle exec brakeman bundle exec bundle audit
とすれば実行できます。
実行結果
つぎのようにズラズラっと情報が出てきます。 試したRailsアプリケーションのRailsのバージョンが古いために出てきている情報が多いです。 まずはRailsのバージョンを上げてから、再度チェックしてみるのがよさそうです。
brakeman
~ bundle exec brakeman Loading scanner... Processing application in /Users/shigerunakajima/lodqa-db Processing gems... [Notice] Detected Rails 5 application Processing configuration... [Notice] Escaping HTML by default Parsing files... Detecting file types... Processing initializers... Processing libs...ed Processing routes... Processing templates... Processing data flow in templates... Processing models... Processing controllers... Processing data flow in controllers... Indexing call sites... Running checks in parallel... - CheckBasicAuth - CheckBasicAuthTimingAttack - CheckCrossSiteScripting - CheckContentTag - CheckCookieSerialization - CheckCreateWith - CheckCSRFTokenForgeryCVE - CheckDefaultRoutes - CheckDeserialize - CheckDetailedExceptions - CheckDigestDoS - CheckDynamicFinders - CheckEscapeFunction - CheckEvaluation - CheckExecute - CheckFileAccess - CheckFileDisclosure - CheckFilterSkipping - CheckForgerySetting - CheckHeaderDoS - CheckI18nXSS - CheckJRubyXML - CheckJSONEncoding - CheckJSONEntityEscape - CheckJSONParsing - CheckLinkTo - CheckLinkToHref - CheckMailTo - CheckMassAssignment - CheckMimeTypeDoS - CheckModelAttrAccessible - CheckModelAttributes - CheckModelSerialize - CheckNestedAttributes - CheckNestedAttributesBypass - CheckNumberToCurrency - CheckPageCachingCVE - CheckPermitAttributes - CheckQuoteTableName - CheckRedirect - CheckRegexDoS - CheckRender - CheckRenderDoS - CheckRenderInline - CheckResponseSplitting - CheckRouteDoS - CheckSafeBufferManipulation - CheckSanitizeMethods - CheckSelectTag - CheckSelectVulnerability - CheckSend - CheckSendFile - CheckSessionManipulation - CheckSessionSettings - CheckSimpleFormat - CheckSingleQuotes - CheckSkipBeforeFilter - CheckSprocketsPathTraversal - CheckSQL - CheckSQLCVEs - CheckSSLVerify - CheckStripTags - CheckSymbolDoSCVE - CheckTemplateInjection - CheckTranslateBug - CheckUnsafeReflection - CheckUnsafeReflectionMethods - CheckValidationRegex - CheckVerbConfusion - CheckWithoutProtection - CheckXMLDoS - CheckYAMLParsing Checks finished, collecting results... Generating report... == Brakeman Report == Application Path: /Users/shigerunakajima/lodqa-db Rails Version: 5.0.7.2 Brakeman Version: 5.1.1 Scan Date: 2021-10-21 04:40:52 +0900 Duration: 1.512554 seconds Checks Run: BasicAuth, BasicAuthTimingAttack, CSRFTokenForgeryCVE, ContentTag, CookieSerialization, CreateWith, CrossSiteScripting, DefaultRoutes, Deserialize, DetailedExceptions, DigestDoS, DynamicFinders, EscapeFunction, Evaluation, Execute, FileAccess, FileDisclosure, FilterSkipping, ForgerySetting, HeaderDoS, I18nXSS, JRubyXML, JSONEncoding, JSONEntityEscape, JSONParsing, LinkTo, LinkToHref, MailTo, MassAssignment, MimeTypeDoS, ModelAttrAccessible, ModelAttributes, ModelSerialize, NestedAttributes, NestedAttributesBypass, NumberToCurrency, PageCachingCVE, PermitAttributes, QuoteTableName, Redirect, RegexDoS, Render, RenderDoS, RenderInline, ResponseSplitting, RouteDoS, SQL, SQLCVEs, SSLVerify, SafeBufferManipulation, SanitizeMethods, SelectTag, SelectVulnerability, Send, SendFile, SessionManipulation, SessionSettings, SimpleFormat, SingleQuotes, SkipBeforeFilter, SprocketsPathTraversal, StripTags, SymbolDoSCVE, TemplateInjection, TranslateBug, UnsafeReflection, UnsafeReflectionMethods, ValidationRegex, VerbConfusion, WithoutProtection, XMLDoS, YAMLParsing == Overview == Controllers: 8 Models: 10 Templates: 25 Errors: 0 Security Warnings: 4 == Warning Types == Cross-Site Request Forgery: 2 Redirect: 1 Remote Code Execution: 1 == Warnings == Confidence: Medium Category: Cross-Site Request Forgery Check: CSRFTokenForgeryCVE Message: Rails 5.0.7.2 has a vulnerability that may allow CSRF token forgery. Upgrade to Rails 5.2.4.3 or patch File: Gemfile.lock Line: 123 Confidence: Medium Category: Cross-Site Request Forgery Check: ForgerySetting Message: `protect_from_forgery` should be configured with `with: :exception` File: app/controllers/application_controller.rb Confidence: Medium Category: Remote Code Execution Check: CookieSerialization Message: Use of unsafe cookie serialization strategy `:marshal` might lead to remote code execution Code: Rails.application.config.action_dispatch.cookies_serializer = :marshal File: config/initializers/cookies_serializer.rb Line: 5 Confidence: Weak Category: Redirect Check: Redirect Message: Possible unprotected redirect Code: redirect_to((targets_path + "?grid[f][users.email]=#{User.find_by!(:username => params[:username]).email}")) File: app/controllers/users_controller.rb Line: 7
bundler audit
~ bundle exec bundler audit Download ruby-advisory-db ... Cloning into '/Users/shigerunakajima/.local/share/ruby-advisory-db'... remote: Enumerating objects: 7123, done. remote: Counting objects: 100% (2007/2007), done. remote: Compressing objects: 100% (1079/1079), done. remote: Total 7123 (delta 731), reused 1348 (delta 565), pack-reused 5116 Receiving objects: 100% (7123/7123), 1.36 MiB | 11.61 MiB/s, done. Resolving deltas: 100% (3215/3215), done. ruby-advisory-db: advisories: 522 advisories last updated: 2021-10-12 11:21:05 -0700 commit: 3d02c5e6a0f4ad9416db2e1474a14f6047d1e432 Insecure Source URI found: git://github.com/KishiKyousuke/facebox-rails.git Name: actionpack Version: 5.0.7.2 CVE: CVE-2021-22885 GHSA: GHSA-hjg4-8q5f-x6fm Criticality: High URL: https://groups.google.com/g/rubyonrails-security/c/NiQl-48cXYI Title: Possible Information Disclosure / Unintended Method Execution in Action Pack Solution: upgrade to ~> 5.2.4.6, ~> 5.2.6, >= 6.0.3.7, ~> 6.0.3, >= 6.1.3.2 Name: actionpack Version: 5.0.7.2 CVE: CVE-2020-8166 GHSA: GHSA-jp5v-5gx4-jmj9 Criticality: Medium URL: https://groups.google.com/forum/#!topic/rubyonrails-security/NOjKiGeXUgw Title: Ability to forge per-form CSRF tokens given a global CSRF token Solution: upgrade to >= 5.2.4.3, ~> 5.2.4, >= 6.0.3.1 Name: actionpack Version: 5.0.7.2 CVE: CVE-2020-8164 GHSA: GHSA-8727-m6gj-mc37 Criticality: Unknown URL: https://groups.google.com/forum/#!topic/rubyonrails-security/f6ioe4sdpbY Title: Possible Strong Parameters Bypass in ActionPack Solution: upgrade to >= 5.2.4.3, ~> 5.2.4, >= 6.0.3.1 Name: actionpack Version: 5.0.7.2 CVE: CVE-2021-22904 GHSA: GHSA-7wjx-3g7j-8584 Criticality: High URL: https://groups.google.com/g/rubyonrails-security/c/Pf1TjkOBdyQ Title: Possible DoS Vulnerability in Action Controller Token Authentication Solution: upgrade to ~> 5.2.4.6, ~> 5.2.6, >= 6.0.3.7, ~> 6.0.3, >= 6.1.3.2 Name: actionview Version: 5.0.7.2 CVE: CVE-2020-15169 GHSA: GHSA-cfjv-5498-mph5 Criticality: Medium URL: https://groups.google.com/g/rubyonrails-security/c/b-C9kSGXYrc Title: Potential XSS vulnerability in Action View Solution: upgrade to >= 5.2.4.4, ~> 5.2.4, >= 6.0.3.3 Name: actionview Version: 5.0.7.2 CVE: CVE-2020-5267 GHSA: GHSA-65cv-r6x7-79hv Criticality: Medium URL: https://groups.google.com/forum/#!topic/rubyonrails-security/55reWMM_Pg8 Title: Possible XSS vulnerability in ActionView Solution: upgrade to >= 5.2.4.2, ~> 5.2.4, >= 6.0.2.2 Name: actionview Version: 5.0.7.2 CVE: CVE-2020-8167 GHSA: GHSA-xq5j-gw7f-jgj8 Criticality: Unknown URL: https://groups.google.com/forum/#!topic/rubyonrails-security/x9DixQDG9a0 Title: CSRF Vulnerability in rails-ujs Solution: upgrade to >= 5.2.4.3, ~> 5.2.4, >= 6.0.3.1 Name: activerecord Version: 5.0.7.2 CVE: CVE-2021-22880 GHSA: GHSA-8hc4-xxm3-5ppp Criticality: Medium URL: https://groups.google.com/g/rubyonrails-security/c/ZzUqCh9vyhI Title: Possible DoS Vulnerability in Active Record PostgreSQL adapter Solution: upgrade to >= 5.2.4.5, ~> 5.2.4, >= 6.0.3.5, ~> 6.0.3, >= 6.1.2.1 Name: activesupport Version: 5.0.7.2 CVE: CVE-2020-8165 GHSA: GHSA-2p68-f74v-9wc6 Criticality: Unknown URL: https://groups.google.com/forum/#!topic/rubyonrails-security/bv6fW4S0Y1c Title: Potentially unintended unmarshalling of user-provided objects in MemCacheStore and RedisCacheStore Solution: upgrade to >= 5.2.4.3, ~> 5.2.4, >= 6.0.3.1 Name: kaminari Version: 1.1.1 CVE: CVE-2020-11082 GHSA: GHSA-r5jw-62xg-j433 Criticality: Medium URL: https://github.com/kaminari/kaminari/security/advisories/GHSA-r5jw-62xg-j433 Title: Cross-Site Scripting in Kaminari via `original_script_name` parameter Solution: upgrade to >= 1.2.1 Vulnerabilities found!