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에 최신 보안 검색 결과의 정보를 표시합니다. 즉, 지점이 업데이트 될 때마다 보안 검색이 수행됩니다.
기본 분기가 자주 업데이트되지 않으면 검색이 자주 실행되지 않고 새로운 취약성이 발견 될 때 보안 대시 보드의 정보가 오래될 수 있습니다.
보안 대시보드의 정보가 정기적으로 업데이트 되도록하려면 매일 보안 검색을 실행 하도록 예약 된 파이프 라인을 구성하면 기본 분기 업데이트 빈도에 관계없이 보안 대시 보드에 표시되는 정보가 업데이트됩니다.
이렇게하면 코드를 변경하지 않아도 보고서가 작성됩니다