- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我们正在尝试将我们的服务构建为 docker 镜像。我们在 docker 镜像中提供 flask 服务。如果我们使用 python3.7 作为基础镜像,我们会遇到很多漏洞。即使在升级版本后,仍然会报告问题。
为重现该问题,此处提供了一个基本的 docker 镜像。
FROM python:3.7
CMD ["sleep", "300"]
sudo docker build -t p37:basic-f ./Dockerfile .
sudo docker tag p37:basic $DOCKER_LOGIN_URL/repo:p37_basic
sudo docker push $DOCKER_LOGIN_URL/repo:p37_basic
当这个镜像被推送到 AWS Container registry 时,扫描报告显示有很多漏洞。
给出一个示例问题报告。 CVE-2022-2097
问题表明我们需要将 openssl 更新为 openssl 1.1.1q
。我们在本地运行镜像,发现已经安装了openssl 1.1.1n。
sudo docker run p37:basic &
sudo docker container list
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 77a25f41da01 p37:basic "sleep 6000" 15 seconds ago Up 14 seconds eager_black
sudo docker exec -it 77a25f41da01 /bin/bash
root@77a25f41da01:/# openssl version -a OpenSSL 1.1.1n 15 Mar 2022 built on: Fri Jun 24 20:22:19 2022 UTC platform: debian-amd64 options: bn(64,64) rc4(16x,int) des(int) blowfish(ptr) compiler: gcc -fPIC
-pthread -m64 -Wa,--noexecstack -Wall -Wa,--noexecstack -g -O2 -ffile-prefix-map=/build/openssl-qQYEec/openssl-1.1.1n=. -fstack-protector-strong -Wformat -Werror=format-security -DOPENSSL_USE_NODELETE -DL_ENDIAN -DOPENSSL_PIC -DOPENSSL_CPUID_OBJ -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DKECCAK1600_ASM -DRC4_ASM -DMD5_ASM -DAESNI_ASM -DVPAES_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -DX25519_ASM -DPOLY1305_ASM -DNDEBUG -Wdate-time -D_FORTIFY_SOURCE=2 OPENSSLDIR: "/usr/lib/ssl" ENGINESDIR: "/usr/lib/x86_64-linux-gnu/engines-1.1" Seeding source: os-specific root@77a25f41da01:/#
所以我们决定升级docker镜像中的openssl。
FROM python:3.7
RUN apt-get update
RUN apt-get install software-properties-common --yes
# OPENSSL
RUN apt-get update && \
apt-get install --yes --no-install-recommends wget build-essential libcurl4 && \
wget https://www.openssl.org/source/openssl-1.1.1q.tar.gz && \
tar -xvf openssl-1.1.1q.tar.gz && cd openssl-1.1.1q && \
./config --prefix=/usr/local/ssl --openssldir=/usr/local/ssl shared zlib && make && make install
RUN echo "/usr/local/ssl/lib" >> /etc/ld.so.conf.d/openssl-1.1.1q.conf
RUN cat /etc/ld.so.conf.d/openssl-1.1.1q.conf
RUN ldconfig -v
RUN mv /usr/bin/c_rehash /usr/bin/c_rehash.backup
RUN mv /usr/bin/openssl /usr/bin/openssl.backup
ENV PATH="${PATH}:/usr/local/ssl/bin"
CMD ["sleep", "6000"]
当我们在本地运行 docker 镜像并检查容器内部时,最新的 openssl 已安装。
sudo docker exec -it c3314b7efeea /bin/bash
root@c3314b7efeea:/# openssl version -a
OpenSSL 1.1.1q 5 Jul 2022
built on: Fri Aug 5 17:26:11 2022 UTC
platform: linux-x86_64
options: bn(64,64) rc4(16x,int) des(int) idea(int) blowfish(ptr)
compiler: gcc -fPIC -pthread -m64 -Wa,--noexecstack -Wall -O3 -DOPENSSL_USE_NODELETE -DL_ENDIAN -DOPENSSL_PIC -DOPENSSL_CPUID_OBJ -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DKECCAK1600_ASM -DRC4_ASM -DMD5_ASM -DAESNI_ASM -DVPAES_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -DX25519_ASM -DPOLY1305_ASM -DZLIB -DNDEBUG
OPENSSLDIR: "/usr/local/ssl"
ENGINESDIR: "/usr/local/ssl/lib/engines-1.1"
Seeding source: os-specific
root@c3314b7efeea:/#
但是当它被推送到 AWS 中的弹性容器注册表时,扫描报告中仍然报告 openssl 问题。 (我们也检查了 Google 容器注册表。只有类似的行为)
为什么修复没有反射(reflect)在扫描报告中?还是有其他方法可以修复这些漏洞?
最佳答案
将此作为解决方法发布。 2个问题中,
为什么修复没有反射(reflect)在扫描报告中?
仍然没有答案
是否有替代方法来修复这些漏洞?
- 此变通解决方案。
我们将 ubuntu:20.04 作为基础 docker 镜像,然后添加 docker 所需的文件。
这大大减少了扫描漏洞的数量。现在我们在 AWS ECR 的 docker 扫描报告中有 2 个 low 和 few 信息条目。
FROM ubuntu:20.04
RUN apt-get update
RUN apt-get install software-properties-common --yes
RUN apt-get install build-essential wget -y
RUN apt-get install python3-pip -y
RUN pip install --upgrade pip
CMD ["sleep", "300"]
这将有内置的 python3.8。
我们可以像这样使用
CMD ["python3", "testfile.py"]
或创建别名并使用 python
关于docker - 如何解决docker scan中报告的python3.7 Docker漏洞,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73253576/
我正在使用扫描仪检测设备。目前,我的条形码的值为 2345345 A1。因此,当我扫描到记事本或文本编辑器时,输出将类似于 2345345 A1,这是正确的条形码值。 问题是: 当我第一次将条形码扫描
我正在尝试在 Jenkins 的构建后部分运行 Checkmarx Scan。 在我的 Jenkins 工作步骤是--> 1st) 从 SVN Connection 获取源代码到 Checkmarx
我有以下表架构 - CREATE TABLE [dbo].[TEST_TABLE] ( [TEST_TABLE_ID] [int] IDENTITY(1,1) NOT NULL, [N
我有一个关于 postgres 表上的选择的有趣案例: advert (~2.5 million records) id serial, user_id integer (foreig
据我所知,context:component-scan 需要指定 base-package 属性。我如何配置它以扫描类路径中的所有类? 最佳答案 你不知道。那将是一场噩梦。 例如,这意味着加载所有库的
我正在测试不同的查询,我很好奇数据库如何决定使用位图堆扫描和索引扫描。 create index customers_email_idx on customers(email varchar_patt
我在使用中 Swing 不定 import java.util.Scanner; . . . Scanner scan = new Scanner(System.in); . . . Integer.
我有下表 create table log ( id bigint default nextval('log_id_seq'::regclass) not null const
所以我有一个文件要读入,我知道数据将如何列出。例如,我知道每个新行的第一个标记将是 double 。 我一直在使用 Scanner 并且只是使用 scan.nextDouble() 来读取 doubl
在这种情况下,该表有很多文本列,我需要对每一列执行(相似)搜索。我继续为这些列中的每一列创建一个 gin 索引(扩展 pg_trgm 中的 gin_trgm_ops)以加快搜索速度,实际上 yie
我有两个针对 Go 中特定表的查询 - 一个用于检索单个项目,另一个用于返回列表。第一个使用 sql.DB.QueryRow 因为它只需要检索一行,第二个使用 sql.DB.Query 返回几个不同的
添加 StructureMap-MVC3 时打包到 ASP.NET MVC 应用程序, 一个 IoC包含 Initialize 的类添加了包含以下内容的方法(由 App_Start 文件夹中的某些代码
我有以下索引: CREATE INDEX index_c_profiles_on_city_state_name_domain ON c_profiles ((data->>'state'), (da
我在 Postgres 10 中有一个包含 1700 万行和 102 列的表 union_events。我运行命令: CREATE INDEX union_events_index ON temp_s
我以为我知道 Ruby 中的 scan:就好像它在做一个单一的匹配,但对所有结果重复它并放入数组? ruby-1.9.2-p0 > "hello world".scan(/\w{2}/) => ["
我收到此错误并尝试了互联网和 stackoverlow 中可用的所有方法来解决此问题。我试图在使用 sqlx 包连接 MySQL 数据库并扫描结果后运行查询。我已经尝试过针对类似问题共享的解决方案,但
我是 spring 和 Maven 的新手。最近我构建了 spring MVC 项目并使用 maven 来管理项目结构和依赖项。 当我编写单元测试时,我遇到了一个问题,即我无法从“src/main/j
我现在正在尝试 restful api,其中列 SequenceID 不是自动增量,因为故意的,当我像这样计数时,我的问题是库 gorm countSequenceId := db.Debug().T
Scans 当客户端针对表发出扫描时,HBase会为每个区域生成一个RegionScanner对象来提供扫描请求。 该RegionScanner对象包含一个StoreScanner对象列表
我正在构建一个基于浏览器的文档扫描应用程序。我看过多家供应商提供的产品,如 dynamosoft、asprise、atalasoft 等。我对基于浏览器的文档扫描的基本问题是,这些产品中的任何一个都可
我是一名优秀的程序员,十分优秀!