자동 교정
GitLab v19.1자동 교정은 취약한 의존성을 취약하지 않은 버전으로 업그레이드하는 머지 리퀘스트를 사용 가능한 버전이 있을 때 자동으로 생성합니다. 베타 로드맵 및 계획된 개선 사항은 에픽 18236을 참조하세요. 프로젝트에 Maintainer 권한이 있는 사용자가 최소 한 명 있어야 합니다.
자동 교정#
-
Tier: Ultimate
- Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated#
Status: Experiment
History
자동 교정은 취약한 의존성을 취약하지 않은 버전으로 업그레이드하는 머지 리퀘스트를 사용 가능한 버전이 있을 때 자동으로 생성합니다. 서비스 계정이 인간의 개입 없이 머지 리퀘스트를 생성하며, 이후 표준 리뷰 및 승인 프로세스를 거칩니다.
베타 로드맵 및 계획된 개선 사항은 에픽 18236을 참조하세요.
자동 교정 활성화#
사전 요구 사항:
-
프로젝트에 Maintainer 권한이 있는 사용자가 최소 한 명 있어야 합니다.
-
dependency_management_auto_remediation기능 플래그가 활성화되어 있어야 합니다. -
종속성 스캐닝이 활성화되어 있고 결과를 생성하고 있어야 합니다.
-
프로젝트에서 지원되는 패키지 관리자를 사용해야 합니다.
취약점 탐지 및 자동 교정을 트리거하려면 파이프라인을 실행하세요. 자동 교정은 수정 가능한 취약점이 탐지되면 자동으로 트리거됩니다.
자동 교정 작동 방식#
각 파이프라인 실행 후 GitLab은 알려진 수정 버전이 있는 취약점에 대한 종속성 스캔 결과를 확인합니다. 각 대상 취약점에 대해:
-
GitLab이 가장 가까운 비파괴적 업그레이드 경로(패치 또는 마이너 버전 업)를 결정합니다.
-
서비스 계정이 관련 매니페스트 파일을 업데이트하는 머지 리퀘스트를 생성합니다.
-
머지 리퀘스트는 프로젝트의 표준 승인 워크플로를 거칩니다.
실험 단계에서 GitLab은 가장 높은 심각도의 결과부터 시작하여 한 번에 세 가지 취약점을 처리합니다.
스케줄러 동시성 구성#
관리자는 Sidekiq 플릿 전체에서 동시에 실행되는 자동 교정 스케줄러 job 수를 제한할 수 있습니다.
security_update_scheduler_max_concurrency
애플리케이션 설정을 사용하여 상한값을 설정하세요. 기본값은 30이며
최대 200으로 제한됩니다. 스케줄링을 일시 중지하려면 값을 0으로 설정하세요.
지원되는 패키지 관리자#
자동 교정은 다음 패키지 관리자를 지원합니다:
| 언어 | 패키지 관리자 | 파일 |
|---|---|---|
| Ruby | Bundler | Gemfile, Gemfile.lock |
| Java | Maven | pom.xml |
| Java | Gradle | build.gradle, build.gradle.kts |
추가 에코시스템 지원이 계획되어 있습니다. 자세한 내용은 에픽 21643을 참조하세요.
알려진 이슈#
실험 단계에서:
-
오픈 머지 리퀘스트 한도: 프로젝트당 최대 세 개의 자동 교정 머지 리퀘스트가 열려 있을 수 있습니다. 기존 머지 리퀘스트가 병합되거나 닫힐 때까지 새 머지 리퀘스트는 생성되지 않습니다.
-
버전 업 범위: 패치 및 마이너 버전 업만 제안됩니다. 파괴적인 변경이 발생할 수 있는 메이저 버전 업그레이드는 시도되지 않습니다.
-
파이프라인 실행당 하나의 취약점: 각 파이프라인 실행은 수정 가능한 취약점 하나를 대상으로 합니다. 여러 수정 사항을 하나의 머지 리퀘스트로 일괄 처리하는 기능은 베타에서 계획되어 있습니다.
-
수정 불가: 취약점에 대한 비파괴적 수정 버전이 없으면 해당 결과에 대한 머지 리퀘스트가 생성되지 않습니다.