InfoGrab Docs

AI로 취약점 해결

요약

GitLab Duo 취약점 해결은 보안 취약점을 자동으로 해결하는 데 도움을 줍니다. 모든 AI 기반 시스템과 마찬가지로 대규모 언어 모델이 항상 올바른 결과를 생성한다는 것을 보장할 수 없습니다. 모든 GitLab Duo 기능을 활성화하는 방법에 대해 자세히 알아보십시오.

모델 정보

GitLab Duo 취약점 해결은 보안 취약점을 자동으로 해결하는 데 도움을 줍니다.

개요 보기

책임감 있게 AI 지원 사용#

모든 AI 기반 시스템과 마찬가지로 대규모 언어 모델이 항상 올바른 결과를 생성한다는 것을 보장할 수 없습니다. 병합하기 전에 항상 제안된 변경 사항을 검토해야 합니다. 검토할 때 다음을 확인합니다:

  • 애플리케이션의 기존 기능이 보존됩니다.
  • 취약점이 조직의 표준에 따라 해결됩니다.

전제 조건#

  • 프로젝트의 구성원이어야 합니다.
  • 취약점은 지원되는 분석기의 SAST 발견이어야 합니다:
    • 모든 GitLab 지원 분석기.
    • 각 취약점에 대한 취약점 위치와 CWE 식별자를 보고하는 적절히 통합된 타사 SAST 스캐너.
  • 취약점은 지원되는 유형이어야 합니다.

모든 GitLab Duo 기능을 활성화하는 방법에 대해 자세히 알아보십시오.

취약점 해결에서 지원되는 취약점#

제안된 해결책의 품질을 보장하기 위해 취약점 해결은 특정 취약점 집합에서만 사용할 수 있습니다. 이 시스템은 취약점의 CWE(Common Weakness Enumeration) 식별자를 기반으로 취약점 해결을 제공할지 여부를 결정합니다.

현재 취약점 집합은 자동화 시스템 및 보안 전문가의 테스트를 기반으로 선택했습니다. 더 많은 유형의 취약점으로 적용 범위를 확장하기 위해 적극적으로 작업 중입니다.

취약점 해결에서 지원되는 CWE의 전체 목록 보기
  • CWE-23: 상대 경로 순회
  • CWE-73: 파일 이름 또는 경로의 외부 제어
  • CWE-78: OS 명령에 사용된 특수 요소의 부적절한 중립화('OS 명령 삽입')
  • CWE-80: 웹 페이지의 스크립트 관련 HTML 태그의 부적절한 중립화(기본 XSS)
  • CWE-89: SQL 명령에 사용된 특수 요소의 부적절한 중립화('SQL 삽입')
  • CWE-116: 부적절한 출력 인코딩 또는 이스케이프
  • CWE-118: 인덱스 가능 리소스에 대한 잘못된 액세스('범위 오류')
  • CWE-119: 메모리 버퍼 범위 내 작업의 부적절한 제한
  • CWE-120: 입력 크기를 확인하지 않고 버퍼 복사('클래식 버퍼 오버플로')
  • CWE-126: 버퍼 과다 읽기
  • CWE-190: 정수 오버플로 또는 래핑
  • CWE-200: 무권한 행위자에게 민감한 정보 노출
  • CWE-208: 관찰 가능한 타이밍 불일치
  • CWE-209: 민감한 정보가 포함된 오류 메시지 생성
  • CWE-272: 최소 권한 위반
  • CWE-287: 부적절한 인증
  • CWE-295: 부적절한 인증서 유효성 검사
  • CWE-297: 호스트 불일치를 통한 인증서의 부적절한 유효성 검사
  • CWE-305: 기본 취약점에 의한 인증 우회
  • CWE-310: 암호화 문제
  • CWE-311: 민감한 데이터의 암호화 누락
  • CWE-323: 암호화에서 논스, 키 쌍 재사용
  • CWE-327: 손상되거나 위험한 암호화 알고리즘 사용
  • CWE-328: 약한 해시 사용
  • CWE-330: 충분히 무작위적이지 않은 값 사용
  • CWE-338: 암호학적으로 약한 의사 난수 생성기(PRNG) 사용
  • CWE-345: 데이터 진위성의 불충분한 검증
  • CWE-346: 출처 유효성 검사 오류
  • CWE-352: 교차 사이트 요청 위조
  • CWE-362: 부적절한 동기화로 공유 리소스 사용 동시 실행('경쟁 조건')
  • CWE-369: 0으로 나누기
  • CWE-377: 안전하지 않은 임시 파일
  • CWE-378: 안전하지 않은 권한으로 임시 파일 생성
  • CWE-400: 제어되지 않는 리소스 소비
  • CWE-489: 활성 디버그 코드
  • CWE-521: 약한 비밀번호 요구 사항
  • CWE-539: 민감한 정보를 포함하는 영구 쿠키 사용
  • CWE-599: OpenSSL 인증서의 유효성 검사 누락
  • CWE-611: XML 외부 엔티티 참조의 부적절한 제한
  • CWE-676: 잠재적으로 위험한 함수 사용
  • CWE-704: 잘못된 유형 변환 또는 형 변환
  • CWE-754: 비정상 또는 예외 조건에 대한 부적절한 확인
  • CWE-770: 제한 또는 조절 없는 리소스 할당
  • CWE-1004: 'HttpOnly' 플래그 없는 민감한 쿠키
  • CWE-1275: 부적절한 SameSite 속성이 있는 민감한 쿠키

