...
GitLab은 무단 액세스, 데이터 유출, 서비스 거부 등으로 이어질 수있는 수 있는 보안 취약점에 대해 애플리케이션을 확인할 수 있습니다.
GitLab은 병합 요청에서 취약점을 보고하므로 병합하기 전에 수정할 수 있습니다.
보안 대시보드 프로젝트, 파이프 라인 및 그룹에서 발견된 취약점에 대한 높은 수준의 보기를 제공합니다.
위협 모니터링 페이지는 애플리케이션 환경에 대한 런타임 보안 측정을 제공합니다. 제공된 정보를 통해 위험 분석 및 치료를 즉시 시작할 수 있습니다.
GitLab은 다음 도구를 사용하여 프로젝트에서 발견 된 알려진 취약점을 스캔하고 보고합니다.
...
GitLab CI / CD를 사용하는 경우 컨테이너에 대한 취약점 정적 분석을위한 두 가지 오픈 소스 도구 인 Clair 및 klar 를 사용하여 알려진 취약점에 대한 Docker 이미지(또는 컨테이너)를 확인할 수 있습니다 있습니다.
기존 파일
gitlab-ci.yml
에 CI 작업을 포함 시키거나 Auto DevOps에서 제공하는 자동 컨테이너 검색을 통해 컨테이너 검색을 활용할 수 있습니다 있습니다.GitLab은 컨테이너 검색 보고서를 확인하고 소스와 대상 분기 사이에서 발견 된 발견된 취약점을 비교하고 병합 요청에 대한 정보를 보여줍니다.
...
환경 변수를 변경하려면 의
variables
매개 변수를 사용하여 컨테이너 검색 설정을 변경할 수 있습니다.컨테이너 변수는 환경 변수를 사용하여 구성할 수 있습니다.
.gitlab-ci.yml
환경 변수 | 기술 | 기본 |
---|---|---|
KLAR_TRACE | klar에서 자세한 출력을 사용하려면 true로 설정 |
|
CLAIR_TRACE | clair 서버 프로세스에서 자세한 출력을 사용하려면 true로 설정 |
|
DOCKER_USER | 인증이 필요한 Docker 레지스트리에 액세스 하기위한 사용자 이름 |
|
DOCKER_PASSWORD | 인증이 필요한 Docker 레지스트리에 액세스 하기위한 비밀번호 |
|
CLAIR_OUTPUT | 심각도 수준 임계값이 이상의 심각도를 가진 취약점이 출력됩니다. 지원 하는 설정값은 |
|
REGISTRY_INSECURE | Klar가 안전하지 않은 레지스트리에 액세스하도록 허용 |
|
DOCKER_INSECURE | Klar가 잘못된 (또는 자체 서명된) SSL 인증서가 있는 HTTPS를 사용하여 보안 Docker 레지스트리에 액세스하도록 허용 |
|
CLAIR_VULNERABILITIES_DB_URL | ( |
|
CLAIR_DB_CONNECTION_STRING | 취약성 정의 데이터베이스를 호스팅 하는 PostgreSQL 서버에 대한 연결 문자열 을 나타내며 이미지를 로컬로 실행하지 않는 한 변경해서는 안됨. 연결 문자열의 호스트 값은 템플릿 파일 |
|
CI_APPLICATION_REPOSITORY | 스캔 할 이미지의 Docker 리포지토리 URL |
|
CI_APPLICATION_TAG | 스캔 할 이미지의 Docker 리포지토리 태그 |
|
CLAIR_DB_IMAGE | 취약점 정의를 호스팅하는 PostgreSQL 서버의 Docker 이미지 이름 및 태그, 통합 테스트 목적으로 일관된 취약성 세트를 제공하거나 온 프레미스 오프라인 설치를 위해 로컬로 호스팅 된 취약성 데이터베이스를 참조하기 위해이 값을 특정 버전으로 대체하는 것이 유용 할 수 있습니다. |
|
CLAIR_DB_IMAGE_TAG | ( |
|
DOCKERFILE_PATH | Dockerfile 수정 사항을 생성하는 데 사용될 경로 입니다. 기본적으로 스캐너는 Dockerfile 프로젝트의 루트 디렉토리에 이름이 지정된 파일을 검색하므로 이 변수는 Dockerfile하위 디렉토리와 같은 비표준 위치에 있는 경우에만 구성해야 합니다. |
|
ADDITIONAL_CA_CERT_BUNDLE | 신뢰할 수 있는 CA 인증서 번들 |
...
표시된 종속성은 이름별로 정렬됩니다. 또한 설치된 패키지 또는 알려진 취약점의 심각도 별로 정렬 할 수 있습니다.
종속성에 알려진 취약점이있는 경우 해당 종속성의
Status
셀을 클릭하여 볼 수 있습니다. 그러면 각 취약점의 심각도와 설명이 아래에 표시됩니다.Vulnerable components
탭 아래 에 알려진 취약점이있는 종속성 만 표시 하는 두 번째 목록이 있습니다 있습니다. 없는
없는 경우이 탭은 비활성화됩니다.필드 별 설명
Field | Description |
---|---|
Status | 종속성에 알려진 취약점이 있는지 여부를 표시 |
Component | 의존성 이름 |
Version | 프로젝트가 사용하는 종속성의 정확한 locked 버전 |
Packager | 패키지를 설치하는데 사용된 패키지 |
Location | 종속성을 선언한 프로젝트의 패키지 프로그램 특정 잠금 파일에 댛나 링크 |
License | 종속성의 소프트웨어 라이센스에 대한 링크 |
...
종속성 검색 작업을 실행하려면 기본적으로 권한 모드에서
docker
또는kubernetes
실행 프로그램이 실행중인 GitLab Runner가 필요 합니다필요합니다. GitLab.com에서 공유 러너를 사용하는 경우 기본적으로 활성화됩니다.
...
환경 변수를 통해 종속성 스캔 설정을 변경할 수 있습니다 있습니다.
.gitlab-ci.yml
파일에variables
매개변수를 사용하여 전역 종속성 검색 설정을 구성
...
환경 변수 | 분석기 | 기본 | 기술 |
---|---|---|---|
|
|
| 로컬 gemnasium 데이터베이스의 경로 |
|
|
| gemnasium 데이터베이스를 가져 오기위한 저장소 URL |
|
|
| 원격 저장소 데이터베이스의 분기 이름 이름 |
|
|
| 취약한 종속성을 자동으로 치료할 수 있음 |
|
|
| Python 패키지 색인의 기본 URL |
|
|
|
|
|
|
| 스캔 할 핍 요구 사항 파일. |
|
|
| 특정 pip 버전을 강제로 설치하지 않으면 예) |
|
|
| Python pip 종속성을 로드하는 경로 (GitLab 12.2에서 도입) |
|
|
| 파이썬의 버전.2로 설정하면 Python 3.6 대신 Python 2.7을 사용하여 종속성이 설치됨 (GitLab 12.1에서 도입) |
|
|
|
|
|
|
|
|
|
|
| bundler-audit에서 사용하는 권고 데이터베이스의 URL |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 안전하지 않거나 자체 서명 된 SSL (TLS) 인증서를 사용하여 호스트에서 원격 JS 및 노드 취약성 데이터 파일 ( |
...
<analyzer-name>-dependency_scanning
CI / CD 파이프 라인에서 실행되는 각 분석기마다 개별 작업이 생성제거함으로써 GitLab은 Linguist 를 사용하여 오케스트레이터 대신 탐지 된 리포지토리 언어에 따라 관련 분석기를 시작.
보안 대시 보드
보안 대시 보드는 그룹, 프로젝트 및 파이프 라인의 모든 보안 취약성에 대한 개요를 얻을 수 있습니다.
취약성을 분석하고 추가 정보를 얻고, 어떤 프로젝트에서 왔는지, 파일에 포함 된 파일 및 다양한 메타 데이터를 확인하여 위험을 분석할 수 있습니다.
취약점을 악용하여 문제를 생성하거나 해제함으로써 이러한 취약점에 대한 조치를 취할 수 있습니다.
보안 대시 보드를 활용하려면 먼저 보안 보고서 중 하나를 구성해야 합니다.
인스턴스, 그룹, 프로젝트 또는 파이프 라인 보안 대시 보드를 사용하려면 아래와 같이 구성해야 합니다.
지원되는 보고서 중 하나 이상으로 그룹 내의 프로젝트를 하나 이상 구성.
구성된 작업은 새
reports
구문으로 사용.GitLab Runner 11.5 이상을 사용.
GitLab.com 에서 공유 러너를 사용하고 있다면 이미 구성되어 있음.
1. 파이프 라인 보안
파이프 라인 수준에서 보안 섹션에는 파이프 라인이 실행 된 프로젝트 분기에 존재하는 취약성이 표시됨.
보안 결과를 보려면 Security 탭을 클릭.
...
2. 프로젝트 보안 대시 보드
프로젝트 수준에서 보안 대시 보드는 마지막으로 성공한 파이프 라인의 프로젝트에 대한 최신 보안 보고서를 표시합니다. 표시하고 이를 사용하여 default branch에 영향을 미치는 취약성을 찾아 수정.
...
3. 그룹 보안 대시 보드
보안 대시 보드 그룹은 그룹 및 하위 그룹에있는 모든 프로젝트의 취약성에 대한 개요를 제공합니다.
먼저 그룹의 Security 탭 아래에있는 보안 대시 보드로 이동 이동.
대시 보드에 있으면 맨 위에 다음에 대한 일련의 필터가 표시됩니다.
심각성
자신
보고서 유형
계획
필터 오른쪽에 Hide dismissed 토글 버튼이 표시됩니다.
대시보드에는 마지막으로 성공한 프로젝트 파이프 라인에 따라 그룹에서 보안 보고서가 활성화 된 프로젝트만 표시됩니다.
...
인스턴스 수준에서 보안 대시 보드에는 추가 한 모든 프로젝트에 존재하는 취약성이 표시됩니다.
그룹 보안 대시 보드 의 모든 기능이 포함됩니다 포함됩니다.
페이지 상단의 메뉴 표시 줄에서 인스턴스 보안 대시 보드에 액세스 할 수 있습니다.
More - Security
...
보안 대시 보드는 default branch에 최신 보안 검색 결과의 정보를 표시합니다. 즉, 지점이 업데이트 될 때마다 보안 검색이 수행됩니다.
기본 분기가 자주 업데이트되지 않으면 검색이 자주 실행되지 않고 새로운 취약성이 발견 될 때 보안 대시 보드의 정보가 오래될 수 있습니다.
보안 대시보드의 정보가 정기적으로 업데이트 되도록하려면 매일 보안 검색을 실행 하도록 예약 된 파이프 라인을 구성하면 기본 분기 업데이트 빈도에 관계없이 보안 대시 보드에 표시되는 정보가 업데이트됩니다.
이렇게하면 코드를 변경하지 않아도 보고서가 작성됩니다.