Ruby Application Analysis
Ruby scanning supports packages from RubyGems as (.gem) files with the full support of Security, License, and Identity data.
For the best results, the scan should happen after either installing the packages from a clean environment or storing the gems in a local cache to run the analysis.
bundle cache --no-install : package the dependencies to ./vendor/cache without installing them to the local install location
bundle install --deployment: uses gems installed to ./vendor/bundle not your default system location.
The Lifecycle scanner can scan SBOMs generated from CycloneDX for Ruby. See CycloneDX pages for details.
Evaluation: Manifest and lock files
The Ruby coordinate-based matching feature provides the ability to scan and evaluate Ruby dependencies found in the Gemfile.lock file. Support includes manifest analysis using the Gemfile.lock file.
What do we parse from the file?
Components from sections GIT, GEM and PATH and with an exact version will be analyzed. For example:
Gemfile.lock
GIT
remote: https://github.com/phatworx/devise_security_extension.git
specs:
devise_security_extension (0.10.0)
GEM
remote: https://rubygems.org/
specs:
actionmailer (5.0.7.2)
actionpack (= 5.0.7.2)
PATH
remote: ../some_path
specs:
jquery (0.0.1)
Example Gemfile.lock File
Gemfile.lock
GIT
remote: https://github.com/phatworx/devise_security_extension.git
revision: b2ee978af7d49f0fb0e7271c6ac074dfb4d39353
specs:
devise_security_extension (0.10.0)
devise (>= 3.0.0, < 5.0)
railties (>= 3.2.6, < 6.0)
GEM
remote: https://rubygems.org/
remote: https://rails-assets.org/
specs:
actioncable (5.0.7.2)
actionpack (= 5.0.7.2)
nio4r (>= 1.2, < 3.0)
websocket-driver (~> 0.6.1)
actionmailer (5.0.7.2)
actionpack (= 5.0.7.2)
actionview (= 5.0.7.2)
activejob (= 5.0.7.2)
mail (~> 2.5, >= 2.5.4)
rails-dom-testing (~> 2.0)
PLATFORMS
ruby
DEPENDENCIES
acts-as-taggable-on (~> 5.0.0)
acts_as_votable (~> 0.11.1)
ahoy_matey (~> 1.6.0)
ancestry (~> 3.0.7)
audited (~> 4.9.0)
autoprefixer-rails (~> 8.2.0)
bullet (~> 5.7.0)
BUNDLED WITH
1.17.1