취약점 해결을 위해 타사 AI API와 공유되는 데이터#

다음 데이터가 타사 AI API와 공유됩니다:

  • 취약점 이름
  • 취약점 설명
  • 식별자 (CWE, OWASP)
  • 취약한 코드 줄이 포함된 전체 파일
  • 취약한 코드 줄 (줄 번호)

워크플로#

취약점 해결은 다양한 워크플로에서 사용할 수 있습니다. 다음을 수행할 수 있습니다:

  • 취약점 보고서에서 기존 취약점을 해결합니다.
  • MR 컨텍스트에서 취약점을 해결합니다.

취약점 보고서에서 기존 취약점 해결#

히스토리
  • GitLab 16.7에서 GitLab.com에서 실험으로 도입.
  • GitLab 17.3에서 베타로 변경.
  • GitLab 17.6 이상에서 GitLab Duo 애드온이 필요하도록 변경.

취약점 해결을 지원하는 취약점 찾기#

히스토리

취약점을 해결하려면:

  1. 왼쪽 사이드바에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
  2. 보안 > 취약점 보고서를 선택합니다.
  3. 선택 사항. 기본 필터를 제거하려면 지우기 ([clear])를 선택합니다.
  4. 취약점 목록 위에서 필터 표시줄을 선택합니다.
  5. 나타나는 드롭다운 목록에서 활동을 선택한 다음 GitLab Duo (AI) 카테고리에서 취약점 해결 사용 가능을 선택합니다.
  6. 필터 필드 외부를 선택합니다. 취약점 심각도 합계 및 일치하는 취약점 목록이 업데이트됩니다.
  7. 해결하려는 SAST 취약점을 선택합니다.
    • 취약점 해결을 지원하는 취약점 옆에는 파란색 아이콘이 표시됩니다.

선택한 취약점 해결#

해결을 지원하는 취약점을 선택한 후:

  1. 오른쪽 상단에서 AI로 해결을 선택합니다. 이 프로젝트가 공개 프로젝트인 경우 MR을 만들면 취약점과 제공된 해결책이 공개적으로 노출됩니다. 비공개로 MR을 만들려면 비공개 포크를 만들고 이 프로세스를 반복합니다.
  2. MR에 추가 커밋을 추가합니다. 이렇게 하면 새 파이프라인이 강제로 실행됩니다.
  3. 파이프라인이 완료된 후 파이프라인 보안 탭에서 취약점이 더 이상 나타나지 않는지 확인합니다.
  4. 취약점 보고서에서 수동으로 취약점을 업데이트합니다.

AI 수정 제안이 포함된 MR이 열립니다. 제안된 변경 사항을 검토한 다음 표준 워크플로에 따라 MR을 처리합니다.

이 기능에 대한 피드백을 이슈 476553에 제공해 주십시오.

MR에서 취약점 해결#

히스토리

MR에서 GitLab Duo 취약점 해결을 사용하여 병합 전에 취약점을 수정할 수 있습니다. 취약점 해결은 취약점 발견을 해결하는 MR 제안 댓글을 자동으로 만듭니다.

취약점 발견을 해결하려면:

  1. 왼쪽 사이드바에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
  2. Merge requests를 선택합니다.
  3. MR을 선택합니다.
    • 취약점 해결에서 지원되는 취약점 발견은 타누키 AI 아이콘 ([tanuki-ai])으로 표시됩니다.
  4. 지원되는 발견을 선택하여 보안 발견 대화 상자를 엽니다.
  5. 오른쪽 하단에서 AI로 해결을 선택합니다.

