저는 스프링 부트 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
또한 빌드팩은 애플리케이션 런타임이 시작되기 전에
helper
的单独二进制文件(构建包映像的同一目录)执行。与 main
不同,此二进制文件被复制到最终映像中,因此您的扫描仪正确地认为映像中存在 Go 二进制文件。它是 helper
二进制文件。如果您使用 dive
查看应用程序映像,您可以看到添加 helper
스캐너는 이 바이너리를 보고 다른 것과 마찬가지로 스캔합니다. 해당 바이너리를 생성한 Golang의 버전을 바이너리에서 알 수 있으며, 거기에서 해당 바이너리가 해당 Go 버전 이상에 대해 알려진
CVE에 취약할 수 있음을 알려줍니다. 스캐너는 바이너리가 어떤 용도로 사용되는지 또는 실제로 CVE에 취약한지 여부에 대해 전혀 알지 못합니다. 어떤 CVE를 말씀하시는지 모르겠지만, Paketo 빌드팩 바이너리가 CLI라는 점을 고려하면 이 바이너리는 실행되고 일반적으로 인수/환경 변수를 읽은 다음 일부 구조화된 텍스트를 인쇄합니다. 일반적으로 서버, 네트워크 또는 HTTP가 필요하지 않습니다.
helper
二进制文件的上下文,大多数 CVE 将不适用。例如,与服务器、网络或 HTTP 相关的任何内容都是不相关的。 helper
CVE와 그 영향에 대한
질문이 있는 경우 Paketo Slack에 문의할 수 있습니다. 하지만 스캐너에 CVE 목록을 덤프하고 누군가가 모든 것을 다시 확인해줄 것이라고 기대하지 마세요. 이 프로젝트는 OSS 프로젝트이며 사람들은 시간이 허락하는 한 선의로 응답할 것입니다. 추가 도움이 필요하거나 응답 시간 보장을 원한다면 상용 빌드 패키지 제공업체와 계약하는 것을 고려해 보세요. Golang 파일은 삭제할 수 없으며 기본적으로 빌드 패키지입니다.
당신이 할 수 있는 일:
를 확인하고 필요한 변경 사항을 적용했는지 확인하세요. 이렇게 하지 않으면 매우 오래된 빌드 패키지를 갖게 되므로 확실히 많은 CVE를 얻게 됩니다.
위 내용은 Spring Boot 3 bootBuildImage를 사용하여 Golang 패키지를 빌드하시겠습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!