취약점 수정 유형
통합을 통하거나 CLI로 스캔하여 하나 이상의 프로젝트를 Snyk으로 가져온 후, Snyk은 발견된 취약점을 나열합니다. 목록을 보려면 Projects로 이동하여 취약점을 보려는 프로젝트가 포함된 Target을 선택하고 프로젝트를 선택하여 문제 목록을 엽니다.
문제 목록에는 수정된 취약점이 표시되지 않습니다. 이들은 더 이상 취약점으로 간주되지 않습니다.
문제 목록의 사이드바에는 필터 그룹이 있습니다. 취약점과 관련된 필터는 다음과 같습니다.
Computed Fixability 필터를 사용하면 수정 경로에 따라 취약점을 볼 수 있습니다.
"Fixed in" Available 필터를 사용하면 발견된 취약점에 수정된 버전이 있는지 확인할 수 있습니다.
Computed Fixability 필터
Computed Fixability 필터에는 다음 값이 포함됩니다.
Fixable: 식별된 모든 문제에 대한 수정 사항이 있음을 의미하며, 모든 세부 경로에 해결 방법이 있고 문제를 수정할 수 있습니다. 지원되는 에코시스템 및 가져오기에 대해 "Fix this vulnerability" 버튼을 사용할 수 있습니다. CLI를 사용하여 가져온 프로젝트나 Fix PR이 지원되지 않는 에코시스템의 경우에는 이 옵션을 사용할 수 없습니다.
Partially fixable: 문제에 업그레이드 가능한 경로가 있음을 의미합니다. Snyk은 현재 프로젝트를 업그레이드할 수 있는 방법을 찾았습니다. 에코시스템이 npm 또는 Yarn 패키지 관리자를 사용하는 JavaScript 또는 TypeScript이고, 일부(전체는 아님) 세부 경로에 해결 방법이 있는 경우 문제는 Partially fixable이며 Partially fix this vulnerability 옵션을 사용할 수 있습니다.
No supported fix: 문제에 업그레이드 가능한 경로가 없습니다.
Fixable
JavaScript, Java, Ruby, Python 또는 .NET 에코시스템에 대해 SCM 워크플로우를 통해 가져온 Snyk 오픈소스 및 Snyk 컨테이너 프로젝트에서 Fix this vulnerability 버튼을 사용할 수 있습니다.
Fix this vulnerability 옵션은 CLI monitor 워크플로우에서는 사용할 수 없습니다.\nFix this vulnerability 옵션은 Docker 프로젝트에서는 사용할 수 없습니다.
Fix this vulnerability를 사용할 수 있는 프로젝트의 수정 가능한 문제에 대해, Snyk은 리포지토리에 대해 풀 리퀘스트를 열어 종속성을 안전한 버전으로 업데이트할 수 있습니다.
문제 카드의 Fix this vulnerability 버튼은 Snyk이 프로젝트에 대해 풀 리퀘스트를 열 수 있는지 여부를 보여줍니다. 문제 카드를 검토하여 특정 문제의 수정 가능 여부를 확인하십시오.

Partially fixable
JavaScript 또는 TypeScript 에코시스템과 npm 또는 Yarn 패키지 관리자를 사용하는 경우 취약점을 부분적으로 수정할 수 있습니다.
문제 카드의 Detailed paths 영역에서 문제에 대해 Partially fixed된 취약점을 볼 수 있습니다.
취약점을 부분적으로 수정하는 옵션은 JavaScript 및 TypeScript에서만 사용할 수 있습니다.

No supported fix
취약점 또는 라이선스 문제에 대해 No supported fix인 경우, 문제 카드에 수정 옵션이 표시되지 않습니다. 전이적(transitive) 종속성만 변경되는 업그레이드 경로는 패키지 관리자가 이를 지원하는 경우에만 수정 가능한 것으로 간주됩니다.

"Fixed in" Available 필터
"Fixed in" Available 필터에서 다음 값을 사용할 수 있습니다.
Yes: 현재 버전에 취약점이 포함되어 있지만 수정 사항이 포함된 새 버전을 사용할 수 있으며, 표시된 버전으로 업데이트하여 취약점을 제거할 수 있습니다.
No: 감지된 취약점에 대해 어떤 버전에서도 사용할 수 있는 수정 사항이 없습니다.
문제 카드에서 취약점에 대한 Fixed in 정보를 볼 수 있습니다. 이는 더 이상 취약점이 없는 패키지 버전을 나타냅니다.

문제가 수정 가능하지 않은데 왜 Fixed in이 표시됩니까?
Fixed in이 표시됩니까?시스템 어딘가에 패키지의 수정된(즉, 안전한) 버전이 존재하면 직접 종속성을 수정할 수 있습니다. 그러나 전이적 종속성을 수정하려면, 해당 전이적 종속성의 수정된 버전으로 업데이트할 수 있는 직접 종속성이 있어야 합니다. 다음은 전이적 종속성의 예입니다.

Detailed paths 아래에 해결 경로를 사용할 수 없다는 언급이 표시됩니다. 그러나 문제 카드에는 취약점이 더 최신 버전에서 Fixed in 상태임이 표시됩니다. Snyk은 이 특정 프로젝트에서 취약점이 존재하는 수준까지 도달할 능력이 없지만, 이 취약점은 No supported fix의 정의와 일치하지 않습니다.
전이적 종속성 수정
다른 구성 요소와의 관계 때문에 전이적 종속성을 자동으로 수정하거나 수정 PR을 열 수 없습니다(취약점 수정: 수정 적용 참조). 호환성 문제를 방지하기 위해 Snyk은 전이적 종속성에 대해서는 권장 사항만 제공합니다.
이 예시와 같은 전이적 종속성을 수정하려면 Snyk 취약점 데이터베이스 링크를 따르십시오.

Snyk 취약점 데이터베이스에서 더 많은 수정 정보를 위한 해결 조언을 볼 수 있습니다.

직접 종속성을 통한 전이적 종속성 수정
Snyk이 영향을 받는 전이적 종속성을 수정하는 데 사용된 것과 동일한 버전의 직접 종속성을 사용하도록 권장하는 경우, 직접 종속성을 다시 설치하여 전이적 종속성을 최신 버전으로 업데이트할 수 있습니다.
[email protected]에 의존하는 프로젝트를 가정해 보겠습니다. 이 직접 종속성에는 [email protected]라는 취약한 구성 요소(전이적 종속성)가 있습니다. Snyk은 취약한 구성 요소를 수정하기 위해 react-scripts를 5.0.1 버전으로 업데이트할 것을 권장합니다. 업데이트 후에도 취약한 패키지 loader-utils는 여전히 2.0.2 버전입니다. 이는 프로젝트의 다른 패키지가 더 높은 버전으로의 업그레이드를 방해하고 있음을 나타냅니다. [email protected] 직접 종속성을 다시 설치하면 나중에 취약한 구성 요소를 업그레이드할 수 있으므로 이 문제가 해결됩니다.
Last updated