quayio-scanner 0.1.2 → 0.1.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +5 -5
 - data/Rakefile +6 -1
 - data/bin/check-container-vulnerabilities.rb +9 -2
 - data/lib/quayio/scanner/check.rb +2 -2
 - data/lib/quayio/scanner/image.rb +5 -4
 - data/lib/quayio/scanner/version.rb +1 -1
 - data/quayio-scanner.gemspec +3 -4
 - metadata +26 -12
 
    
        checksums.yaml
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ---
         
     | 
| 
       2 
     | 
    
         
            -
             
     | 
| 
       3 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       4 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 2 
     | 
    
         
            +
            SHA256:
         
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: 66c2653d41f714187352754314ba1f6635f4fc5aa4a8d0898ccd3e12a5c66b96
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: c5c5766092d539ff79aef0bbf2e0ba711b665ea7f704ee8fd96caf761be1ecc4
         
     | 
| 
       5 
5 
     | 
    
         
             
            SHA512:
         
     | 
| 
       6 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       7 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: a1f2ef52c92a20f7c5b6625cc45ce8ea238c25d3958fd4314b6dca4cebebfef1a0dd7947bc2e95840ab94dfbed7e24f7c7d95db4caab2d2b9b2432cf20f4c6d6
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: 456cbd136d5c59fd756f3ae958e87c0f19aae2f0b88945b5e4be4ebfc7fe2a53bd7fd80070ac46bf95d0efd49b1fd77fe253513a260146980763849f536cc6a6
         
     | 
    
        data/Rakefile
    CHANGED
    
    
| 
         @@ -36,9 +36,16 @@ class CheckContainerVulnerabilities < Sensu::Plugin::Check::CLI 
     | 
|
| 
       36 
36 
     | 
    
         
             
                     short: '-t TOKEN',
         
     | 
| 
       37 
37 
     | 
    
         
             
                     long: '--quayio-token TOKEN'
         
     | 
| 
       38 
38 
     | 
    
         | 
| 
      
 39 
     | 
    
         
            +
              option :whitelist,
         
     | 
| 
      
 40 
     | 
    
         
            +
                     description: 'Vulnerability whitelist',
         
     | 
| 
      
 41 
     | 
    
         
            +
                     short: '-w WHITELIST[,WHITELIST]',
         
     | 
| 
      
 42 
     | 
    
         
            +
                     long: '--whitelist WHITELIST[,WHITELIST]',
         
     | 
| 
      
 43 
     | 
    
         
            +
                     default: '',
         
     | 
| 
      
 44 
     | 
    
         
            +
                     proc: proc { |w| w.split(',') }
         
     | 
| 
      
 45 
     | 
    
         
            +
             
     | 
| 
       39 
46 
     | 
    
         
             
              def run
         
     | 
