보안 및 관리 용어집


Tier: Free, Premium, Ultimate
Offering: GitLab.com, 자체 관리, GitLab Dedicated

이 용어집은 다음을 달성하기 위해 작성되었습니다.

  • 고객과 이슈, Slack, 코드를 포함한 어디에서나 사용할 수 있는 보편적인 언어를 촉진합니다.
  • 팀 구성원 간의 효율적인 커뮤니케이션을 증진합니다.
  • 의사소통의 효과를 향상시킵니다.
  • 신규 팀 구성원 및 커뮤니티 기여자들이 빠르게 숙련되어 생산성 향상에 도움이 됩니다.

이 문서에서 설명하는 용어의 정의는 GitLab 제품의 맥락에서 사용됩니다. 따라서 해당 용어는 GitLab 이외의 사용자에게는 다른 의미를 갖을 수 있습니다.

Analyzer

스캔을 수행하는 소프트웨어입니다. 해당 스캔은 취약점을 찾기 위해 공격 대상을 분석하고 결과를 포함한 보고서를 생성합니다. 보고서는 보안 보고서 형식을 준수합니다.

분석기는 CI 작업을 사용하여 GitLab에 통합됩니다. 분석기에 의해 생성된 보고서는 작업이 완료된 후 애티팩트로 게시됩니다. GitLab은 이 보고서를 수용하여 사용자가 발견된 취약점을 시각화하고 관리할 수 있도록 합니다. 더 많은 정보는 보안 스캐너 통합을 참조하십시오.

많은 GitLab 분석기는 Docker를 사용하여 래핑된 스캐너를 실행하는 표준 방법을 따릅니다. 예를 들어, semgrep 이미지는 Semgrep 스캐너를 래핑하는 분석기입니다.

Attack surface

공격을 당할 수 있는 응용 프로그램의 다양한 위치입니다. 보안 제품은 스캔 중에 공격 대상을 탐지하고 검색합니다. 각 제품은 공격 대상을 서로 다르게 정의합니다. 예를 들어 SAST는 파일 및 줄 번호를, DAST는 URL을 사용합니다.

Component

소프트웨어 프로젝트의 일부를 구성하는 소프트웨어 구성 요소입니다. 라이브러리, 드라이버, 데이터 및 기타 많은 요소를 포함합니다.

Corpus

퍼저가 실행되는 동안 생성된 의미 있는 테스트 케이스의 집합입니다. 각 의미 있는 테스트 케이스는 테스트 된 프로그램에서 새로운 커버리지를 생성합니다. 코퍼스를 재사용하고 후속 실행에 전달하는 것이 권장됩니다.

CNA

CVE(Numbering Authorities) 번호 지정 기관(CNAs)은 Mitre Corporation에 의해 인가된 전 세계의 조직으로, 각 해당 범위 내의 제품 또는 서비스의 취약점에 대해 CVE를 지정할 수 있습니다. GitLab은 CNA입니다.

CVE

공통 약점 및 노출(CVE®)은 공개적으로 알려진 사이버 보안 취약점에 대한 일반적인 식별자 목록입니다. 이 목록은 Mitre Corporation에서 관리합니다.

CVSS

공통 취약점 점수 평가 시스템(CVSS)은 컴퓨터 시스템 보안 취약점의 심각성을 평가하기 위한 자유롭고 열린 산업 표준입니다.

CWE

공통 약점 열거(CWE™)은 공동으로 개발된 공통 소프트웨어 및 하드웨어 약점 유형 목록으로, 이러한 약점은 보안 측면에서 중요한 영향을 미칩니다. 약점은 소프트웨어나 하드웨어의 구현, 코드, 설계 또는 아키텍처의 결함, 오류, 버그, 취약점 또는 기타 오류를 포함합니다. 약점을 방치할 경우 시스템, 네트워크 또는 하드웨어가 공격을 받을 수 있습니다. CWE 목록 및 관련 분류 분류법은 이러한 약점을 식별하고 설명하는 데 사용될 수 있는 언어 역할을 합니다.

Deduplication

카테고리의 프로세스가 결과물을 동일하다고 판단하거나 충분히 유사하여 잡음 감소가 필요한 경우, 하나만 결과물이 유지되고 나머지는 제거됩니다. 중복 제거 프로세스에 대해 자세히 알아보십시오.

Dependency graph export

의존성 그래프 내보내기는 프로젝트에서 사용하는 직간접적인 의존성과 그들 간의 관계를 나열합니다. 이는 pipdeptree graph 내보내기 등 패키지 관리자가 설치 중 필요하지 않을 수도 있습니다.

Duplicate finding

여러 번 신고된 합법적인 결과물입니다. 여러 스캐너가 동일한 결과물을 발견하거나 단일 스캔이 동일한 결과물을 여러 번 신고하는 경우 발생할 수 있습니다.

