Java 및 Kotlin

적용 가능성 및 통합

circle-info

Java 및 Kotlin은 Snyk Code 및 Snyk 오픈소스(Open Source)에서 지원됩니다.

사용 가능한 통합:

  • SCM 가져오기

  • CLI 및 IDE: 앱 테스트 또는 모니터링

circle-info

릴리스 상태

향상된 Gradle SCM 스캔은 Early Access 단계입니다. 자세한 내용은 Maven 및 Gradle을 사용한 SCM 통합을 참조하십시오.

사용 가능한 기능:

  • pkg:maven을 사용하여 앱의 SBOM 테스트

  • pkg:maven을 사용하여 앱의 패키지 테스트

기술 사양

Snyk은 Java SE 21 버전까지의 Java 분석을 지원하며, 가능한 경우 더 최신 Java 버전의 코드도 처리할 수 있도록 설계되었습니다.

지원되는 프레임워크 및 라이브러리

Java 및 Kotlin의 경우, 다음 프레임워크 및 라이브러리가 지원됩니다:

  • Amazon AWS SDK

  • Android Standard Library

  • Apache Commons

  • Apache Tomcat

  • Apache XML

  • apache.mahou

  • bouncycastle

  • com.azure.ai.openai

  • com.google.ai.client.generativeai

  • com.google.cloud.vertexai.generativeai

  • com.google.re2j

  • com.google.gwt

  • Dropwizard

  • elasticsearch

  • FasterXML Jackson

  • Google Guava

  • grpc-java

  • hibernate

  • http4k

  • io.jsonwebtoken

  • Jakarta EE

  • Jakarta XML Services

  • Java EE

  • Java Servlet

  • Java Servlet (javax)

  • Java Server Pages

  • Java Standard Edition

  • javalin

  • Jax-RS

  • jooq

  • Kyro

  • Micronaut

  • mongo-java-driver

  • Netty

  • okhttp3

  • org.apache.hc.client5

  • org.apache.http.client

  • org.apache.sling

  • org.apache.tools.zip

  • org.codehaus.plexus

  • org.dom4j.io

  • Playframework

  • rxhttp

  • Seam logger

  • SnakeYaml

  • Spongycastle

  • Spring AI

  • Spring boot

  • Spring Web, MVC and JDBC

  • Spring WebFlux

  • Struts

  • Vaadin

  • XStream

Kotlin 전용:

  • Android Standard Library

  • com.aallam.openai

  • com.expediagroup.graphql.server

  • Javalin

  • Ktor

  • Kotlin Standard Library

  • khttp

지원되는 패키지 관리자 및 패키지 레지스트리

Snyk Code용 Java 및 Kotlin

Snyk Code와 함께 사용하는 Java 및 Kotlin의 경우, 다음 파일 형식이 지원됩니다:

  • Java: .java, .jsp, .jspx

  • Kotlin: .kt

사용 가능한 기능:

  • 보고서(Reports)

  • 사용자 정의 규칙(Custom rules)

  • 파일 간 분석(Interfile analysis) - Kotlin은 완전히 지원됨

  • 파일 간 분석(Interfile analysis) - Android는 부분적으로 지원됨

Snyk 오픈소스용 Java 및 Kotlin

Snyk 오픈소스와 함께 사용하는 Java 및 Kotlin의 경우, 다음 파일 형식이 지원됩니다:

  • Maven: pom.xml

  • Gradle: build.gradle, build.gradle.kts

Snyk 오픈소스와 함께 Java 및 Kotlin에 대해 보고서를 사용할 수 있습니다.

사용 가능한 기능:

  • 보고서(Reports)

  • 라이선스 스캐닝(License scanning)

  • Fix PRs (Gradle의 경우 Fix 조언만 제공됨)

Java 및 Kotlin에 대한 검증, 모니터링, 알림 및 게이팅(Gating)

SCM 통합의 경우, Snyk을 사용하면 머지하기 전에 코드 및 오픈 소스 패키지에 제출된 변경 사항을 검증하기 위해 PR 검사(PR Checks)를 실행할 수 있습니다. Snyk은 또한 예약된 일정에 따라 기본 브랜치를 재테스트하고 알림을 보낼 수 있습니다. 결과는 Projects 페이지에서 확인할 수 있습니다.