AI 수정 제안이 포함된 댓글이 MR에 열립니다. 제안된 변경 사항을 검토한 다음 표준 워크플로에 따라 MR 제안을 적용합니다.

이 기능에 대한 피드백을 이슈 476553에 제공해 주십시오.

문제 해결#

취약점 해결이 때때로 제안된 수정 사항을 생성하지 못할 수 있습니다. 일반적인 원인은 다음과 같습니다:

  • 거짓 양성 감지됨:
    • 수정 사항을 제안하기 전에 AI 모델은 취약점이 유효한지 평가합니다. 취약점이 진짜 취약점이 아니거나 수정할 가치가 없다고 판단할 수 있습니다.
    • 취약점이 테스트 코드에서 발생하는 경우 이런 일이 발생할 수 있습니다. 조직에서 테스트 코드에서 발생하는 취약점도 수정하기로 선택할 수 있지만 모델이 이것들을 거짓 양성으로 평가하는 경우가 있습니다.
    • 취약점이 거짓 양성이거나 수정할 가치가 없다고 동의하는 경우 취약점을 기각하고 일치하는 이유를 선택해야 합니다.
      • SAST 구성을 사용자 정의하거나 GitLab SAST 규칙 문제를 보고하려면 SAST 규칙을 참조하십시오.
  • 일시적이거나 예상치 못한 오류:
    • 오류 메시지에 예상치 못한 오류가 발생했습니다, 업스트림 AI 공급자 요청이 시간 초과되었습니다, 문제가 발생했습니다 또는 유사한 원인이 명시될 수 있습니다.
    • 이러한 오류는 AI 공급자 또는 GitLab Duo의 일시적인 문제로 인해 발생할 수 있습니다.
    • 새 요청이 성공할 수 있으므로 취약점을 다시 해결해 볼 수 있습니다.
    • 이러한 오류가 계속 발생하면 GitLab에 도움을 요청하십시오.
  • Resolution target could not be found in the merge request, unable to create suggestion 오류:
    • 이 오류는 대상 브랜치에서 전체 보안 스캔 파이프라인이 실행되지 않은 경우 발생할 수 있습니다. MR 문서를 참조하십시오.

AI로 취약점 해결

Tier: Ultimate
Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated
원문 보기
요약

GitLab Duo 취약점 해결은 보안 취약점을 자동으로 해결하는 데 도움을 줍니다. 모든 AI 기반 시스템과 마찬가지로 대규모 언어 모델이 항상 올바른 결과를 생성한다는 것을 보장할 수 없습니다. 모든 GitLab Duo 기능을 활성화하는 방법에 대해 자세히 알아보십시오.

모델 정보

GitLab Duo 취약점 해결은 보안 취약점을 자동으로 해결하는 데 도움을 줍니다.

개요 보기

책임감 있게 AI 지원 사용#

모든 AI 기반 시스템과 마찬가지로 대규모 언어 모델이 항상 올바른 결과를 생성한다는 것을 보장할 수 없습니다. 병합하기 전에 항상 제안된 변경 사항을 검토해야 합니다. 검토할 때 다음을 확인합니다:

  • 애플리케이션의 기존 기능이 보존됩니다.
  • 취약점이 조직의 표준에 따라 해결됩니다.

전제 조건#

  • 프로젝트의 구성원이어야 합니다.
  • 취약점은 지원되는 분석기의 SAST 발견이어야 합니다:
    • 모든 GitLab 지원 분석기.
    • 각 취약점에 대한 취약점 위치와 CWE 식별자를 보고하는 적절히 통합된 타사 SAST 스캐너.
  • 취약점은 지원되는 유형이어야 합니다.

모든 GitLab Duo 기능을 활성화하는 방법에 대해 자세히 알아보십시오.

취약점 해결에서 지원되는 취약점#

제안된 해결책의 품질을 보장하기 위해 취약점 해결은 특정 취약점 집합에서만 사용할 수 있습니다. 이 시스템은 취약점의 CWE(Common Weakness Enumeration) 식별자를 기반으로 취약점 해결을 제공할지 여부를 결정합니다.

현재 취약점 집합은 자동화 시스템 및 보안 전문가의 테스트를 기반으로 선택했습니다. 더 많은 유형의 취약점으로 적용 범위를 확장하기 위해 적극적으로 작업 중입니다.

