취약점 스캔 사용 설정

이 가이드에서는 Secure Source Manager에서 취약점 스캔 기능을 사용 설정하여 보안 상황을 개선하는 방법을 설명합니다.

취약점 스캔은 소스 코드의 종속 항목에서 알려진 취약점을 자동으로 감지하여 pull 요청에 대한 각 새 커밋을 스캔합니다. 취약점은 pull 요청 뷰와 저장소 전체 보안 탭에 모두 표시됩니다.

취약점 스캔 사용 설정

저장소에 다음 역할과 설정이 사용 설정되어 있는지 확인합니다.

필요한 역할

취약점 스캔을 사용 설정하는 데 필요한 권한을 얻으려면 관리자에게 Secure Source Manager 저장소에 대한 Secure Source Manager 저장소 관리자 (roles/securesourcemanager.repoAdmin) IAM 역할을 부여해 달라고 요청하세요. 역할 부여에 대한 자세한 내용은 프로젝트, 폴더, 조직에 대한 액세스 관리를 참조하세요.

이 사전 정의된 역할에는 취약점 스캔을 사용 설정하는 데 필요한 securesourcemanager.repositories.update 권한이 포함되어 있습니다.

커스텀 역할이나 다른 사전 정의된 역할을 사용하여 이 권한을 가져올 수도 있습니다.

Secure Source Manager 역할을 부여하는 방법에 대한 자세한 내용은 IAM으로 액세스 제어 및 사용자에게 인스턴스 액세스 권한 부여를 참조하세요.

저장소 설정 업데이트

Secure Source Manager 인터페이스를 통해 저장소에 취약점 스캔을 활성화할 수 있습니다.

  1. 취약점 스캔을 사용 설정하려는 저장소로 이동합니다.
  2. 설정 아이콘을 클릭합니다.
  3. 취약점 스캔 전환 버튼을 찾습니다.
  4. 전환 버튼을 사용 위치로 클릭합니다.
  5. Update Settings(설정 업데이트) 버튼을 클릭합니다.

취약점 스캔 작업

취약점 스캔을 사용 설정하면 다음 스캔이 자동으로 수행됩니다.

  • 예약된 스캔: 모든 브랜치의 헤드 커밋, 하루에 한 번
  • pull 요청 스캔:
    • pull 요청 생성 시 새 pull 요청의 헤드 커밋
    • 푸시 시 pull 요청에 푸시된 새 커밋

코드의 종속 항목에서 발생한 취약점만 감지됩니다. 취약점 스캔은 National Vulnerability Database 및 GitHub Advisory Database를 포함하되 이에 국한되지 않는 공개 데이터베이스에 나열된 취약점을 감지합니다. 감지된 취약점에는 취약점에 대한 공개 데이터베이스 데이터의 외부 링크와 사용 가능한 경우 CVE ID가 포함됩니다.

보안 탭

취약점 스캔을 사용 설정하면 저장소의 탐색 메뉴에 보안 탭이 표시되며, 이 탭을 사용하여 최대 3년의 보관 기간 동안 스캔된 취약점을 검색할 수 있습니다.

보안 탭에는 예약된 스캔과 pull 요청 스캔의 결과가 모두 포함됩니다.

기본적으로 보안 탭의 Found In 필터는 가장 최근에 탐색한 브랜치 (또는 저장소의 기본 브랜치)로 설정됩니다. 다른 취약점을 보려면 발견 위치 필터를 조정하거나 삭제합니다.

보안 탭에는 각 취약점에 관한 다음 데이터가 포함됩니다.

  • 심각도: 공개 취약점 데이터베이스 소스에서 평가한 취약점의 보안 심각도입니다.
  • ID: 공개 CVE ID(사용 가능한 경우) 또는 GHSA ID와 같은 다른 식별자입니다. 또한 가능한 경우 취약점의 공개 데이터베이스 항목에 대한 외부 링크입니다.
  • 발견 위치: 스캔된 Git 커밋 SHA와 이 커밋이 최신 커밋인 모든 Git 브랜치, Git 태그 또는 pull 요청 목록입니다.
  • 파일: 취약한 종속 항목이 포함된 저장소 소스 파일 및 줄 번호(사용 가능한 경우)입니다.
  • 패키지: 취약점이 포함된 종속 패키지 이름 및 버전입니다. 알려진 경우 취약점을 해결하는 패키지 버전도 나열됩니다.
  • 설명: 취약점에 대한 설명입니다(제공되는 경우).
  • 감지됨: 취약점이 감지된 스캔 날짜입니다.

보안 탭에서 사용할 수 있는 필터는 다음과 같습니다.

  • 심각도: 지정된 심각도(CRITICAL, HIGH, MEDIUM, LOW)가 있는 취약점만 표시합니다.
  • 발견 위치: 지정된 Git 브랜치, 태그 또는 커밋 SHA에서 감지된 취약점만 표시합니다.
  • 파일: 지정된 소스 경로에서 감지된 취약점만 표시합니다. 하위 문자열을 허용합니다. 예를 들어 project/를 사용하여 project/ 디렉터리의 취약한 종속 항목을 필터링할 수 있습니다.
  • 취약점: ID, 설명, 영향을 받는 패키지 이름과 같은 공개 데이터를 기준으로 취약점을 검색합니다. 하위 문자열을 허용합니다.
  • 시작일 및 종료일: 지정된 날짜 이후 또는 이전에 감지된 취약점만 표시합니다. 형식: YYYY-MM-DD.

pull 요청

pull 요청 스캔이 완료되면 감지된 취약점이 pull 요청 대화 탭에 표시됩니다. 스캔은 모든 저장소 파일을 확인합니다. 풀 요청에서 수정되지 않은 파일의 취약점이 포함될 수 있습니다.

pull 요청에는 감지된 상위 취약점의 요약 보기가 표시됩니다. pull 요청의 전체 취약점 목록과 세부정보를 보려면 전체 결과 링크를 클릭하여 저장소 보안 탭에서 확인합니다.

취약점이 있어도 pull 요청이 병합되는 것을 차단하지 않습니다.

지원되는 파일 형식

다음 언어의 패키지 파일에서 종속 항목 취약점이 있는지 스캔됩니다.

지원됨
Go
자바
JavaScript
Node.js
PHP
Python
Ruby
Rust
TypeScript
.NET

다음 단계