Snyk CLI에서 빌드 실패

snyk test 명령에는 빌드를 실패시키는 다음 옵션이 있습니다.

--severity-threshold=low|medium|high|critical 지정된 수준 이상의 취약점만 보고합니다.

--fail-on=all 업그레이드 또는 패치 가능한 취약점이 하나 이상 있는 경우 실패합니다.

--fail-on=upgradable 업그레이드 가능한 취약점이 하나 이상 있는 경우 실패합니다.

--fail-on=patchable 패치 가능한 취약점이 하나 이상 있거나 패치 또는 업그레이드 가능한 취약점이 있는 경우 실패합니다.

Snyk CLI 자체는 더 복잡한 사용 사례에서 테스트를 실패시키는 기능을 기본적으로 가지고 있지 않습니다. 여기에 더 복잡한 통과/실패 기준을 달성하는 몇 가지 방법이 있습니다.

보안 정책과 --severity-threshold 결합

보안 정책은 프로젝트가 해당 정책을 사용하는 조직에 대해 테스트되고 심각도가 특정 기준과 일치할 때 취약점의 심각도를 변경하는 기능을 제공합니다. 예를 들어 취약점의 심각도를 높음에서 낮음으로 변경할 수 있으며 --severity-threshold=medium|high 옵션과 함께 snyk test를 실행하면 이전에 높음 심각도였던 취약점이 더 이상 빌드를 실패시키지 않습니다.

circle-info

보안 정책에는 기준 일치에 사용할 수 있는 모든 속성이 없습니다. 사용 가능한 속성은 보안 정책 구성을 참조하십시오.

다음은 정책이 적용되지 않은 기본 조직에 대해 --severity-threshold=high 옵션과 함께 snyk test를 실행하는 예시입니다.

정책이 적용되지 않은 기본 조직에 대한 테스트

다음 예시는 이 특정 취약점의 심각도를 low로 낮추는 정책이 있는 조직에 대해 --severity-threshold=high 옵션과 함께 snyk test 명령을 실행하는 것을 보여줍니다. 발견된 취약점은 없습니다.

정책이 적용된 조직에 대한 테스트

보조 도구

CLI에는 오픈소스 스캔 snyk-deltasnyk-filter에 대한 보조 도구가 있습니다.

snyk-delta는 현재 테스트와 이전에 모니터링된 스냅샷 간의 취약점 차이점을 찾습니다. 이 도구는 npmjs.org에서 사용할 수 있으며 npm install -g snyk-delta를 실행하여 CI/CD 파이프라인으로 가져올 수 있습니다.

snyk-filtersnyk test JSON 출력에서 사용 가능한 데이터를 기반으로 사용자 정의 통과/실패 기준을 제공합니다. 이 도구는 npmjs.org에서 사용할 수 있으며 npm install -g snyk-filter를 실행하여 CI/CD 파이프라인으로 가져올 수 있습니다.

새로운 취약점이 도입되는 경우에만 현재 빌드 실패

snyk delta의 인라인 모드

간단한 예: snyk test --json --print-deps | snyk-delta

이 예시는 조직 및 프로젝트 좌표를 지정하여 특정 스냅샷을 가리킬 수 있습니다.

snyk test --json --print-deps | snyk-delta --baselineOrg xxx --baselineProject xxx

독립 실행형 snyk delta

snyk-delta --baselineOrg xxx --baselineProject xxx --currentOrg xxx --currentProject xxx

자세한 내용은 snyk-delta 프로젝트 GitHubarrow-up-right를 참조하십시오.

snyk filter를 사용하여 지정된 점수보다 높은 CVSS 점수에 대해 빌드 실패

snyk test --json | snyk-filter -f /path/to/example-cvss-9-or-above.yml

snyk filter를 사용한 사용자 지정 기준 및 필터링

snyk-filtersnyk test JSON 출력에서 사용 가능한 기준의 모든 조합을 사용할 수 있습니다.

빌드를 실패시키는 것과 다른 표시 기준을 가질 수도 있습니다. 이를 통해 테스트 출력의 모든 취약점을 표시하면서 특정 기준에 대해서만 실패시키는 것과 같은 작업을 수행할 수 있습니다.

예제 및 자세한 내용은 snyk-filter 프로젝트 GitHubarrow-up-right를 참조하십시오.

Last updated