Spring Boot 3 bootBuildImage를 사용하여 Golang 패키지를 빌드하시겠습니까?

PHPz
풀어 주다: 2024-02-06 08:33:13
앞으로
837명이 탐색했습니다.

使用 Spring Boot 3 bootBuildImage 构建 Golang 包?

질문 내용

저는 스프링 부트 v3.1.5를 사용하고 bootBuildImage를 사용하여 이미지를 빌드하고 있습니다. 이미지를 스캔한 후 golang과 관련된 CVE를 많이 발견했습니다. 내가 아는 한, 이미지 빌드 프로세스 중에 여러 golang 빌드 패키지가 사용됩니다.

이 문제를 해결할 방법이 있나요? 이러한 패키지를 사용하지 않도록 Spring을 구성할 수 있나요?

사용된 빌드팩 구성을 시도했지만 성공하지 못했습니다. 내가 만든 이미지에 golang 관련 파일이 전혀 없도록 하고 싶습니다.


정답


아주 좋아요!

아니요, 정확하지 않습니다. Java 애플리케이션을 빌드하면 Java 관련 빌드 패키지만 사용됩니다. Go 빌드팩을 사용하지 않습니다. 빌드 출력에서 ​​사용하는 빌드 패키지 목록을 볼 수 있습니다. 이렇게 생겼습니다. 계측에 나열된 빌드팩만 호출됩니다. 으아아아 혼란스러울 수 있는 점은

모든

Paketo 빌드팩 자체가 Golang으로 작성되었다는 것입니다. 따라서 .와 같은 빌드팩 이미지를 선택한다면 이는 계측 및 빌드 중에 호출되는 것이며 패키지를 빌드하는 데 실제로 필요한 작업입니다. gcr.io/paketo-buildpacks/bellsoft-liberica,您会看到 /cnb/buildpacks/paketo-buildpacks_bellsoft-liberica/10.4.2/bin 处有一个 Go 二进制文件/main 또한 빌드팩은 애플리케이션 런타임이 시작되기 전에

Binary라는 레이어에서 수행되는 JVM 설정 구성과 같은 일부 작업을 수행하고 이를 확인합니다.

helper 的单独二进制文件(构建包映像的同一目录)执行。与 main 不同,此二进制文件被复制到最终映像中,因此您的扫描仪正确地认为映像中存在 Go 二进制文件。它是 helper 二进制文件。如果您使用 dive 查看应用程序映像,您可以看到添加 helper스캐너는 이 바이너리를 보고 다른 것과 마찬가지로 스캔합니다. 해당 바이너리를 생성한 Golang의 버전을 바이너리에서 알 수 있으며, 거기에서 해당 바이너리가 해당 Go 버전 이상에 대해 알려진

모든

CVE에 취약할 수 있음을 알려줍니다. 스캐너는 바이너리가 어떤 용도로 사용되는지 또는 실제로 CVE에 취약한지 여부에 대해 전혀 알지 못합니다. 어떤 CVE를 말씀하시는지 모르겠지만, Paketo 빌드팩 바이너리가 CLI라는 점을 고려하면 이 바이너리는 실행되고 일반적으로 인수/환경 변수를 읽은 다음 일부 구조화된 텍스트를 인쇄합니다. 일반적으로 서버, 네트워크 또는 HTTP가 필요하지 않습니다.

helper 二进制文件的上下文,大多数 CVE 将不适用。例如,与服务器、网络或 HTTP 相关的任何内容都是不相关的。 helperCVE와 그 영향에 대한

구체적인

질문이 있는 경우 Paketo Slack에 문의할 수 있습니다. 하지만 스캐너에 CVE 목록을 덤프하고 누군가가 모든 것을 다시 확인해줄 것이라고 기대하지 마세요. 이 프로젝트는 OSS 프로젝트이며 사람들은 시간이 허락하는 한 선의로 응답할 것입니다. 추가 도움이 필요하거나 응답 시간 보장을 원한다면 상용 빌드 패키지 제공업체와 계약하는 것을 고려해 보세요. Golang 파일은 삭제할 수 없으며 기본적으로 빌드 패키지입니다.

당신이 할 수 있는 일:

    빌더와 빌드팩을 최신 상태로 유지하세요. Paketo 프로젝트는 매주 새 릴리스를 발표하고 있으며 새 릴리스에 최신 수정 사항이 모두 포함될 수 있도록 Go를 적극적으로 최신 상태로 유지합니다.
  1. 보고된 CVE를 확인하세요. 최신 상태를 유지한다면 CVE가 많지 않을 것입니다. 패키지 바이너리가 빌드되는 컨텍스트(위 참조)를 고려하면 관련성이 없을 가능성이 높으므로 스캐너에서 이를 무시하도록 지시할 수 있습니다. 1. 그들은 곧 떠나야 합니다. 왜냐하면 1. )
  2. Spring Boot 빌드 도구를 사용하고 있으므로
  3. 이 공지

    를 확인하고 필요한 변경 사항을 적용했는지 확인하세요. 이렇게 하지 않으면 매우 오래된 빌드 패키지를 갖게 되므로 확실히 많은 CVE를 얻게 됩니다.

위 내용은 Spring Boot 3 bootBuildImage를 사용하여 Golang 패키지를 빌드하시겠습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:stackoverflow.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