容器镜像扫描

扫描图像会给出容器图像的安全状态,并让我们采取行动来生成更安全的容器图像。我们应该避免安装不必要的包并使用多阶段方法。这样可以保持图像清洁和安全。图像扫描应在开发和生产环境中进行扫描图像会给出容器图像的安全状态,并让我们采取行动来生成更安全的容器图像。我们应该避免安装不必要的包并使用多阶段方法。这样可以保持图像清洁和安全。图像扫描应在开发和生产环境中进行

安装trivy

参考SBOM扫描过称安装即可

对镜像进行扫描

[root@jenkins-bj-ali-ql1 tmp]# docker image ls
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
golang              base                6739df8d6dac        4 weeks ago         5.64 MB
docker.io/alpine    latest              c059bfaa849c        19 months ago       5.59 MB
[root@jenkins-bj-ali-ql1 tmp]# trivy image 6739df8d6dac -o layer.table --exit-code 0 -s MEDIUM,HIGH,CRITICAL --skip-db-update=true -q
[root@jenkins-bj-ali-ql1 tmp]# cat layer.table

6739df8d6dac (alpine 3.15.0)
============================
Total: 23 (MEDIUM: 6, HIGH: 16, CRITICAL: 1)

┌──────────────┬────────────────┬──────────┬───────────────────┬───────────────┬────────────────────────────────────────────────────────────┐
│   Library    │ Vulnerability  │ Severity │ Installed Version │ Fixed Version │                           Title                            │
├──────────────┼────────────────┼──────────┼───────────────────┼───────────────┼────────────────────────────────────────────────────────────┤
│ busybox      │ CVE-2022-28391 │ HIGH     │ 1.34.1-r3         │ 1.34.1-r5     │ busybox: remote attackers may execute arbitrary code if    │
│              │                │          │                   │               │ netstat is used                                            │
│              │                │          │                   │               │ https://avd.aquasec.com/nvd/cve-2022-28391                 │
├──────────────┼────────────────┤          ├───────────────────┼───────────────┼────────────────────────────────────────────────────────────┤
│ libcrypto1.1 │ CVE-2022-0778  │          │ 1.1.1l-r7         │ 1.1.1n-r0     │ openssl: Infinite loop in BN_mod_sqrt() reachable when     │
│              │                │          │                   │               │ parsing certificates                                       │
│              │                │          │                   │               │ https://avd.aquasec.com/nvd/cve-2022-0778                  │
│              ├────────────────┤          │                   ├───────────────┼────────────────────────────────────────────────────────────┤
│              │ CVE-2022-4450  │          │                   │ 1.1.1t-r0     │ double free after calling PEM_read_bio_ex                  │
│              │                │          │                   │               │ https://avd.aquasec.com/nvd/cve-2022-4450                  │
│              ├────────────────┤          │                   │               ├────────────────────────────────────────────────────────────┤
│              │ CVE-2023-0215  │          │                   │               │ use-after-free following BIO_new_NDEF                      │
│              │                │          │                   │               │ https://avd.aquasec.com/nvd/cve-2023-0215                  │
│              ├────────────────┤          │                   │               ├────────────────────────────────────────────────────────────┤
│              │ CVE-2023-0286  │          │                   │               │ X.400 address type confusion in X.509 GeneralName          │
│              │                │          │                   │               │ https://avd.aquasec.com/nvd/cve-2023-0286                  │
│              ├────────────────┤          │                   ├───────────────┼────────────────────────────────────────────────────────────┤
│              │ CVE-2023-0464  │          │                   │ 1.1.1t-r2     │ Denial of service by excessive resource usage in verifying │
│              │                │          │                   │               │ X509 policy constraints...                                 │
│              │                │          │                   │               │ https://avd.aquasec.com/nvd/cve-2023-0464                  │
│              ├────────────────┤          │                   ├───────────────┼────────────────────────────────────────────────────────────┤
│              │ CVE-2023-2650  │          │                   │ 1.1.1u-r0     │ Possible DoS translating ASN.1 object identifiers          │
│              │                │          │                   │               │ https://avd.aquasec.com/nvd/cve-2023-2650                  │
│              ├────────────────┼──────────┤                   ├───────────────┼────────────────────────────────────────────────────────────┤
│              │ CVE-2022-2097  │ MEDIUM   │                   │ 1.1.1q-r0     │ AES OCB fails to encrypt some bytes                        │
│              │                │          │                   │               │ https://avd.aquasec.com/nvd/cve-2022-2097                  │
│              ├────────────────┤          │                   ├───────────────┼────────────────────────────────────────────────────────────┤
│              │ CVE-2022-4304  │          │                   │ 1.1.1t-r0     │ timing attack in RSA Decryption implementation             │
│              │                │          │                   │               │ https://avd.aquasec.com/nvd/cve-2022-4304                  │
│              ├────────────────┤          │                   ├───────────────┼────────────────────────────────────────────────────────────┤
│              │ CVE-2023-0465  │          │                   │ 1.1.1t-r2     │ Invalid certificate policies in leaf certificates are      │
│              │                │          │                   │               │ silently ignored                                           │
│              │                │          │                   │               │ https://avd.aquasec.com/nvd/cve-2023-0465                  │
├──────────────┼────────────────┼──────────┼───────────────────┼───────────────┼────────────────────────────────────────────────────────────┤
│ libretls     │ CVE-2022-0778  │ HIGH     │ 3.3.4-r2          │ 3.3.4-r3      │ openssl: Infinite loop in BN_mod_sqrt() reachable when     │
│              │                │          │                   │               │ parsing certificates                                       │
│              │                │          │                   │               │ https://avd.aquasec.com/nvd/cve-2022-0778                  │
├──────────────┤                │          ├───────────────────┼───────────────┤                                                            │
│ libssl1.1    │                │          │ 1.1.1l-r7         │ 1.1.1n-r0     │                                                            │
│              │                │          │                   │               │                                                            │
│              │                │          │                   │               │                                                            │
│              ├────────────────┤          │                   ├───────────────┼────────────────────────────────────────────────────────────┤
│              │ CVE-2022-4450  │          │                   │ 1.1.1t-r0     │ double free after calling PEM_read_bio_ex                  │
│              │                │          │                   │               │ https://avd.aquasec.com/nvd/cve-2022-4450                  │
│              ├────────────────┤          │                   │               ├────────────────────────────────────────────────────────────┤
│              │ CVE-2023-0215  │          │                   │               │ use-after-free following BIO_new_NDEF                      │
│              │                │          │                   │               │ https://avd.aquasec.com/nvd/cve-2023-0215                  │
│              ├────────────────┤          │                   │               ├────────────────────────────────────────────────────────────┤
│              │ CVE-2023-0286  │          │                   │               │ X.400 address type confusion in X.509 GeneralName          │
│              │                │          │                   │               │ https://avd.aquasec.com/nvd/cve-2023-0286                  │
│              ├────────────────┤          │                   ├───────────────┼────────────────────────────────────────────────────────────┤
│              │ CVE-2023-0464  │          │                   │ 1.1.1t-r2     │ Denial of service by excessive resource usage in verifying │
│              │                │          │                   │               │ X509 policy constraints...                                 │
│              │                │          │                   │               │ https://avd.aquasec.com/nvd/cve-2023-0464                  │
│              ├────────────────┤          │                   ├───────────────┼────────────────────────────────────────────────────────────┤
│              │ CVE-2023-2650  │          │                   │ 1.1.1u-r0     │ Possible DoS translating ASN.1 object identifiers          │
│              │                │          │                   │               │ https://avd.aquasec.com/nvd/cve-2023-2650                  │
│              ├────────────────┼──────────┤                   ├───────────────┼────────────────────────────────────────────────────────────┤
│              │ CVE-2022-2097  │ MEDIUM   │                   │ 1.1.1q-r0     │ AES OCB fails to encrypt some bytes                        │
│              │                │          │                   │               │ https://avd.aquasec.com/nvd/cve-2022-2097                  │
│              ├────────────────┤          │                   ├───────────────┼────────────────────────────────────────────────────────────┤
│              │ CVE-2022-4304  │          │                   │ 1.1.1t-r0     │ timing attack in RSA Decryption implementation             │
│              │                │          │                   │               │ https://avd.aquasec.com/nvd/cve-2022-4304                  │
│              ├────────────────┤          │                   ├───────────────┼────────────────────────────────────────────────────────────┤
│              │ CVE-2023-0465  │          │                   │ 1.1.1t-r2     │ Invalid certificate policies in leaf certificates are      │
│              │                │          │                   │               │ silently ignored                                           │
│              │                │          │                   │               │ https://avd.aquasec.com/nvd/cve-2023-0465                  │
├──────────────┼────────────────┼──────────┼───────────────────┼───────────────┼────────────────────────────────────────────────────────────┤
│ ssl_client   │ CVE-2022-28391 │ HIGH     │ 1.34.1-r3         │ 1.34.1-r5     │ busybox: remote attackers may execute arbitrary code if    │
│              │                │          │                   │               │ netstat is used                                            │
│              │                │          │                   │               │ https://avd.aquasec.com/nvd/cve-2022-28391                 │
├──────────────┼────────────────┼──────────┼───────────────────┼───────────────┼────────────────────────────────────────────────────────────┤
│ zlib         │ CVE-2022-37434 │ CRITICAL │ 1.2.11-r3         │ 1.2.12-r2     │ heap-based buffer over-read and overflow in inflate() in   │
│              │                │          │                   │               │ inflate.c via a large...                                   │
│              │                │          │                   │               │ https://avd.aquasec.com/nvd/cve-2022-37434                 │
│              ├────────────────┼──────────┤                   ├───────────────┼────────────────────────────────────────────────────────────┤
│              │ CVE-2018-25032 │ HIGH     │                   │ 1.2.12-r0     │ A flaw found in zlib when compressing (not decompressing)  │
│              │                │          │                   │               │ certain inputs                                             │
│              │                │          │                   │               │ https://avd.aquasec.com/nvd/cve-2018-25032                 │
└──────────────┴────────────────┴──────────┴───────────────────┴───────────────┴────────────────────────────────────────────────────────────┘

集成jenkins pipeline

trivy之前集成过,只是这次扫描方向不同,明显镜像层扫描是得在产物构建出后才能执行的,因此我们可以放在Package的最后面,但是我建议放在Push的最前面,因为Package行为会根据projectType变化定义不同的,而该过程则应当是一个最终复用过程

        stage('Trivy') {
            steps {
                script {
                    def exitValue = sh(script: "trivy image ${env.registry_url}/${JOB_NAME}:${BUILD_NUMBER} -o layer.table --exit-code 1 -s MEDIUM,HIGH,CRITICAL --skip-db-update=true -q", returnStatus: true)
                    if (exitValue != 0) {
                        sh "cat layer.table"
                        error "Docker layer security scan failed"
                    }                
                }
            }
        }
        stage('Push') {
            steps {
                script {
                    sh "docker push ${env.registry_url}/${JOB_NAME}:${BUILD_NUMBER}"
                }
            }
        }

其他容器镜像扫描工具
Trivy
Grype
Clair
docker scan
Aqua scan

posted @ 2023-07-12 17:05  北方姆Q  阅读(54)  评论(0编辑  收藏  举报