SAST 거짓 양성 감지
GitLab v19.5Offering: GitLab.com, GitLab Self-Managed
요약
정적 애플리케이션 보안 테스트(SAST) 스캔이 실행되면 SAST False Positive Detection Flow가 Critical 및 High 심각도 SAST 취약점을 자동으로 분석해 거짓 양성일 가능성을 판단합니다.
히스토리
- GitLab 18.7에서
enable_vulnerability_fp_detection및ai_experiment_sast_fp_detection이라는 기능 플래그와 함께 베타로 도입되었습니다. 기본적으로 활성화되어 있습니다. - GitLab 18.10에서 일반 제공되었습니다.
- 기능 플래그
ai_experiment_sast_fp_detection과enable_vulnerability_fp_detection이 GitLab 19.1에서 제거되었습니다. - 심사 및 해결 프로필 지원이 GitLab 19.4에서
triage_and_remediation_profile이라는 기능 플래그와 함께 도입되었습니다. 기본적으로 활성화되어 있습니다.
정적 애플리케이션 보안 테스트(SAST) 스캔이 실행되면 SAST False Positive Detection Flow가 Critical 및 High 심각도 SAST 취약점을 자동으로 분석해 거짓 양성일 가능성을 판단합니다. 이 감지는 GitLab 이 지원하는 SAST 분석기에서 나온 취약점에 사용할 수 있습니다.
플로 평가에는 다음이 포함됩니다.
- 신뢰도 점수: 해당 결과가 거짓 양성일 가능성을 나타내는 수치 점수.
- 설명: 코드 컨텍스트와 취약점 특성을 근거로, 해당 결과가 실제 취약점인지 아닌지에 대한 컨텍스트 기반 근거.
- 시각적 표시: 취약점 리포트에 거짓 양성 평가 결과를 보여 주는 배지.
이 감지는 각 보안 스캔이 끝난 뒤 자동으로 실행되며 수동 트리거가 필요하지 않습니다.
결과는 AI 분석을 기반으로 하므로 보안 전문가의 검토를 거쳐야 합니다.
개요는 GitLab AI-Powered SAST False Positive Detection and Remediation을 참고합니다.
클릭 데모는 SAST False Positive Detection Flow를 참고합니다.
보안 구성 프로필도 이 플로를 지원합니다. 여러 프로젝트와 그룹에서 한 번에 이 플로를 켜고 구성하려면 자동 심사 및 해결 프로필을 사용합니다.
사전 요구 사항#
- GitLab Duo Agent Platform의 사전 요구 사항을 충족합니다.
- 최상위 그룹에서 Allow foundational flows와 SAST False Positive Detection을 켭니다.
- 서비스 계정을 허용하도록 푸시 규칙을 구성합니다.
- 사용자 환경 설정에서 기본 GitLab Duo 네임스페이스를 설정합니다.
- 직접 러너를 구성하거나 프로젝트에 GitLab 호스티드 러너를 켭니다.
- 권장 사항입니다. 플로가 프로젝트의 툴체인과 의존성에 접근할 수 있도록 에이전트 구성 파일을 만듭니다.
그룹에 기반 플로 허용#
그룹의 모든 프로젝트가 기반 플로를 사용하도록 허용할 수 있습니다. 개별 프로젝트는 여전히 프로젝트 설정에서 이 기능을 활성화해야 합니다. 그룹의 모든 프로젝트에 대해 거짓 양성 감지를 허용하려면 다음 단계를 따릅니다.
- 왼쪽 사이드바에서 Search or go to를 선택하고 그룹을 찾습니다.
- Settings > GitLab Duo를 선택합니다.
- Allow foundational flows 아래에서 SAST False Positive Detection 체크박스를 선택합니다.
- Save changes를 선택합니다.
프로젝트에 대해 켜기#
사전 요구 사항:
- 프로젝트의 Security Manager, Maintainer 또는 Owner 권한.
특정 프로젝트에 대해 거짓 양성 감지를 켜려면 다음 단계를 따릅니다.
- 왼쪽 사이드바에서 Search or go to를 선택하고 프로젝트를 찾습니다.
- Settings > General을 선택합니다.
- GitLab Duo를 확장합니다.
- Turn on SAST false positive detection 토글을 켭니다.
- Save changes를 선택합니다.
그룹에 대해 거짓 양성 감지를 허용하고 프로젝트에 대해 켜면, 이 기능은 기존 SAST 스캐너와 함께 자동으로 동작합니다.
자동 감지#
거짓 양성 감지 플로는 다음 조건에서 자동으로 실행됩니다.
- 기본 브랜치에서 SAST 보안 스캔이 성공적으로 완료된 경우.
- 스캔이 Critical 또는 High 심각도 취약점을 감지한 경우.
- 프로젝트에 GitLab Duo 기능이 활성화된 경우.
분석은 백그라운드에서 이뤄지며, 처리가 끝나면 결과가 취약점 리포트에 표시됩니다.
SAST False Positive Detection Flow 실행#
기존 취약점에 대한 분석을 수동으로 트리거할 수 있습니다.
- 상단 바에서 Search or go to를 선택하고 프로젝트를 찾습니다.
- 왼쪽 사이드바에서 Secure > Vulnerability report를 선택합니다.
- 분석하려는 취약점을 선택합니다.
- 오른쪽 상단에서 AI actions를 선택한 다음 Check for false positive를 선택합니다.
GitLab Duo 분석이 실행되고 결과가 취약점 상세 페이지에 표시됩니다.
여러 취약점 분석#
히스토리
- GitLab 19.3에서
bulk_vulnerabilities_duo_workflow_api라는 기능 플래그와 함께 베타 기능으로 도입되었습니다. 기본적으로 비활성화되어 있습니다. - GitLab 19.4에서 GitLab.com 및 GitLab Self-Managed에 대해 기본적으로 활성화되었습니다.
이 기능의 제공 여부는 기능 플래그로 제어됩니다. 자세한 내용은 히스토리를 참고합니다.
여러 취약점의 거짓 양성 여부를 분석하도록 플로를 트리거할 수 있습니다.
분석 대상 심각도 수준은 다음과 같습니다.
- Critical
- High
- Medium
- Low
- Unknown
- Info
사전 요구 사항:
- 여러 취약점을 분석하려면 다음 중 하나가 필요합니다.
- 프로젝트의 Security Manager, Maintainer 또는 Owner 권한
admin_vulnerability권한이 있는 사용자 지정 역할
- 플로 진행 상황을 보려면 Developer 권한이 필요합니다.
- 왼쪽 사이드바에서 Search or go to를 선택하고 프로젝트를 찾습니다.
- Secure > Vulnerability report를 선택합니다.
- 분석하려는 각 취약점 옆의 체크박스를 선택합니다. 페이지의 모든 취약점을 선택하려면 표 헤더의 체크박스를 선택합니다.
- Select action 드롭다운 목록에서 Run SAST False Positive Detection을 선택합니다.
- Run SAST False Positive Detection을 선택합니다.
알려진 제한 사항#
- 진행 리포트에는 해결 대상이 되는 취약점 수만 표시됩니다. 취약점 10건을 선택했고 그중 3건이 대상이면 진행 리포트에는 3건만 표시됩니다.
- 한 프로젝트에서 각 플로는 한 번에 하나만 실행할 수 있습니다. 이 실행은 프로젝트에 속하므로 다른 사용자가 시작한 실행도 새 실행을 차단합니다. 같은 플로를 다시 실행하려면 진행 중인 실행이 끝날 때까지 기다립니다.
- 대량 플로 실행은 최대 1,000 개 취약점까지만 가능합니다. 이 제한은 취약점 리포트에서 선택한 취약점에 적용됩니다. 1,000 개가 넘는 취약점을 해결하려면 GraphQL을 사용합니다.
신뢰도 점수#
신뢰도 점수는 GitLab Duo 평가가 정확할 가능성을 추정한 값입니다.
- 거짓 양성 가능성 높음(80-100%): GitLab Duo가 해당 결과를 거짓 양성으로 강하게 판단합니다.
- 거짓 양성 가능성 있음(60-79%): GitLab Duo가 해당 결과를 거짓 양성으로 볼 근거가 어느 정도 있다고 판단하며, 수동 검토를 권장합니다.
- 거짓 양성 가능성 낮음(<60%): GitLab Duo가 해당 결과를 거짓 양성으로 판단하지 않습니다. 취약점을 무시하기 전에 수동 검토를 강력히 권장합니다.
거짓 양성 무시#
GitLab Duo 분석이 취약점을 거짓 양성으로 식별하면 다음 중 하나를 선택할 수 있습니다.
- 취약점 무시
- 거짓 양성 플래그 제거
취약점 무시#
- 상단 바에서 Search or go to를 선택하고 프로젝트를 찾습니다.
- 왼쪽 사이드바에서 Secure > Vulnerability report를 선택합니다.
- 무시하려는 취약점을 선택합니다.
- 오른쪽 사이드바의 Status 섹션에서 Edit를 선택합니다.
- Status 드롭다운 목록의 Dismiss as... 아래에서 False positive를 선택합니다.
- Comment 텍스트 상자에 거짓 양성으로 무시하는 이유를 입력합니다. 댓글은 필수입니다.
- Change status를 선택합니다.
해당 취약점은 무시됨으로 표시되며, 다시 발생하지 않는 한 이후 스캔에 나타나지 않습니다.
거짓 양성 플래그 제거#
거짓 양성 평가만 제거하고 취약점은 유지하려면 다음 단계를 따릅니다.
- 상단 바에서 Search or go to를 선택하고 프로젝트를 찾습니다.
- 왼쪽 사이드바에서 Secure > Vulnerability report를 선택합니다.
- 거짓 양성 플래그가 붙은 취약점을 찾습니다.
- 해당 취약점의 거짓 양성 배지 위에 마우스를 올립니다.
- Remove False Positive Flag를 선택합니다.
거짓 양성 플래그가 제거되고 FP 신뢰도 점수가 0으로 되돌아갑니다. 취약점은 리포트에 그대로 남으며 이후 스캔에서 다시 평가될 수 있습니다.
피드백 제공#
이슈 583697에 의견을 남겨 주시기 바랍니다.