취약점 수정을 위한 Snyk 패치
패치 소개
때로는 취약점을 해결할 수 있는 직접적인 업그레이드가 없거나, 기능적인 이유(예: 업그레이드가 주요 주요 변경 사항인 경우)로 업그레이드가 불가능한 경우가 있습니다.
이러한 경우 Snyk은 패치로 코드를 보호하도록 도울 수 있습니다. 이 옵션은 로컬에 설치된 node_modules 파일을 최소한으로 수정하여 취약점을 수정합니다. 또한 @snyk/protect를 사용할 때 이 문제를 패치하도록 정책을 업데이트합니다.
패치는 현재 Node.js 프로젝트에서만 지원됩니다.
패치는 다음 시나리오에서 적용할 수 있습니다:
직접 종속성에 대해 사용 가능한 업그레이드가 없는 경우.
직접 종속성을 업그레이드하여 취약점이 없는 전이 종속성 버전으로 이동할 방법이 없는 경우.
업그레이드하면 현재 코드베이스와 패키지가 호환되지 않게 되는 경우.
패치는 소스 코드 통합 및 @snyk/protect를 통해 사용할 수 있습니다.
패치 생성 프로세스
패치는 Snyk에서 생성하고 유지 관리합니다. 패키지 소유자가 문제를 해결하기 위해 코드를 변경한 경우, Snyk의 패치는 이 공식 수정을 기반으로 하며 외형적이거나 관련 없는 변경 사항은 제거합니다. 패키지 소유자가 아직 취약점을 해결하지 않은 경우 Snyk이 처음부터 패치를 작성합니다.
출시하기 전에 패치를 확인하고 이전 버전으로 백포트(backport)하며 패치가 기능을 손상시키지 않았는지 테스트합니다.
패치는 Snyk 취약점 데이터베이스(Snyk Vulnerability Database)의 일부이므로 적용하기 전에 확인할 수 있습니다.
Snyk 패치 생성 방법 및 시기
Snyk은 영향력이 큰 취약점에 대한 패치를 생성합니다. 취약점이 많은 사용자에게 영향을 미치는 인기 패키지의 심각한 취약점인 경우 영향력이 큰 것으로 간주됩니다.
Snyk 보안 팀은 일반적으로 종속성에 추가된 수정을 백포트하여 패치를 생성합니다. 백포팅은 특정 소프트웨어 버전에 대해 빌드된 수정을 가져와 이전 버전의 소프트웨어에 적용하는 작업입니다. 이는 소프트웨어를 기능적으로 동일하게 업데이트하되 취약점에 대한 수정을 적용하여 수행됩니다. 자세한 내용은 Redhat의 보안 수정 백포팅(Backporting Security Fixes) 설명을 참조하십시오.
Snyk 보안 엔지니어가 패치를 생성한 후 팀의 다른 두 구성원이 이를 검토합니다. 패치는 다음과 같은 방법으로도 테스트됩니다:
패키지의 자동화된 테스트를 사용하여 패키지를 빌드하고 테스트합니다.
해당 패치된 패키지를 사용하는 패키지 또는 애플리케이션은 자동화된 테스트를 사용하여 테스트합니다.
사용자 정의 테스트는 Snyk 보안 팀에서 생성하고 실행합니다.
모든 패치는 커뮤니티에서 다운로드하고 검토할 수 있으며 Snyk은 모든 피드백을 환영합니다.
유지 관리되지 않는 패키지의 경우 Snyk은 패치를 생성하고 패치가 병합될 수 있도록 프로젝트에 풀 요청(pull request)을 엽니다.
Snyk CLI 사용 시 패치 작동 방식
CLI를 사용한 패치에 대한 정보는 Snyk CLI를 사용하여 취약점 수정을 참조하십시오.
소스 코드 통합 사용 시 패치 작동 방식
취약점을 수정하기 위해 패치를 사용하기로 선택하면 snyk이 종속성으로 추가되고 적용할 패치 목록이 포함된 .snyk 파일이 생성됩니다.
.snyk 파일에는 종속성에 대한 각 개별 경로의 패치 세부 정보가 포함되어 있습니다. 이는 node_modules의 여러 위치에 나타날 수 있기 때문입니다. 예:
Last updated