False positive

존재하지 않지만 잘못된 형태로 신고된 결과물입니다.

Finding

분석기에 의해 프로젝트에서 식별된 취약할 가능성이 있는 자산입니다. 자산에는 소스 코드, 이진 패키지, 컨테이너, 종속성, 네트워크, 응용 프로그램, 인프라 등이 포함됩니다.

MRs/피처 브랜치에서 스캐너가 식별하는 잠재적인 취약성 항목을 결과물이라고 합니다. 기본 브랜치로 병합한 후에만 결과물이 취약점이 됩니다.

취약성 결과물은 두 가지 방식으로 상호 작용할 수 있습니다.

  1. 취약성 결과물에 대한 이슈 또는 MR을 열 수 있습니다.
  2. 취약성 결과물을 해제할 수 있습니다. 결과물을 해제하면 기본 보기에서 숨겨집니다.

Grouping

관련성이 있지만 중복 제거의 자격을 갖추지 못한 여러 결과물을 그룹화하는 유연하고 비파괴적인 방식입니다. 예를 들어, 동시에 평가되어야 하는 결과물, 동일한 작업으로 수정될 수 있는 결과물 또는 동일한 출처에서 나온 결과물을 포함할 수 있습니다. 취약점을 그룹화하는 동작은 개발 중이며 이슈 267588에서 추적됩니다.

Insignificant finding

특정 고객이 관심을 갖지 않는 합법적인 결과물입니다.

Known affected component

취약점이 악용 가능하도록 요구 사항과 일치하는 구성 요소입니다. 예를 들어, packageA@1.0.3FAKECVE-2023-0001의 영향을 받는 버전 또는 버전 범위 중 하나와 이름, 패키지 유형을 일치시킵니다.

Location fingerprint

결과물의 위치 지문은 공격 대상의 각 위치에 대해 고유한 텍스트 값입니다. 각 보안 제품은 해당 공격 대상의 유형에 따라 이를 정의합니다. 예를 들어, SAST는 파일 경로와 줄 번호를 포함시킵니다.

Lock file

잠금 파일은 응용 프로그램의 직접 및 간접적인 종속성을 철저히 나열하여 패키지 관리자가 재현 가능한 빌드를 보장하기 위한 것입니다. 또한 Gemfile.lock 파일의 경우와 같이 의존성 관계를 나열하지만 이는 요구 사항이 아니거나 보장되지 않습니다.

패키지 관리자 및 패키지 유형

패키지 관리자

패키지 관리자는 프로젝트 종속성을 관리하는 시스템입니다.

패키지 관리자는 새로운 종속성(또한 “패키지”로 지칭됨)을 설치하는 방법을 제공하며, 패키지가 파일 시스템에서 어디에 저장되어 있는지를 관리하고, 사용자가 자체 패키지를 게시하는 기능을 제공합니다.

패키지 유형

각 패키지 관리자, 플랫폼, 유형 또는 생태계에는 소프트웨어 패키지를 식별, 찾고 제공하기 위한 고유한 규칙과 프로토콜이 있습니다.

다음 표는 GitLab 설명서 및 소프트웨어 도구에서 언급된 일부 패키지 관리자 및 유형의 비완전한 목록입니다.

패키지 유형 패키지 관리자
gem Bundler
Packagist Composer
Conan Conan
go go
maven Gradle, Maven, sbt
npm npm, yarn
NuGet NuGet
PyPI Setuptools, pip, Pipenv, Poetry

파이프라인 보안 탭

연관된 CI 파이프라인에서 발견된 결과를 표시하는 페이지입니다.

가능성 있는 영향을 받는 구성 요소

취약점에 영향을 받을 수 있는 소프트웨어 구성 요소입니다. 예를 들어, 알려진 취약점을 찾기 위해 프로젝트를 스캔할 때, 구성 요소는 먼저 영향을 받을 가능성이 있는지 확인한 후 영향을 받을 것으로 확인되면 영향을 받는 알려진 구성 요소로 표시됩니다.

후속 필터

후속 필터는 스캐너 결과에서 노이즈를 줄이고 수동 작업을 자동화하는 데 도움이 됩니다. 스캐너 결과를 기반으로 취약성 데이터를 업데이트하거나 수정하는 기준을 지정할 수 있습니다. 예를 들어, 잘못된 양성 결과로 표시하고 더 이상 감지되지 않는 취약점을 자동으로 해결할 수 있습니다. 이러한 조치는 영구적인 것이 아니며 변경할 수 있습니다.

자동으로 결과를 해결하는 지원은 epic 7478에서 추적되며, 저렴한 스캔을 지원하는 것은 이슈 349926에서 제안되었습니다.