| 
       40 
     | 
    
         
            -
                status, message = Quayio::Scanner::Check.new( 
     | 
| 
       41 
     | 
    
         
            -
             
     | 
| 
      
 47 
     | 
    
         
            +
                status, message = Quayio::Scanner::Check.new(
         
     | 
| 
      
 48 
     | 
    
         
            +
                    config[:docker_url], config[:quayio_token], config[:whitelist]).run
         
     | 
| 
       42 
49 
     | 
    
         | 
| 
       43 
50 
     | 
    
         
             
                if status == :ok
         
     | 
| 
       44 
51 
     | 
    
         
             
                  ok message
         
     | 
    
        data/lib/quayio/scanner/check.rb
    CHANGED
    
    | 
         @@ -3,7 +3,7 @@ require 'docker' 
     | 
|
| 
       3 
3 
     | 
    
         | 
| 
       4 
4 
     | 
    
         
             
            module Quayio
         
     | 
| 
       5 
5 
     | 
    
         
             
              module Scanner
         
     | 
| 
       6 
     | 
    
         
            -
                class Check < Struct.new(:docker_url, :quayio_token)
         
     | 
| 
      
 6 
     | 
    
         
            +
                class Check < Struct.new(:docker_url, :quayio_token, :whitelist)
         
     | 
| 
       7 
7 
     | 
    
         
             
                  def run
         
     | 
| 
       8 
8 
     | 
    
         
             
                    Docker.url = docker_url
         
     | 
| 
       9 
9 
     | 
    
         
             
                    containers = Docker::Container.all
         
     | 
| 
         @@ -11,7 +11,7 @@ module Quayio 
     | 
|
| 
       11 
11 
     | 
    
         
             
                                                  .uniq
         
     | 
| 
       12 
12 
     | 
    
         | 
| 
       13 
13 
     | 
    
         
             
                    vulnerable_images = containers
         
     | 
| 
       14 
     | 
    
         
            -
                                        .map { |container| Image.new(container, quayio_token) }
         
     | 
| 
      
 14 
     | 
    
         
            +
                                        .map { |container| Image.new(container, quayio_token, whitelist) }
         
     | 
| 
       15 
15 
     | 
    
         
             
                                        .select(&:vulnerable?)
         
     | 
| 
       16 
16 
     | 
    
         
             
                                        .map(&:name)
         
     | 
| 
       17 
17 
     | 
    
         | 
    
        data/lib/quayio/scanner/image.rb
    CHANGED
    
    | 
         @@ -3,7 +3,7 @@ require 'rest-client' 
     | 
|
| 
       3 
3 
     | 
    
         | 
| 
       4 
4 
     | 
    
         
             
            module Quayio
         
     | 
| 
       5 
5 
     | 
    
         
             
              module Scanner
         
     | 
| 
       6 
     | 
    
         
            -
                class Image < Struct.new(:name, :quayio_token)
         
     | 
| 
      
 6 
     | 
    
         
            +
                class Image < Struct.new(:name, :quayio_token, :whitelist)
         
     | 
| 
       7 
7 
     | 
    
         
             
                  RELEVANT_SEVERITIES = %w(Medium High Critical)
         
     | 
| 
       8 
8 
     | 
    
         | 
| 
       9 
9 
     | 
    
         
             
                  def vulnerable?
         
     | 
| 
         @@ -26,9 +26,10 @@ module Quayio 
     | 
|
| 
       26 
26 
     | 
    
         | 
| 
       27 
27 
     | 
    
         
             
                  def high_vulnerabilities_present?
         
     | 
| 
       28 
28 
     | 
    
         
             
                    raw_scan['data']['Layer']['Features'].detect do |f|
         
     | 
| 
       29 
     | 
    
         
            -
                      f['Vulnerabilities'] &&
         
     | 
| 
       30 
     | 
    
         
            -
                         
     | 
| 
       31 
     | 
    
         
            -
                          . 
     | 
| 
      
 29 
     | 
    
         
            +
                      f['Vulnerabilities'] && f['Vulnerabilities'].detect do |v|
         
     | 
| 
      
 30 
     | 
    
         
            +
                        RELEVANT_SEVERITIES.include?(v['Severity']) &&
         
     | 
| 
      
 31 
     | 
    
         
            +
                          !whitelist.include?(v['Name'])
         
     | 
| 
      
 32 
     | 
    
         
            +
                      end
         
     | 
| 
       32 
33 
     | 
    
         
             
                    end
         
     | 
| 
       33 
34 
     | 
    
         
             
                  end
         
     | 
| 
       34 
35 
     | 
    
         | 
    
        data/quayio-scanner.gemspec
    CHANGED
    
    | 
         @@ -1,6 +1,4 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
             
     | 
| 
       2 
     | 
    
         
            -
             
     | 
| 
       3 
     | 
    
         
            -
            lib = File.expand_path('../lib', __FILE__)
         
     | 
| 
      
 1 
     | 
    
         
            +
            lib = File.expand_path('lib', __dir__)
         
     | 
| 
       4 
2 
     | 
    
         
             
            $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
         
     | 
| 
       5 
3 
     | 
    
         
             
            require 'quayio/scanner/version'
         
     | 
| 
       6 
4 
     | 
    
         | 
| 
         @@ -20,10 +18,11 @@ Gem::Specification.new do |spec| 
     | 
|
| 
       20 
18 
     | 
    
         
             
              spec.executables   = Dir.glob('bin/**/*.rb').map { |file| File.basename(file) }
         
     | 
| 
       21 
19 
     | 
    
         
             
              spec.require_paths = ['lib']
         
     | 
| 
       22 
20 
     | 
    
         | 
| 
       23 
     | 
    
         
            -
              spec.add_dependency 'sensu-plugin', '~> 2.1'
         
     | 
| 
       24 
21 
     | 
    
         
             
              spec.add_dependency 'docker-api', '~> 1.33'
         
     | 
| 
       25 
22 
     | 
    
         
             
              spec.add_dependency 'rest-client', '~> 2.0'
         
     | 
| 
      
 23 
     | 
    
         
            +
              spec.add_dependency 'sensu-plugin', '~> 2.1'
         
     | 
| 
       26 
24 
     | 
    
         
             
              spec.add_development_dependency 'bundler', '~> 1.14'
         
     | 
| 
       27 
25 
     | 
    
         
             
              spec.add_development_dependency 'rake', '~> 10.0'
         
     | 
| 
      
 26 
     | 
    
         
            +
              spec.add_development_dependency 'rspec', '~> 3.7'
         
     | 
| 
       28 
27 
     | 
    
         
             
              spec.add_development_dependency 'rubocop', '~> 0.49'
         
     | 
| 
       29 
28 
     | 
    
         
             
            end
         
     | 
    
        metadata
    CHANGED
    
    | 
         @@ -1,57 +1,57 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: quayio-scanner
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version
         
     | 
| 
       4 
     | 
    
         
            -
              version: 0.1. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 0.1.3
         
     | 
| 
       5 
5 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       6 
6 
     | 
    
         
             
            authors:
         
     | 
| 
       7 
7 
     | 
    
         
             
            - Benjamin Meichsner
         
     | 
| 
       8 
8 
     | 
    
         
             
            autorequire: 
         
     | 
| 
       9 
9 
     | 
    
         
             
            bindir: bin
         
     | 
| 
       10 
10 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       11 
     | 
    
         
            -
            date: 2018- 
     | 
| 
      
 11 
     | 
    
         
            +
            date: 2018-05-30 00:00:00.000000000 Z
         
     | 
| 
       12 
12 
     | 
    
         
             
            dependencies:
         
     | 
| 
       13 
13 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       14 
     | 
    
         
            -
              name:  
     | 
| 
      
 14 
     | 
    
         
            +
              name: docker-api
         
     | 
| 
       15 
15 
     | 
    
         
             
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
       16 
16 
     | 
    
         
             
                requirements:
         
     | 
| 
       17 
17 
     | 
    
         
             
                - - "~>"
         
     | 
| 
       18 
18 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       19 
     | 
    
         
            -
                    version: ' 
     | 
| 
      
 19 
     | 
    
         
            +
                    version: '1.33'
         
     | 
| 
       20 
20 
     | 
    
         
             
              type: :runtime
         
     | 
| 
       21 
21 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       22 
22 
     | 
    
         
             
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
       23 
23 
     | 
    
         
             
                requirements:
         
     | 
| 
       24 
24 
     | 
    
         
             
                - - "~>"
         
     | 
| 
       25 
25 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       26 
     | 
    
         
            -
                    version: ' 
     | 
| 
      
 26 
     | 
    
         
            +
                    version: '1.33'
         
     | 
| 
       27 
27 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       28 
     | 
    
         
            -
              name:  
     | 
| 
      
 28 
     | 
    
         
            +
              name: rest-client
         
     | 
| 
       29 
29 
     | 
    
         
             
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
       30 
30 
     | 
    
         
             
                requirements:
         
     | 
| 
       31 
31 
     | 
    
         
             
                - - "~>"
         
     | 
| 
       32 
32 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       33 
     | 
    
         
            -
                    version: ' 
     | 
| 
      
 33 
     | 
    
         
            +
                    version: '2.0'
         
     | 
| 
       34 
34 
     | 
    
         
             
              type: :runtime
         
     | 
| 
       35 
35 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       36 
36 
     | 
    
         
             
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
       37 
37 
     | 
    
         
             
                requirements:
         
     | 
| 
       38 
38 
     | 
    
         
             
                - - "~>"
         
     | 
| 
       39 
39 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       40 
     | 
    
         
            -
                    version: ' 
     | 
| 
      
 40 
     | 
    
         
            +
                    version: '2.0'
         
     | 
| 
       41 
41 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       42 
     | 
    
         
            -
              name:  
     | 
| 
      
 42 
     | 
    
         
            +
              name: sensu-plugin
         
     | 
| 
       43 
43 
     | 
    
         
             
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
       44 
44 
     | 
    
         
             
                requirements:
         
     | 
| 
       45 
45 
     | 
    
         
             
                - - "~>"
         
     | 
| 
       46 
46 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       47 
     | 
    
         
            -
                    version: '2. 
     | 
| 
      
 47 
     | 
    
         
            +
                    version: '2.1'
         
     | 
| 
       48 
48 
     | 
    
         
             
              type: :runtime
         
     | 
| 
       49 
49 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       50 
50 
     | 
    
         
             
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
       51 
51 
     | 
    
         
             
                requirements:
         
     | 
| 
       52 
52 
     | 
    
         
             
                - - "~>"
         
     | 
| 
       53 
53 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       54 
     | 
    
         
            -
                    version: '2. 
     | 
| 
      
 54 
     | 
    
         
            +
                    version: '2.1'
         
     | 
| 
       55 
55 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       56 
56 
     | 
    
         
             
              name: bundler
         
     | 
| 
       57 
57 
     | 
    
         
             
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
         @@ -80,6 +80,20 @@ dependencies: 
     | 
|
| 
       80 
80 
     | 
    
         
             
                - - "~>"
         
     | 
| 
       81 
81 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       82 
82 
     | 
    
         
             
                    version: '10.0'
         
     | 
| 
      
 83 
     | 
    
         
            +
            - !ruby/object:Gem::Dependency
         
     | 
| 
      
 84 
     | 
    
         
            +
              name: rspec
         
     | 
| 
      
 85 
     | 
    
         
            +
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
      
 86 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 87 
     | 
    
         
            +
                - - "~>"
         
     | 
| 
      
 88 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 89 
     | 
    
         
            +
                    version: '3.7'
         
     | 
| 
      
 90 
     | 
    
         
            +
              type: :development
         
     | 
| 
      
 91 
     | 
    
         
            +
              prerelease: false
         
     | 
| 
      
 92 
     | 
    
         
            +
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
      
 93 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 94 
     | 
    
         
            +
                - - "~>"
         
     | 
| 
      
 95 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 96 
     | 
    
         
            +
                    version: '3.7'
         
     | 
| 
       83 
97 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       84 
98 
     | 
    
         
             
              name: rubocop
         
     | 
| 
       85 
99 
     | 
    
         
             
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
         @@ -133,7 +147,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement 
     | 
|
| 
       133 
147 
     | 
    
         
             
                  version: '0'
         
     | 
| 
       134 
148 
     | 
    
         
             
            requirements: []
         
     | 
| 
       135 
149 
     | 
    
         
             
            rubyforge_project: 
         
     | 
| 
       136 
     | 
    
         
            -
            rubygems_version: 2. 
     | 
| 
      
 150 
     | 
    
         
            +
            rubygems_version: 2.7.7
         
     | 
| 
       137 
151 
     | 
    
         
             
            signing_key: 
         
     | 
| 
       138 
152 
     | 
    
         
             
            specification_version: 4
         
     | 
| 
       139 
153 
     | 
    
         
             
            summary: Scan quay.io for vulnerabilties in running docker containers.
         
     |