- 취약점 설명
- 취약점 해결
- 취약점 상태 값
- 취약점 기각 이유
- 취약점의 상태 변경하기
- 취약점을 위한 GitLab 이슈 생성하기
- 취약점을 GitLab 및 Jira 이슈에 연결하기
- 취약점 해결하기
- 취약점을 위한 보안 교육 활성화
- 취약점에 대한 보안 교육 보기
취약점 페이지
프로젝트의 각 취약점에는 취약점의 세부 정보를 포함한 취약점 페이지가 있습니다.
- 설명
- 감지된 일시
- 현재 상태
- 가능한 작업
- 연결된 이슈
- 작업 로그
스캐너가 취약점을 잘못 감지한 경우, 취약점 페이지 상단에 경고 메시지가 포함됩니다.
프로젝트의 기본 브랜치에서 더 이상 취약점이 감지되지 않으면 상태를 해결됨(Resolved)으로 변경해야 합니다. 이렇게 하면 나중에 실수로 재통합되었을 때 새 레코드로 다시 보고되도록 보장됩니다. 여러 취약점의 상태를 변경하려면 취약점 보고서의 활동 필터를 사용하세요.
취약점 설명
- GitLab.com의 실험으로 GitLab 16.0에 도입되었습니다.
- GitLab 16.2에서 베타 상태로 승격되었습니다.
GitLab는 대형 언어 모델을 활용하여 취약점을 요약하고, 개발자 및 보안 분석가가 취약점을 이해하고 악용 방법 및 수정 방법을 이해하는 데 도움을 줄 뿐만 아니라 제언된 완화책을 제공할 수 있습니다.
취약점 설명
GitLab Duo 취약점 설명을 사용하여 취약점을 보다 잘 이해하고 그것에 대한 가능한 완화책을 알아봅니다.
전제 조건:
- GitLab Ultimate 구독 등급이 있어야 합니다.
- 해당 프로젝트의 구성원이어야 합니다.
- 취약점이 SAST 결과(findings)이어야 합니다.
GitLab Duo 모든 기능을 활성화하는 방법에 대해 자세히 알아보세요.
취약점을 설명하려면:
- 왼쪽 사이드바에서 검색 또는 이동을 선택하여 프로젝트를 찾습니다.
- 보안 및 컴플라이언스 > 취약점 보고서를 선택합니다.
- 도구 드롭다운 디렉터리에서 SAST를 선택합니다.
- 설명을 원하는 SAST 취약점을 선택합니다.
- 취약점 페이지 하단에서 시도해 보기를 선택합니다.
응답은 페이지 오른쪽에 표시됩니다.
GitLab.com에서는 기본적으로 Google의 text-bison-001
모델을 사용합니다. 해당 모델의 성능이 저하되는 경우 대신 Anthropic의 claude
모델이 사용됩니다.
대형 언어 모델이 올바른 결과를 생성한다는 것을 보장할 수 없습니다. 설명을 사용할 때 주의하세요.
제3자 AI API와 공유되는 데이터
다음 데이터가 제3자 AI API와 공유됩니다:
- 취약점 제목 (스캐너에 따라 파일 이름이 포함될 수 있음).
- 취약점 식별자.
- 코드 블록 (취약점 레코드에 따라 “약속된 코드 함께 전송” 확인란이 선택된 경우에만 단일 및 다중 라인).
- 파일 이름.
취약점 해결
- GitLab.com의 실험으로 GitLab 16.7에 도입되었습니다.
GitLab Duo 취약점 해결을 사용하여 취약점을 자동으로 해결하는 Merge Request을 생성하세요.
GitLab.com에서 이 기능을 사용할 수 있습니다. 기본적으로 Google의 code-bison-001
모델을 사용합니다.
대형 언어 모델이 올바른 결과를 생성한다는 것을 보장할 수 없습니다. 설명을 사용할 때 주의하세요.
전제 조건:
- GitLab Ultimate 구독 등급이 있어야 합니다.
- 해당 프로젝트의 구성원이어야 합니다.
- 취약점이 SAST 결과(findings)이어야 합니다.
GitLab Duo 모든 기능을 활성화하는 방법에 대해 자세히 알아보세요.
취약점을 해결하려면:
- 왼쪽 사이드바에서 검색 또는 이동을 선택하여 프로젝트를 찾습니다.
- 보안 및 컴플라이언스 > 취약점 보고서를 선택합니다.
- 도구 드롭다운 디렉터리에서 SAST를 선택합니다.
- 해결하려는 SAST 취약점을 선택합니다.
- 취약점 페이지 상단에서 AI로 해결 드롭다운 디렉터리에서 AI로 해결을 선택합니다.
AI 해결 제안이 포함된 Merge Request이 열립니다. 제안된 변경 사항을 검토한 후 표준적인 워크플로에 따라 Merge Request을 처리하세요.
제3자 AI API와 공유되는 데이터
다음 데이터가 제3자 AI API와 공유됩니다:
- 취약점 제목 (스캐너에 따라 파일 이름이 포함될 수 있음).
- 취약점 식별자.
- 코드 블록.
- 파일 이름.
취약점 상태 값
취약점의 상태는 다음과 같을 수 있습니다:
- 감지됨: 새로 발견된 취약점의 기본 상태입니다. UI에서 “신속한 조치 필요”로 표시됩니다.
- 확인됨: 사용자가 취약점을 확인했고 정확하다고 확인했습니다.
- 기각됨: 사용자가 취약점을 확인했지만 해당 취약점이 정확하지 않거나 해결할 필요가 없는 경우에 기각했습니다. 기각된 취약점은 후속 스캔에서 감지되어도 무시됩니다.
- 해결됨: 취약점이 수정되었거나 더 이상 존재하지 않습니다. 해결된 취약점이 다시 감지되어 상태가 다시 감지됨으로 변경되면 해당 레코드가 복구되고 상태가 감지됨으로 설정됩니다.
취약점 기각 이유
- GitLab 15.11에서
기각 이유
라는 피처 플래그로 도입되었습니다.- GitLab 15.11에서 GitLab.com에서 활성화되었습니다. Self-managed 고객은 GitLab 15.11에서 이 기능을 사용하려면 지원팀에 연락하세요.
- GitLab 16.0에서 기본으로 활성화되었습니다.
취약점을 기각할 때, 다음 중 하나의 이유를 선택하여 기각하는 이유를 명확히해야 합니다:
- 허용 가능한 리스크: 취약점은 알려져 있으며 해결되거나 완화되지 않았지만 허용 가능한 비즈니스 리스크로 간주됩니다.
- 잘못된 양성: 시스템에 취약점이 존재하지 않음에도 테스트 결과가 잘못된 취약점의 존재를 잘못 보고한 오류입니다.
- 완화 제어: 조직에서 제공하는 동등하거나 비교 가능한 정보 시스템의 보호를 제공하는 관리, 운영 또는 기술적 제어(즉, 안전장치 또는 대책).
- 테스트에 사용됨: 발견된 것은 취약점이 아닌 테스트의 일부이거나 테스트 데이터임.
- 해당 없음: 취약점은 알려져 있으며 해결되거나 완화되지 않았지만 업데이트되지 않을 응용 프로그램의 일부로 간주됩니다.
취약점의 상태 변경하기
- GitLab 16.4에서
개발자
가 취약점(admin_vulnerability
)의 상태를 변경하는 기능이 중지되었습니다. 기본적으로 GitLab 17.0에서개발자
역할의 모든 권한에서admin_vulnerability
권한이 제거될 것입니다.
전제 조건:
- 프로젝트에 대해 적어도 개발자 역할이 있어야 합니다.
취약점의 상태를 변경하려면 취약점 페이지에서 다음을 수행합니다:
- 왼쪽 사이드바에서 검색 또는 이동을 선택하여 프로젝트를 찾습니다.
- 보안 > 취약점 보고서를 선택합니다.
- 취약점 설명을 선택합니다.
-
상태 드롭다운 디렉터리에서 상태를 선택한 후 상태 변경을 선택합니다.
GitLab 15.11 이상에서는 취약점의 상태를 기각함으로 변경할 때 기각 이유를 선택해야 합니다.
- 선택적으로 페이지 하단에 로그 항목에 코멘트를 추가합니다.
상태 변경의 세부사항(누가 변경했는지 및 언제 변경되었는지 포함)은 취약점의 작업 로그에 기록됩니다.
취약점을 위한 GitLab 이슈 생성하기
취약점을 해결하거나 완화하기 위한 취약점 조치를 추적하기 위해 GitLab 이슈를 생성할 수 있습니다. 취약점을 위한 GitLab 이슈를 만들려면 다음을 수행합니다:
- 왼쪽 사이드바에서 검색 또는 이동을 선택하여 프로젝트를 찾습니다.
- 보안 > 취약점 보고서를 선택합니다.
- 취약점 설명을 선택합니다.
- 이슈 생성을 선택합니다.
이슈는 취약점 보고서의 정보를 포함하여 GitLab 프로젝트에 생성됩니다.
Jira 이슈를 만들려면 취약점을 위한 Jira 이슈 생성을 참조하세요.
취약점을 GitLab 및 Jira 이슈에 연결하기
취약점을 하나 이상의 기존 GitLab 또는 Jira 이슈에 연결할 수 있습니다. 동시에 한 가지 링킹 기능만 사용할 수 있습니다. 링킹을 추가하면 취약점을 해결하거나 완화하는 이슈를 추적하는 데 도움이 됩니다.
기존 GitLab 이슈에 취약점 연결
전제 조건:
- Jira 이슈 통합이 활성화되어 있어야 합니다.
취약점을 기존의 GitLab 이슈에 연결하려면 다음을 수행합니다:
- 왼쪽 사이드바에서 검색 또는 이동을 선택하여 프로젝트를 찾습니다.
- 보안 > 취약점 보고서를 선택합니다.
- 취약점 설명을 선택합니다.
- 연결된 이슈 섹션에서 플러스 아이콘 ()을 선택합니다.
- 각각의 연결되어야 하는 이슈에 대해:
- 이슈에 링크를 붙입니다.
- 이슈의 ID(해시(
#
)로 접두사가 붙은)를 입력합니다.
- 추가를 선택합니다.
선택한 GitLab 이슈는 연결된 항목 섹션에 추가되며, 연결된 이슈 카운터가 업데이트됩니다.
취약점과 연결된 GitLab 이슈는 취약점 보고서 및 취약점의 페이지에 표시됩니다.
다음의 조건에 유의하세요:
- 취약점 페이지에 관련된 이슈가 표시되지만, 이슈 페이지에 표시되는 취약점은 없습니다.
- 한 번에 한 이슈만 한 취약점과 연결될 수 있습니다.
- 이슈는 그룹 및 프로젝트 전체에서 링크될 수 있습니다.
기존 Jira 이슈에 취약점 연결
전제 조건:
- Jira 이슈 통합이 구성되어 있으며 Jira 이슈 활성화와 취약점에서 Jira 이슈 생성 활성화 확인란이 선택되어 있어야 합니다.
기존 Jira 이슈에 취약점을 연결하려면, Jira 이슈의 설명에 다음 라인을 추가하십시오:
/-/security/vulnerabilities/<id>
<id>
는 어떤 취약점 ID든 될 수 있습니다.
하나의 설명에 다양한 ID로 여러 라인을 추가할 수 있습니다.
설명에 적절한 내용의 Jira 이슈가 관련 Jira 이슈 섹션에 추가되며, 연결된 이슈 카운터가 업데이트됩니다.
취약점과 연결된 Jira 이슈는 취약점 페이지에서만 표시됩니다.
다음의 조건에 유의하세요:
- 취약점 페이지 및 이슈 페이지에는 연결된 취약점을 보여줍니다.
- 한 이슈는 동시에 하나 이상의 취약점과 연결될 수 있습니다.
취약점 해결하기
일부 취약점에는 이미 해결책이 알려져 있습니다. 이러한 경우, 취약점 페이지에 Merge Request으로 해결 옵션이 포함됩니다.
다음 스캐너에서 이 기능을 지원합니다:
-
의존성 스캐닝.
자동 패치 생성은 Node.js 프로젝트에서만
yarn
을 사용하여 관리됩니다. 또한, FIPS 모드가 비활성화된 상태에서만 자동 패치 생성이 지원됩니다. - 컨테이너 스캐닝.
취약점을 해결하기 위해 다음 중 하나를 선택할 수 있습니다:
Merge Request으로 취약점 해결하기
취약점을 Merge Request으로 해결하려면 다음을 수행합니다:
- 왼쪽 사이드바에서 검색 또는 이동을 선택하여 프로젝트를 찾습니다.
- 보안 > 취약점 보고서를 선택합니다.
- 취약점 설명을 선택합니다.
- Merge Request으로 해결 드롭다운 디렉터리에서 Merge Request으로 해결을 선택합니다.
취약점을 해결하기 위한 패치가 적용된 Merge Request이 생성됩니다. 표준 작업 흐름에 따라 Merge Request을 처리합니다.
매뉴얼으로 취약점 해결하기
GitLab이 취약점을 해결하기 위해 생성한 패치를 매뉴얼으로 적용하려면:
- 왼쪽 사이드바에서 검색 또는 이동을 선택하여 프로젝트를 찾습니다.
- 보안 > 취약점 보고서를 선택합니다.
- 취약점 설명을 선택합니다.
- Merge Request으로 해결 드롭다운 디렉터리에서 해결 패치 다운로드를 선택합니다.
- 로컬 프로젝트에서 패치 생성에 사용된 커밋이 체크아웃된 것을 확인합니다.
-
git apply remediation.patch
명령을 실행합니다. - 변경사항을 확인하고 브랜치에 커밋합니다.
- 변경사항을 본 브랜치에 적용하기 위한 Merge Request을 생성합니다.
- 표준 작업 흐름에 따라 Merge Request을 처리합니다.
취약점을 위한 보안 교육 활성화
보안 교육을 통해 개발자가 취약점을 수정하는 방법을 배울 수 있습니다. 개발자는 감지된 취약점과 관련된 선택한 교육 공급업체의 보안 교육을 볼 수 있습니다.
프로젝트에서 취약점을 위한 보안 교육을 활성화하려면:
- 왼쪽 사이드바에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
- 보안 > 보안 구성을 선택합니다.
- 탭 표시줄에서 취약점 관리를 선택합니다.
- 보안 교육 공급업체를 활성화하려면 토글을 켭니다.
각 통합은 취약점 식별자(예: CWE 또는 OWASP) 및 언어를 보안 교육 공급업체에 제출합니다. 고려된 링크는 GitLab 취약점에 나타납니다.
취약점에 대한 보안 교육 보기
보안 교육이 활성화되어 있으면 취약점 페이지에는 검출된 취약점과 관련된 교육 링크가 포함될 수 있습니다. 교육의 가용성은 활성화된 교육 공급업체가 특정 취약점과 일치하는 콘텐츠를 가지고 있는지에 따라 달라집니다. 교육 콘텐츠는 취약점 식별자를 기반으로 요청됩니다. 취약점에 주어진 식별자는 하나의 취약점에서 다음 취약점으로 다양하며 사용 가능한 교육 콘텐츠는 공급업체마다 다릅니다. 일부 취약점에는 교육 콘텐츠가 표시되지 않을 수 있습니다. CWE가 있는 취약점이 교육 결과를 반환할 가능성이 가장 높습니다.
취약점에 대한 보안 교육을 보려면:
- 왼쪽 사이드바에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
- 보안 > 취약점 보고서를 선택합니다.
- 보안 교육을 보려는 취약점을 선택합니다.
- 교육 보기를 선택합니다.