Docker 이미지 취약점 수정(centos2ol.sh 사용)
7057 단어 yugabytedbcentosdockercve
취약점 감지: 도커 스캔
취약점을 확인하기 위해 여기에서 Docker 스캔을 사용하고 있습니다.
docker scan yugabytedb/yugabyte:2.15.1.0-b175
이렇게 하면 몇 가지 중요한 항목이 반환되며 CVE-2022-2526에 집중하겠습니다.
전체적으로:
Tested 252 dependencies for known vulnerabilities, found 1022 vulnerabilities.
그것은 많이입니다. 자주 업데이트되는 YugabyteDB 이미지이지만 CentOS를 기반으로 합니다.
수정 사항이 있습니까? rpm -q --변경 로그
살펴보기 위해 빠른 셸을 시작하겠습니다.
docker exec -it $(
docker run --rm -d yugabytedb/yugabyte:2.15.1.0-b175 sleep infinity
) bash -c "bash ; pkill -f '^sleep infinity$' "
이 셸에서
systemd
버전을 확인합니다.[root@74b21c4194ea yugabyte]# cat /etc/system-release
CentOS Linux release 7.9.2009 (Core)
[root@74b21c4194ea yugabyte]# rpm -q systemd
systemd-219-78.el7_9.5.x86_64
[root@74b21c4194ea yugabyte]# yum info systemd
Loaded plugins: fastestmirror, ovl
Loading mirror speeds from cached hostfile
* base: pkg.adfinis.com
* epel: mirror.nl.leaseweb.net
* extras: pkg.adfinis.com
* updates: pkg.adfinis.com
Installed Packages
Name : systemd
Arch : x86_64
Version : 219
Release : 78.el7_9.5
Size : 23 M
Repo : installed
From repo : updates
Summary : A System and Service Manager
URL : http://www.freedesktop.org/wiki/Software/systemd
License : LGPLv2+ and MIT and GPLv2+
Description : systemd is a system and service manager for Linux, compatible with
: SysV and LSB init scripts. systemd provides aggressive parallelization
: capabilities, uses socket and D-Bus activation for starting services,
: offers on-demand starting of daemons, keeps track of processes using
: Linux cgroups, supports snapshotting and restoring of the system
: state, maintains mount and automount points and implements an
: elaborate transactional dependency-based service control logic. It can
: work as a drop-in replacement for sysvinit.
이미지는 CentOS 7.9를 기반으로 하며
systemd
는 버전 219
릴리스78.el7_9.5
입니다. 위의 스캔은 취약점이 릴리스78.el7_9.5
에서 수정되었음을 나타냅니다.안타깝게도 이 CVE는 CentOS에서 아직 수정되지 않았습니다.
[root@74b21c4194ea yugabyte]# rpm -q --changelog systemd | head
* Mon Dec 06 2021 systemd maintenance team <[email protected]> - 219-78.5
- install: fix a potential crash (#1828758)
- acl-util: only set the mask if not present (#2026361)
그래서... 솔루션은 무엇입니까?
수정된 경우: Dockerfile에서 yum update -y
업데이트를 사용할 수 있는 경우 간단히
yum update
로 이미지를 빌드합니다.
mkdir -p /var/tmp/build
cd /var/tmp/build
cat > Dockerfile <<'DOCKERFILE'
FROM yugabytedb/yugabyte:2.15.1.0-b175
RUN yum update -y
DOCKERFILE
docker build -t yugabytedb/yugabyte:2.15.1.0-b175-20220831
docker scan yugabytedb/yugabyte:2.15.1.0-b175-20220831
불행하게도, 위에서 본 것처럼 제 경우에는 제가 관심을 갖고 있는 취약점이 최신 CentOS 업데이트로 수정되지 않았습니다.
모든 YugabyteDB 이미지는 새 릴리스 또는 빌드가 푸시될 때마다 업데이트되므로 아마 이 작업을 수행할 필요가 없을 것입니다.
그러나 CentOS는 수정이 지연됩니다. 새 이미지를 스캔한 결과 YugabyteDB 이미지 푸시 이후 3개의 수정된 취약점만 표시되었습니다.
Tested 252 dependencies for known vulnerabilities, found 1019 vulnerabilities.
최신 업데이트가 포함된 CentOS 호환 배포판이 필요합니다.
오라클 구조: centos2ol.sh
Oracle Linux는 더 나은 지원을 제공하는 무료 CentOS 대안입니다. CentOS에서 Oracle Linux로 이동하기 위한 빠른 스크립트를 제공합니다. 내가 하는 유일한 변경 사항은 GRUB 구성을 비활성화하는 것입니다. 새 이미지를 빌드하기 위한 Dockerfile은 다음과 같습니다.
mkdir -p /var/tmp/build
cd /var/tmp/build
cat > Dockerfile <<'DOCKERFILE'
FROM yugabytedb/yugabyte:2.15.1.0-b175
RUN yum update -y
# https://blogs.oracle.com/scoter/post/switching-from-centos-to-oracle-linux-a-hands-on-example
RUN curl -O https://raw.githubusercontent.com/oracle/centos2ol/main/centos2ol.sh
# Don't config grub in a container (will get /usr/sbin/grub2-probe: error: failed to get canonical path of `overlay')
RUN sed -e 's/grub2-mkconfig/: &/' -i centos2ol.sh
RUN bash centos2ol.sh
# already updated, but just in case
RUN yum update
DOCKERFILE
docker build -t yugabytedb/yugabyte:2.15.1.0-b175-ol7 .
docker scan yugabytedb/yugabyte:2.15.1.0-b175-ol7
대부분의 스캔된 취약점이 수정되어 훨씬 더 좋습니다.
Tested 275 dependencies for known vulnerabilities, found 81 vulnerabilities.
그리고 내 CVE는 고정된 것의 일부입니다. 남아 있는 유일한 취약점은
openssl
패키지에 있습니다. 왜 고쳐지지 않는지 확인하지 않았습니다. 어쨌든 기업에는 확인해야 할 자체 취약점 목록이 있을 수 있습니다.다음은
yugabyted
를 시작하고 모두 정상인지 확인하는 빠른 테스트입니다.docker logs -f $(
docker run --rm -d yugabytedb/yugabyte:2.15.1.0-b175-ol7 yugabyted start
)
Oracle Linux는 CentOS의 무료 대안이므로 위의 내용을 통해 Docker 이미지에 대한 최신 OS 업데이트를 쉽게 받을 수 있습니다.
Reference
이 문제에 관하여(Docker 이미지 취약점 수정(centos2ol.sh 사용)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/yugabyte/fixing-docker-image-vulnerabilities-with-centos2olsh-2ahc텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)