사전 필터

분석 전에 대상을 필터링하는 변경할 수 없는 작업입니다. 이는 사용자가 범위와 노이즈를 줄이고 분석 속도를 높이기 위해 제공됩니다. 이 작업은 레코드가 필요한 경우에만 수행해야 합니다. 건너뛰거나 제외된 코드 또는 에셋과 관련된 내용은 저장하지 않기 때문입니다.

예: DS_EXCLUDED_PATHS제공된 경로를 기반으로 스캔에서 파일 및 디렉토리를 제외해야 합니다.

주요 식별자

결과 찾기의 주요 식별자는 각 결과 찾기에 고유한 값입니다. 결과 찾기의 첫 번째 식별자의 외부 유형과 외부 ID가 결합되어 이 값을 생성합니다.

주요 식별자의 예로는 Zed Attack Proxy (ZAP)의 PluginID나 Trivy의 CVE가 있습니다. 식별자는 안정적이어야 합니다. 이후 스캔에서는 위치가 약간 변경되더라도 동일한 결과를 반환해야 합니다.

보고서 결과 찾기

보고서에서만 존재하는 결과 찾기로, 아직 데이터베이스에 유지되지 않는 것입니다. 보고서 결과 찾기는 데이터베이스로 가져올 때 취약성 찾기가 됩니다.

스캔 유형 (보고서 유형)

스캔 유형을 설명합니다. 다음 중 하나여야 합니다:

  • api_fuzzing
  • container_scanning
  • coverage_fuzzing
  • dast
  • dependency_scanning
  • sast
  • secret_detection

스캐너가 추가되는 대로이 목록은 변경될 수 있습니다.

스캐너

취약점을 스캔 할 수있는 소프트웨어입니다. 결과 스캔 보고서는 일반적으로 보안 보고서 형식이 아닙니다. ESLint, Trivy, ZAP 등이 예시에 포함됩니다.

보안 제품

GitLab에서 일급 지원을 받는 특정 응용프로그램 보안 영역과 관련된 기능 그룹입니다.

제품에는 Container Scanning, Dependency Scanning, Dynamic Application Security Testing (DAST), Secret Detection, Static Application Security Testing (SAST), Fuzz Testing가 포함됩니다.

이러한 제품은 일반적으로 하나 이상의 분석기를 포함합니다.

보안 보고서 형식

보안 제품이 JSON 보고서를 작성할 때 준수하는 표준 보고서 형식입니다. 형식은 JSON 스키마로 설명되어 있습니다.

보안 대시보드

프로젝트, 그룹 또는 GitLab 인스턴스에 대한 모든 취약점을 개요 형태로 제공합니다. 취약점은 프로젝트의 기본 브랜치에서 발견된 결과로만 생성됩니다.

초기 코퍼스

퍼징 대상에 대한 초기 입력으로 주어진 테스트 케이스 집합입니다. 일반적으로 퍼징 대상을 크게 가속화합니다. 이는 이전 실행에서 피로한 퍼징 대상 자체에서 수동으로 작성된 테스트 케이스 또는 자동으로 생성된 것일 수 있습니다.

공급 업체

분석기를 유지 보수하는 당사자입니다. 따라서 공급 업체는 스캐너를 GitLab에 통합하고 진화함에 따라 호환되도록 유지하는 책임이 있습니다. 공급 업체는 스캐너의 저자 또는 유지 관리자가 아닐 수 있으며, GitLab 배포 또는 GitLab 구독의 일부로 포함된 스캐너의 경우 공급 업체로는 GitLab가 나열됩니다.

취약점

환경의 보안에 부정적인 영향을 미치는 결함입니다. 취약점은 오류 또는 약점을 설명하며 오류가 발생한 위치를 설명하지는 않습니다(finding 참조).

각 취약점은 고유 한 finding에 매핑됩니다.

취약점은 기본 브랜치에 존재합니다. 발견 (finding 참조)은 MR/기능 브랜치에서 스캐너가 식별 한 모든 잠재적인 취약성 항목입니다. 기본 브랜치로 병합 한 후에 만 취약성이됩니다.

취약점 발견

보고서 발견이 데이터베이스에 저장되면 취약성 발견이됩니다.

취약점 추적

취약성의 수명주기를 이해 할 수 있도록 스캔간에 발견을 매치하는 책임과 관련이 있습니다. 엔지니어 및 보안 팀은
이 정보를 사용하여 코드 변경 사항을 병합할지 여부를 결정하고 미해결 된 발견을 볼 수 있으며 이러한 발견이 도입 된 시점을 볼 수 있습니다.

취약성은 위치 지문, 주요 식별자 및 보고서 유형을 비교하여 추적됩니다.

취약성 발생

사용되지 않음, finding 참고.