PR 검사 결과 분석

PR 검사 결과

취약점을 수정하기 위해 풀 리퀘스트를 제출한 후, PR 검사는 구성된 임계값을 충족하거나 초과하는 심각도 수준의 이슈를 감지하고 보고서를 제공합니다. 보고서 상태와 결과를 검토하여 풀 리퀘스트 머지 여부를 결정하십시오.

기본 심각도 임계값은 통합 수준 또는 프로젝트 수준에서 변경할 수 있습니다.

결과 상태

통합된 SCM에서 PR 검사 결과의 상태를 확인하여 풀 리퀘스트를 머지하기 전에 해결해야 할 보안 이슈를 식별하십시오.

통합된 SCM에서 Snyk PR 검사에 대해 다음과 같은 상태 표시기가 나타날 수 있습니다.

결과 상태
설명

성공/통과 (Success/Passed)

이슈가 발견되지 않았으며 매니페스트 파일이 변경되지 않았습니다.

대기 중 (Pending)

PR 검사가 여전히 실행 중입니다.

실패/이슈 발견 (Failed/Issues found)

풀 리퀘스트에서 보안 이슈가 식별되었습니다. 이 시나리오에서는 결과 상태를 수동으로 통과(Passed)로 설정해야 합니다.

오류 (Error)

package.json과 package.lock 파일이 동기화되지 않았거나, 매니페스트 파일을 찾거나 읽지 못했습니다.

취소됨 (Canceled)

테스트 한도에 도달했습니다.

circle-info

오탐(False positive) 또는 미탐(False negative) 결과에 대해서는 PR 검사 문제 해결을 참조하십시오.

예시: PR 검사로 종속성 이슈 수정

수정 PR 트리거 및 실패 결과를 통과로 표시하는 것과 같은 특정 작업을 포함하여 전체 시나리오를 고려해 보십시오. PR 검사에서 제공하는 정보와 관련하여 이러한 작업을 수행할 수 있습니다. 이 예시는 다음과 같이 GitHub 통합에 대한 단계를 보여줍니다.

  1. 개별 종속성에 대한 수정 트리거를 수행하여 해당 버전의 취약점을 해결합니다.

  2. 수정 PR 열기를 수행하여 GitHub에서 풀 리퀘스트를 엽니다.

  3. PR 검사 결과 분석 및 상태 설정을 수행하여 풀 리퀘스트를 머지합니다.

circle-info

시작하기 전에 자동 PR 검사를 위한 필수 조건을 확인하여 Snyk이 구성되어 있고 역할이 정의되어 있는지 확인하십시오.

개별 종속성에 대한 수정 트리거

  1. Snyk 웹 UI에 로그인합니다.

  2. **프로젝트(Projects)**로 이동합니다.

  3. 프로젝트가 포함된 타겟을 확장합니다.

  4. 프로젝트 이름을 클릭하여 열고 package.json을 선택하여 오픈 소스 및 라이선스 이슈를 확인합니다.

  5. 이슈(Issues) 탭에서 종속성 또는 특정 취약점을 찾고, 수정 사항이 있는 경우 카드 하단의 X.X.X로 업그레이드(Upgrade to X.X.X) 버튼을 클릭하고 **이 취약점 수정(Fix this vulnerability)**을 선택합니다. 예를 들어, jsonwebtoken을 0.4.0 버전에서 5.0.0 버전으로 업그레이드하여 여러 취약점을 수정할 수 있습니다.

5.0.0 버전에서 발견된 인증 우회 이슈 등을 해결하기 위해 종속성 업데이트.
  1. (선택 사항) 페이지 상단의 **이러한 취약점 수정(Fix these vulnerabilities)**을 선택하여 하나의 풀 리퀘스트로 모든 종속성 취약점을 수정합니다.

수정 PR 열기

선택한 이슈를 확인하고 **수정 PR 열기(Open a Fix PR)**를 클릭하여 GitHub 통합에서 풀 리퀘스트를 엽니다.

종속성 프로젝트의 개별 이슈에 대해 수정 PR 트리거

PR 검사 결과 분석 및 상태 설정

  1. (선택 사항) GitHub의 대화(Conversation) 탭에서 Snyk Bot에 의해 생성된 풀 리퀘스트를 검토합니다.

  2. PR 검사 결과를 보여주는 대화 카드를 찾습니다. 이 예시에서는 결과가 **실패(Failed)**로 설정되어 있으며 수동으로 **통과(Passed)**로 변경됩니다.

circle-info

연관된 오픈 소스 또는 코드 분석 프로젝트에서 Snyk 웹 UI를 통해 이전에 무시된(ignored) 이슈는 이 검사에서 플래그가 지정되지 않습니다. 이는 기능 브랜치 PR 전반에 걸쳐 무시된 이슈를 반영합니다.

GitHub 대화 탭의 PR 검사 카드.
GitHub 대화 탭의 PR 검사 카드
  1. 이 이슈에 대해 검사된 파일 목록을 확장합니다.

  2. (선택 사항) **테스트 페이지 보기(View test page)**를 클릭하여 이슈 세부 정보를 확인합니다.\ \ 기술 보안 정보 및 수정 옵션에 대해 **세부 정보 더 보기(Show more detail)**를 클릭하여 취약점에 대한 전체 그림을 볼 수 있습니다.\ \ 기본 이슈 페이지로 돌아가려면 **프로젝트(Project)**를 클릭합니다.

PR 검사 결과 개요.
PR 검사 결과 개요
  1. **SCM에서 성공으로 표시(Mark as successful in SCM)**를 클릭하여 결과 상태를 변경하고 보안 이슈가 실패한 상태로 풀 리퀘스트를 머지합니다.

PR 검사 결과를 성공으로 표시.
PR 검사 결과를 성공으로 표시
circle-exclamation

이슈가 **통과(Passed)**로 표시되고 GitHub의 PR 검사 카드에서 **건너뜀(Skipped)**으로 나타납니다.

SCM 통합

GitLab

Snyk은 스캔 결과와 머지된 결과, 머지 리퀘스트 및 브랜치 파이프라인에 대한 프로젝트의 CI/CD 구성을 기반으로 머지 리퀘스트의 최신 파이프라인에 상태를 설정합니다. 이 기능은 "파이프라인이 성공해야 함(Pipelines must succeed)" 설정arrow-up-right이 활성화된 경우 보안 이슈가 있는 머지 리퀘스트를 차단합니다.

PR 검사 문제 해결

PR 검사 문제 해결에서 PR 검사 문제를 해결하거나 다시 시작하는 방법에 대한 자세한 정보를 확인할 수 있습니다.

Last updated