CI/CD 통합의 경우, Snyk은 수동적으로 모니터링하고 정책 위반에 대한 테스트 중 빌드 검사를 실패시켜 QA 게이트를 제공할 수 있습니다.

Snyk은 다음을 포함한 유연한 기능을 제공합니다:

Snyk은 Kubernetes 통합을 사용하여 프로덕션에서 사용 중인 컨테이너 이미지와 오픈 소스 또는 Linux 기반 패키지를 모니터링하여 프로덕션 애플리케이션의 알려진 취약점을 고객에게 알릴 수 있습니다. 이 기능은 엔터프라이즈(Enterprise) 플랜에서만 사용할 수 있습니다.

프로덕션 통합이 없는 경우, snyk monitor CLI 명령을 사용하여 스냅샷을 찍고 프로덕션으로 푸시되는 항목을 모니터링하십시오 (모든 플랜에서 사용 가능).

BOM에 대한 Java 지원

Maven은 함께 작동하는 것으로 알려진 종속성 버전을 중앙 집중화하기 위해 BOM(Bill of Materials) POM 파일arrow-up-right을 지원합니다.

BOM 파일에는 다음이 포함됩니다:

  • pom 패키징 유형: <packaging>pom</packaging>

  • dependencyManagement 섹션

타사 프로젝트는 종속성 관리를 쉽게 하기 위해 BOM 파일을 제공할 수 있습니다. 다음은 몇 가지 일반적인 예입니다:

BOM 파일 예시:

dependencyManagement 섹션에는 종속성 요소가 포함되어 있습니다. 각 종속성은 Maven이 전이(및 직접) 종속성에 대해 선택할 버전을 결정하기 위한 조회 참조입니다.

dependencyManagement 섹션에서 종속성을 정의하는 것은 조회 참조용으로만 사용되며, 프로젝트의 종속성 트리에 추가되지는 않습니다.

이전 BOM 예시에서 mvn dependency:tree를 실행하여 Maven이 해당 내용을 파일 자체의 종속성으로 처리하지 않음을 확인할 수 있습니다.

이 BOM은 프로젝트 POM에 부모로 가져올 수 있습니다. BOM에서 상속받으므로 log4j 버전을 지정할 필요가 없습니다:

Snyk은 BOM dependencyManagement 조회의 버전을 parent로 가져오는 프로젝트 POM에 선언된 모든 종속성에 적용합니다.

Snyk이 BOM 파일을 스캔할 때, dependencyManagement 내용은 해당 파일의 종속성으로 간주되지 않습니다. 이것들은 오직 조회용입니다.

이전 예시들에 대해, Snyk은 파일을 다음과 같이 분석하고 처리합니다:

  • BOM 파일 - Snyk은 이 파일에 종속성이 없으므로 Snyk 프로젝트를 생성하지 않습니다.

  • 프로젝트 POM - Snyk은 log4j(v1.2.12)라는 단일 종속성을 가진 프로젝트를 생성합니다. Snyk은 부모 BOM의 규칙을 적용하여 log4j의 올바른 버전을 식별합니다. 종속성 commons-logging은 프로젝트 POM에 직접 선언되지 않았으므로 포함되지 않습니다.

circle-info

BOM이 dependencyManagement 외부에 직접 종속성을 가지고 있는 경우, Snyk은 해당 BOM에 대한 프로젝트를 생성합니다.

Snyk은 또한 Fix PR 기능을 통해 취약한 패키지를 업그레이드하기 위한 권장 사항을 포함한 수정 조언을 제공합니다.

Fix PR은 이슈가 보고된 POM 파일에서 버전이 관리되는 종속성에 대해서만 생성될 수 있습니다.

버전 또는 종속성이 부모 BOM에서 관리되는 경우, Snyk이 버전을 변경하여 취약한 경로를 수정할 수 있음을 확인하더라도 수정을 적용할 수 없습니다.

보안 주제 및 모범 사례에 대한 Java 개발자를 위한 추가 리소스를 확인하십시오:

Last updated