취약점 해결에서 지원되는 CWE의 전체 목록 보기
  • CWE-23: 상대 경로 순회
  • CWE-73: 파일 이름 또는 경로의 외부 제어
  • CWE-78: OS 명령에 사용된 특수 요소의 부적절한 중립화('OS 명령 삽입')
  • CWE-80: 웹 페이지의 스크립트 관련 HTML 태그의 부적절한 중립화(기본 XSS)
  • CWE-89: SQL 명령에 사용된 특수 요소의 부적절한 중립화('SQL 삽입')
  • CWE-116: 부적절한 출력 인코딩 또는 이스케이프
  • CWE-118: 인덱스 가능 리소스에 대한 잘못된 액세스('범위 오류')
  • CWE-119: 메모리 버퍼 범위 내 작업의 부적절한 제한
  • CWE-120: 입력 크기를 확인하지 않고 버퍼 복사('클래식 버퍼 오버플로')
  • CWE-126: 버퍼 과다 읽기
  • CWE-190: 정수 오버플로 또는 래핑
  • CWE-200: 무권한 행위자에게 민감한 정보 노출
  • CWE-208: 관찰 가능한 타이밍 불일치
  • CWE-209: 민감한 정보가 포함된 오류 메시지 생성
  • CWE-272: 최소 권한 위반
  • CWE-287: 부적절한 인증
  • CWE-295: 부적절한 인증서 유효성 검사
  • CWE-297: 호스트 불일치를 통한 인증서의 부적절한 유효성 검사
  • CWE-305: 기본 취약점에 의한 인증 우회
  • CWE-310: 암호화 문제
  • CWE-311: 민감한 데이터의 암호화 누락
  • CWE-323: 암호화에서 논스, 키 쌍 재사용
  • CWE-327: 손상되거나 위험한 암호화 알고리즘 사용
  • CWE-328: 약한 해시 사용
  • CWE-330: 충분히 무작위적이지 않은 값 사용
  • CWE-338: 암호학적으로 약한 의사 난수 생성기(PRNG) 사용
  • CWE-345: 데이터 진위성의 불충분한 검증
  • CWE-346: 출처 유효성 검사 오류
  • CWE-352: 교차 사이트 요청 위조
  • CWE-362: 부적절한 동기화로 공유 리소스 사용 동시 실행('경쟁 조건')
  • CWE-369: 0으로 나누기
  • CWE-377: 안전하지 않은 임시 파일
  • CWE-378: 안전하지 않은 권한으로 임시 파일 생성
  • CWE-400: 제어되지 않는 리소스 소비
  • CWE-489: 활성 디버그 코드
  • CWE-521: 약한 비밀번호 요구 사항
  • CWE-539: 민감한 정보를 포함하는 영구 쿠키 사용
  • CWE-599: OpenSSL 인증서의 유효성 검사 누락
  • CWE-611: XML 외부 엔티티 참조의 부적절한 제한
  • CWE-676: 잠재적으로 위험한 함수 사용
  • CWE-704: 잘못된 유형 변환 또는 형 변환
  • CWE-754: 비정상 또는 예외 조건에 대한 부적절한 확인
  • CWE-770: 제한 또는 조절 없는 리소스 할당
  • CWE-1004: 'HttpOnly' 플래그 없는 민감한 쿠키
  • CWE-1275: 부적절한 SameSite 속성이 있는 민감한 쿠키

취약점 해결을 위해 타사 AI API와 공유되는 데이터#

다음 데이터가 타사 AI API와 공유됩니다:

  • 취약점 이름
  • 취약점 설명
  • 식별자 (CWE, OWASP)
  • 취약한 코드 줄이 포함된 전체 파일
  • 취약한 코드 줄 (줄 번호)

워크플로#

취약점 해결은 다양한 워크플로에서 사용할 수 있습니다. 다음을 수행할 수 있습니다:

  • 취약점 보고서에서 기존 취약점을 해결합니다.
  • MR 컨텍스트에서 취약점을 해결합니다.

취약점 보고서에서 기존 취약점 해결#

히스토리
  • GitLab 16.7에서 GitLab.com에서 실험으로 도입.
  • GitLab 17.3에서 베타로 변경.
  • GitLab 17.6 이상에서 GitLab Duo 애드온이 필요하도록 변경.

취약점 해결을 지원하는 취약점 찾기#

히스토리

