Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Table of Contents

*이 글은 https://docs.gitlab.com/를 참조하여 작성되었습니다.

  • GitLab은 무단 액세스, 데이터 유출, 서비스 거부 등으로 이어질 수있는 보안 취약점에 대해 애플리케이션을 확인할 수 있습니다. 

  • GitLab은 병합 요청에서 취약점을 보고하므로 병합하기 전에 수정할 수 있습니다. 

  • 보안 대시 보드 프로젝트, 파이프 라인 및 그룹에서 발견된 취약점에 대한 높은 수준의 보기를 제공합니다. 

  • 위협 모니터링 페이지는 애플리케이션 환경에 대한 런타임 보안 측정을 제공합니다. 제공된 정보를 통해 위험 분석 및 치료를 즉시 시작할 수 있습니다.

    • GitLab은 다음 도구를 사용하여 프로젝트에서 발견 된 알려진 취약점을 스캔하고 보고합니다.

...

  • GitLab CI / CD를 사용하는 경우 컨테이너에 대한 취약점 정적 분석을위한 두 가지 오픈 소스 도구 인 Clair 및 klar 를 사용하여 알려진 취약점에 대한 Docker 이미지 (또는 컨테이너)를 확인할 수 있습니다 .

  • 기존 파일gitlab-ci.yml에 CI 작업을 포함 시키거나 Auto DevOps에서 제공하는 자동 컨테이너 검색을 통해 컨테이너 검색을 활용할 수 있습니다 .

  • GitLab은 컨테이너 검색 보고서를 확인하고 소스와 대상 분기 사이에서 발견 된 취약점을 비교하고 병합 요청에 대한 정보를 보여줍니다.

1. 파이프 라인에서 컨테이너 스캔을 활성화

  • docker또는 kubernetes 실행 프로그램이 있는 GitLab 러너

    • 18.09.03이상 버전이나 GitLab.com에서 공유 러너를 사용하고 있다면 러너가 실행중인 머신에 
      Docker가 설치되어 있습니다.  

    • Docker 이미지를 빌드하고 프로젝트의 컨테이너 레지스트리에 푸시합니다. 

    • 아래 정의된대로 다음과 같이 환경 변수를 지정해야 합니다.$CI_REGISTRY_IMAGE/$CI_COMMIT_REF_SLUG:$CI_COMMIT_SHA

    • .gitlab-ci.yml파일에서 아래와 같이 직접 작성할 수 있습니다.

...

  • GitLab 11.9 이상의 경우, 컨테이너 검색을 사용하려면 다음을 수행해야 합니다.

    • container_scanning CI / CD 파이프 라인에서 작업을 작성

    • 이미 빌드 된 Docker 이미지를 프로젝트의 컨테이너 레지스트리 에서 가져와 취약성을 스캔

    • 결과는 나중에 다운로드하여 분석 할 수 있는 컨테이너 검색 보고서 아티팩트로 저장됩니다. 구현 제한으로 인해 항상 최신 컨테이너 검색 아티팩트를 사용할 수 있습니다. 무대 뒤에서 GitLab Klar 분석기가 사용되고 스캔을 실행합니다.

2. 컨테이너 검색 설정 사용자 정의

  • 환경 변수를 변경하려면 의 variables 매개 변수를 사용하여 컨테이너 검색 설정을 변경할 수 있습니다. 

  • 컨테이너 변수는 환경 변수를 사용하여 구성할 수 있습니다

    • .gitlab-ci.yml

...

보안 대시 보드 그룹은 그룹 및 하위 그룹에있는 모든 프로젝트의 취약성에 대한 개요를 제공합니다.

  • 먼저 그룹의 Security 탭 아래에있는 보안

...

  • 대시 보드로

...

  • 이동 

  • 대시 보드에 있으면 맨 위에 다음에 대한 일련의 필터가 표시됩니다.

    • 심각성

    • 자신

    • 보고서 유형

    • 계획

  • 필터 오른쪽에 

...

  • Hide dismissed 토글 버튼이 표시됩니다.

  • 대시보드에는 마지막으로 성공한 프로젝트 파이프 라인에 따라 그룹에서 보안 보고서가 활성화 된 프로젝트만 표시됩니다.

...

  • 하나 이상의 필터를 선택하면 이 페이지의 결과가 필터링됩니다. Hide dismissed 토글 버튼을 비활성화하면 해제 된 취약점도 볼 수 있습니다.

  • 기본 섹션은 그룹의 모든 취약점 목록을 심각도 별로 정렬합니다. 이 목록에서 취약점의 심각성, 이름, 신뢰도 및 프로젝트의 출처를 확인할 수 있습니다.

  • 행 위로 마우스를 가져 가면 수행 할 수있는 조치가 나타납니다.

    • “More info”`

    • “Create issue”

    • “Dismiss vulnerability”

  • 목록 옆에는 프로젝트가 다양한 시점에 얼마나 많은 공개 취약점이 있는지 보여주는 타임 라인 차트가 있습니다. 30 일, 60 일, 90 일 중 기본값을 90으로 필터링 할 수 있습니다.

  • 차트 위에 마우스를 놓으면 특정 시간에 열린 취약점에 대한 자세한 내용을 볼 수 있습니다.

  • 타임 라인 차트 아래에는 발견 된 취약점의 심각도에 따라 그룹화 및 정렬 된 프로젝트 목록이 있습니다.

    • F : 1 개 이상의 "critical"

    • D : 1 개 이상의 "high"또는 "unknown"

    • C : 1 개 이상의 "medium"

    • B : 1 개 이상 "low"

    • A : 취약점 0 개

  • 취약성 테스트가 구성되지 않은 프로젝트는 목록에 없습니다. 또한 해제 된 취약점도 포함되지 않습니다.

4. 인스턴스 보안 대시 보드

  • 인스턴스 수준에서 보안 대시 보드에는 추가 한 모든 프로젝트에 존재하는 취약성이 표시됩니다. 

  • 그룹 보안 대시 보드 의 모든 기능이 포함됩니다 .

  • 페이지 상단의 메뉴 표시 줄에서 인스턴스 보안 대시 보드에 액세스 할 수 있습니다.

    • More - Security

...

5. 대시 보드에 프로젝트 추가

  • 대시 보드에 프로젝트를 추가하려면

    • 인스턴스 보안 대시 보드 페이지에서 Edit dashboard 버튼을 클릭

    • Search your projects 필드를 사용하여 하나 이상의 프로젝트를 검색하고 추가

    • Add projects 버튼을 클릭

  • 추가되면 대시 보드에 선택한 프로젝트에서 발견 된 취약점이 표시됩니다.

...

6. 대시 보드를 최신 상태로 유지

  • 보안 대시 보드는 default branch에 최신 보안 검색 결과의 정보를 표시합니다. 즉, 지점이 업데이트 될 때마다 보안 검색이 수행됩니다.

  • 기본 분기가 자주 업데이트되지 않으면 검색이 자주 실행되지 않고 새로운 취약성이 발견 될 때 보안 대시 보드의 정보가 오래될 수 있습니다.

  • 보안 대시보드의 정보가 정기적으로 업데이트 되도록하려면 매일 보안 검색을 실행 하도록 예약 된 파이프 라인을 구성하면 기본 분기 업데이트 빈도에 관계없이 보안 대시 보드에 표시되는 정보가 업데이트됩니다.

    • 이렇게하면 코드를 변경하지 않아도 보고서가 작성됩니다