소개하다
저는 Kubernetes 클러스터와 관련된 일련의 프로젝트를 통해 취약점 수를 줄이려고 노력하고 있는데, 관련된 프로세스 중 하나가 이미지를 강화하는 것입니다. 이를 위해 저는 현재 모든 잠재적인 취약점을 강조하기 위해 Twistlock을 활용하고 있으며 현재 모든 높은/중요한 취약점과 심각한 취약점을 제거하려고 노력하고 있습니다.
Twistlock의 대시보드에 따르면 취약한 패키지 중 하나는 다음과 관련이 있습니다.SQLite& 다른 관련 항목libxml2. 가능하다면 해당 항목도 제거하고 싶습니다.버스, 이 시점에서는 이 문제를 어떻게 해결해야 할지 잘 모르겠습니다.
프로세스
지금까지 나는 CentOS를 사용하고 있기 때문에 위에서 언급한 패키지를 처리하기 위해 상당히 원시적인 프로세스를 사용하려고 노력하고 있으므로 dockerfile에서 다음 명령을 실행합니다.
## Use the base image.
FROM base-img
## Utilise root for package management.
USER root
RUN yum update
RUN yum clean all
RUN yum remove sqlite
RUN yum remove libxml2
## Run as non root user.
USER jboss
## Now to remove yum.
RUN rpm -e $(rpm -qa '*yum*')
## etc.
그러나 이로 인해 docker build 명령을 실행하려고 할 때와 같은 몇 가지 오류가 발생합니다.
...
Error: Trying to remove "systemd", which is protected
Error: Trying to remove "yum", which is protected
...
결론적으로
Linux 전문가의 도움이 필요하다고 생각하시나요? 이 프로젝트의 요구 사항은 최대한의 보안을 보장하는 것이므로 가능한 한 많은 잠재적인 위협을 제거하려고 합니다.거의애플리케이션 계층이 식별되었습니다. 지금은 OS 계층을 조사하고 있으며 곧 네트워크 계층도 조사할 예정입니다. 누구든지 이러한 위협을 무력화하는 방법에 대한 의견이나 지침을 제공해 주시면 매우 감사하겠습니다.
부인 성명
불행하게도 저는 Linux 전문가와는 거리가 멀고 기껏해야 중급 수준이므로 제가 놓친 부분이 있으면 양해해 주시기 바랍니다. 나는 또한SO에 대한 질문, 이는 단지 JBoss와 더 관련이 있을 뿐입니다. 이 문제를 해결하는 데 도움을 주실 수 있는 분이 계시다면 크게 감사하겠습니다.
답변1
귀하의 프로세스에는 (까다롭지는 않지만) 꽤 어렵게 만드는 몇 가지 문제가 있습니다.
큰 기본 이미지로 시작합니다.
jboss/wildfly
, 기반jboss/base-jdk:11
, 기반jboss/base
, 을 기반으로 합니다centos:7
. 기본 이미지를 정리하는 것은 어렵습니다. 콘텐츠가 너무 많은 이미지로 시작한 다음 제거하는 것보다 필요한 모든 것이 없는 이미지로 시작하여 추가하는 것이 훨씬 쉽습니다. 내가 사용하는 CentOS 7을 기반으로 한 멋지고 최소한의 이미지는 없습니다.UBI 기본 이미지하지만 귀하의 상황에 맞지 않을 수도 있습니다.모든 CVE에는 해결해야 할 취약점이 반영되어 있다고 가정합니다. CVE는 단지 고유한 식별자일 뿐입니다. 실제 취약점을 나타내야 하지만 항상 그런 것은 아니며, 설사 발생하더라도 취약점이 귀하의 상황과 관련이 없을 수도 있습니다. 예를 들어,CVE-2017-15412XPath 확장 기능이 포함되어 있습니다.취약성XPath 확장 기능을 설정하고 사용자 제어 입력에 액세스할 수 있도록 하는 프로그램에서
libxml2
최신 버전의 do에는libxml2
모든 관련 취약점을 방지하는 수정 사항이 포함되어 있습니다 . 하지만 처음에 취약한 프로그램을 사용하는 경우에만 필요합니다.
취약점을 평가하고 해결하려면 많은 리소스가 필요하므로 대부분의 사람들은 이를 위해 공급자에게 의존합니다. 일반적으로 기본 이미지를 구축하는 배포판을 생성하는 사람, 기본 이미지를 구축하는 사람(해당하는 경우) 및 아마도 인프라를 호스팅하는 사람들일 수도 있습니다. CentOS 7은 여전히 보안 업데이트를 받고 있지만 Twistlock 대시보드에 표시된 취약점이 패치되지 않았다는 사실은 해당 취약점이 해결해야 할 만큼 중요하지 않다는 것을 의미합니다. 물론 이것은 아니다.보장하다(지불한 만큼 얻습니다.) 그러나 CentOS를 맹목적으로 신뢰하지 않으려면 Twistlock도 맹목적으로 신뢰해서는 안 됩니다. 자체 보안 평가를 수행해야 합니다.