취약점을 해결하려면:

  1. 왼쪽 사이드바에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
  2. 보안 > 취약점 보고서를 선택합니다.
  3. 선택 사항. 기본 필터를 제거하려면 지우기 ([clear])를 선택합니다.
  4. 취약점 목록 위에서 필터 표시줄을 선택합니다.
  5. 나타나는 드롭다운 목록에서 활동을 선택한 다음 GitLab Duo (AI) 카테고리에서 취약점 해결 사용 가능을 선택합니다.
  6. 필터 필드 외부를 선택합니다. 취약점 심각도 합계 및 일치하는 취약점 목록이 업데이트됩니다.
  7. 해결하려는 SAST 취약점을 선택합니다.
    • 취약점 해결을 지원하는 취약점 옆에는 파란색 아이콘이 표시됩니다.

선택한 취약점 해결#

해결을 지원하는 취약점을 선택한 후:

  1. 오른쪽 상단에서 AI로 해결을 선택합니다. 이 프로젝트가 공개 프로젝트인 경우 MR을 만들면 취약점과 제공된 해결책이 공개적으로 노출됩니다. 비공개로 MR을 만들려면 비공개 포크를 만들고 이 프로세스를 반복합니다.
  2. MR에 추가 커밋을 추가합니다. 이렇게 하면 새 파이프라인이 강제로 실행됩니다.
  3. 파이프라인이 완료된 후 파이프라인 보안 탭에서 취약점이 더 이상 나타나지 않는지 확인합니다.
  4. 취약점 보고서에서 수동으로 취약점을 업데이트합니다.

AI 수정 제안이 포함된 MR이 열립니다. 제안된 변경 사항을 검토한 다음 표준 워크플로에 따라 MR을 처리합니다.

이 기능에 대한 피드백을 이슈 476553에 제공해 주십시오.

MR에서 취약점 해결#

히스토리

MR에서 GitLab Duo 취약점 해결을 사용하여 병합 전에 취약점을 수정할 수 있습니다. 취약점 해결은 취약점 발견을 해결하는 MR 제안 댓글을 자동으로 만듭니다.

취약점 발견을 해결하려면:

  1. 왼쪽 사이드바에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
  2. Merge requests를 선택합니다.
  3. MR을 선택합니다.
    • 취약점 해결에서 지원되는 취약점 발견은 타누키 AI 아이콘 ([tanuki-ai])으로 표시됩니다.
  4. 지원되는 발견을 선택하여 보안 발견 대화 상자를 엽니다.
  5. 오른쪽 하단에서 AI로 해결을 선택합니다.

AI 수정 제안이 포함된 댓글이 MR에 열립니다. 제안된 변경 사항을 검토한 다음 표준 워크플로에 따라 MR 제안을 적용합니다.

이 기능에 대한 피드백을 이슈 476553에 제공해 주십시오.

문제 해결#

취약점 해결이 때때로 제안된 수정 사항을 생성하지 못할 수 있습니다. 일반적인 원인은 다음과 같습니다:

  • 거짓 양성 감지됨:
    • 수정 사항을 제안하기 전에 AI 모델은 취약점이 유효한지 평가합니다. 취약점이 진짜 취약점이 아니거나 수정할 가치가 없다고 판단할 수 있습니다.
    • 취약점이 테스트 코드에서 발생하는 경우 이런 일이 발생할 수 있습니다. 조직에서 테스트 코드에서 발생하는 취약점도 수정하기로 선택할 수 있지만 모델이 이것들을 거짓 양성으로 평가하는 경우가 있습니다.
    • 취약점이 거짓 양성이거나 수정할 가치가 없다고 동의하는 경우 취약점을 기각하고 일치하는 이유를 선택해야 합니다.
      • SAST 구성을 사용자 정의하거나 GitLab SAST 규칙 문제를 보고하려면 SAST 규칙을 참조하십시오.
  • 일시적이거나 예상치 못한 오류:
    • 오류 메시지에 예상치 못한 오류가 발생했습니다, 업스트림 AI 공급자 요청이 시간 초과되었습니다, 문제가 발생했습니다 또는 유사한 원인이 명시될 수 있습니다.
    • 이러한 오류는 AI 공급자 또는 GitLab Duo의 일시적인 문제로 인해 발생할 수 있습니다.
    • 새 요청이 성공할 수 있으므로 취약점을 다시 해결해 볼 수 있습니다.
    • 이러한 오류가 계속 발생하면 GitLab에 도움을 요청하십시오.
  • Resolution target could not be found in the merge request, unable to create suggestion 오류:
    • 이 오류는 대상 브랜치에서 전체 보안 스캔 파이프라인이 실행되지 않은 경우 발생할 수 있습니다. MR 문서를 참조하십시오.