Secure and Govern 용어 해설서

Tier: Free, Premium, Ultimate Offering: GitLab.com, Self-Managed, GitLab Dedicated

다음과 같은 목표를 달성하기 위해 용어 해설서는 만들어졌습니다.

  • 고객과 협업하는 경우, 이슈를 다루거나, Slack에서, 코드에서 어디서든 사용할 수 있는 공통 언어를 촉진합니다.
  • 팀 구성원 간의 효과적인 커뮤니케이션을 향상시킵니다.
  • 의사소통의 효과를 높입니다.
  • 신규 팀 구성원 및 커뮤니티 기여자의 역량 강화를 통해 프로덕션성 향상에 기여합니다.

이 문서에 기술된 용어의 정의는 GitLab 제품의 맥락에서 이루어집니다. 따라서 다른 사용자에게는 해당 용어가 다른 의미를 갖을 수 있습니다.

Analyzer

스캔을 수행하는 소프트웨어입니다. 스캔은 취약점에 대한 공격 표면을 분석하고 결과를 담은 보고서를 생성합니다. 보고서는 보안 보고서 형식을 준수합니다.

Analyzers는 CI 작업을 사용하여 GitLab에 통합됩니다. Analyzer가 생성한 보고서는 작업이 완료된 후 artifact로 게시됩니다. GitLab이 이 보고서를 수용하여 사용자가 발견한 취약점을 시각화하고 관리할 수 있게 합니다. 자세한 내용은 보안 스캐너 통합을 참조하세요.

많은 GitLab 애널라이저가 도커를 사용하여 랩핑된 스캐너를 실행하는 표준적인 방법을 따릅니다. 예를 들어, semgrep 이미지는 Semgrep 스캐너를 랩핑하는 Analyzer입니다.

Attack surface

공격을 받을 수 있는 응용 프로그램의 다양한 위치입니다. 보안 제품은 스캔 중에 공격 표면을 발견하고 찾습니다. 각 제품은 공격 표면을 다르게 정의합니다. 예를 들어, SAST는 파일 및 라인 번호를 사용하고, DAST는 URL을 사용합니다.

Component

소프트웨어 프로젝트의 부분을 이루는 소프트웨어 구성품입니다. 라이브러리, 드라이버, 데이터 등이 포함됩니다. 다양한 예시가 있습니다.

Corpus

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

CNA

CVE(공통 약점 및 노출) 번호 부여 기관(CNAs)은 해당 범위 내 제품 또는 서비스의 취약성에 CVE를 할당할 수 있는 권한을 가진 전 세계의 조직입니다. Mitre Corporation에 의해 권한이 부여되었습니다. GitLab은 CNA입니다.

CVE

공통 취약점 및 노출(CVE®)은 알려진 사이버 보안 취약점에 대한 일반 식별자 디렉터리입니다. 이 디렉터리은 Mitre Corporation이 관리합니다.

CVSS

CVSS(Common Vulnerability Scoring System)는 컴퓨터 시스템 보안 취약점 심각도를 평가하기 위한 무료 및 오픈 산업 표준입니다.

CWE

CWE(Common Weakness Enumeration)은 보안에 영향을 미치는 일반적인 소프트웨어 및 하드웨어 약점 유형의 공동 개발 디렉터리입니다. 이 약점은 소프트웨어 또는 하드웨어 구현, 코드, 설계 또는 아키텍처의 결함, 오류, 버그, 취약점 또는 기타 오류입니다. 해결하지 않으면 약점은 시스템, 네트워크 또는 하드웨어가 공격당할 수 있는 상태가 될 수 있습니다. CWE 디렉터리 및 관련된 분류 분류 체계는 CWE를 사용하여 이러한 약점을 식별하고 설명하는 데 사용할 수 있는 언어로 작동합니다.

Deduplication

특정 카테고리의 프로세스가 결과가 동일하다고 판단하거나 노이즈 감소가 필요한 경우, 하나의 결과만 유지되고 나머지는 제거됩니다. 중복 제거 프로세스에 대해 자세히 알아보세요.

Duplicate finding

여러 번 신고된 실제 결과입니다. 다른 스캐너가 동일한 결과를 발견하는 경우 또는 단일 스캔이 동일한 결과를 여러 번 부정확하게 신고하는 경우가 있습니다.

False positive

존재하지 않는 결과가 잘못 신고된 결과입니다.

Finding

분석기에서 프로젝트에서 취약성 가능성이 있는 자산입니다. 자산은 소스 코드, 이진 패키지, 컨테이너, 의존성, 네트워크, 응용 프로그램 및 인프라를 포함하지만 이에 국한되지는 않습니다.

MRs/기능 브랜치에서 스캐너가 식별한 모든 잠재적인 취약성 항목을 결과로 표시합니다. 기본으로 Merge한 후에 잠재적인 취약성이 취약성으로 전환됩니다.

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

  1. 취약성 결과에 대한 이슈 또는 Merge Request을 열 수 있습니다.
  2. 취약성 결과를 무시할 수 있습니다. 결과를 무시하면 기본 보기에서 숨겨집니다.

Grouping

중복 제거의 자격을 갖추지 않지만 관련성이 높은 여러 결과가 있을 때 취약성을 시각적으로 그룹화하는 유연하고 비파괴적인 방법입니다. 예를 들어, 동일한 조치로 수정될 수 있는 여러 결과, 동일한 출처에서 기반하는 결과 등을 그룹화할 수 있습니다. 취약성에 대한 그룹핑은 개발 중이며 issue 267588에서 추적됩니다.

Insignificant finding

특정 고객이 신경 쓰지 않는 유효한 결과입니다.

Known affected component

취약성을 악용할 수 있는 조건을 충족하는 컴포넌트입니다. 예를 들어, packageA@1.0.3FAKECVE-2023-0001의 이름, 패키지 유형 및 영향을 받는 버전 또는 버전 범위 중 하나와 일치합니다.

Location fingerprint

결과의 위치 지문은 각 공격 표면의 위치에 대해 고유한 텍스트 값입니다. 각 보안 제품은 이것을 자체 유형의 공격 표면에 따라 정의합니다. 예를 들어, SAST는 파일 경로 및 라인 번호를 통합합니다.

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

패키지 관리자

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

패키지 관리자는 새로운 의존성을 설치하는 방법을 제공하고, 패키지를 파일 시스템의 특정 위치에 저장하고, 자체 패키지를 게시할 수 있는 기능을 제공합니다.

패키지 유형

각 패키지 관리자, 플랫폼, 유형 또는 생태계에는 고유한 규칙과 프로토콜이 있습니다.

다음 표는 GitLab 문서 및 소프트웨어 도구에서 언급된 일부 패키지 관리자 및 유형의 비철거적 디렉터리입니다.

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

Pipeline Security tab

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

Possibly affected component

취약점에 영향을 받을 수 있는 소프트웨어 컴포넌트입니다. 예를 들어, 알려진 취약점을 스캔할 때 컴포넌트는 먼저 이름과 패키지 유형과 일치하는지 확인됩니다. 이 단계에서 해당 요소는 취약점의 영향을 받을 수 있으며, 영향을 받는 버전 범위에 속하는 것이 확인된 후에만 영향을 받는 것으로 알려집니다.

Post-filter

후속 필터는 스캐너 결과에서 잡음을 줄이고 매뉴얼 작업을 자동화하는 데 도움이 됩니다. 스캐너 결과를 기반으로 취약성 데이터를 업데이트하거나 수정하는 기준을 지정할 수 있습니다. 예를 들어, 발견 사항을 잠재적인 거짓 긍정으로 플래그 지정하고 더 이상 감지되지 않는 취약성을 자동으로 해결할 수 있습니다. 이러한 조치는 영구적이지 않으며 수정할 수 있습니다.

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

Pre-filter

분석이 발생하기 전에 대상을 걸러내는 필터링 작업입니다. 일반적으로 이를 제공하여 사용자가 범위와 잡음을 줄이고 분석 속도를 높일 수 있도록 합니다. 현재 생략된/제외된 코드나 자산과 관련된 내용을 저장하지 않으므로 기록이 필요한 경우에는 이 작업을 수행해서는 안 됩니다.

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

Primary identifier

결과의 기본 식별자는 각 결과에 대해 고유한 값을 나타냅니다. 결과의 첫 번째 식별자의 외부 유형과 외부 ID가 결합되어 값을 생성합니다.

기본 식별자의 예로는 Zed Attack Proxy (ZAP)의 PluginID 또는 Trivy의 CVE가 있습니다. 식별자는 안정적이어야 합니다. 결과가 약간 변경되었더라도 동일한 결과에 대해 후속 스캔은 동일한 값을 반환해야 합니다.

Report finding

보고서에서만 존재하는 finding으로, 아직 데이터베이스에 기록되지 않았습니다. 보고서 finding은 데이터베이스로 가져온 후에야 vulnerability finding으로 표시됩니다.

Scan type (report type)

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

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

스캐너가 추가됨에 따라이 디렉터리은 변경될 수 있습니다.

Scanner

취약점을 스캔할 수 있는 소프트웨어입니다. 결과 스캔 보고서는 일반적으로 Secure report format이 아닙니다. 예시로는 ESLint, Trivy, ZAP 등이 있습니다.

Secure product

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

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

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

Secure report format

Secure 제품이 JSON 보고서를 작성할 때 준수해야 하는 표준 보고서 형식입니다. 이 형식은 JSON schema로 설명됩니다.

Security Dashboard

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

Seed corpus

퍼즈 대상에 대한 초기 입력으로 제공되는 테스트 케이스의 집합입니다. 일반적으로 퍼즈 대상을 상당히 가속화시킵니다. 일반적으로 이는 매뉴얼으로 생성된 테스트 케이스이거나 이전 실행에서 퍼즈 대상 자체에서 자동으로 생성된 것일 수 있습니다.

Vendor

분석기를 유지보수하는 당사자입니다. 따라서 공급업체는 스캐너를 GitLab에 통합하고 진화함에 따라 호환성을 유지하는 책임이 있습니다. 공급업체는 스캐너의 저자 또는 유지 관리자가 아니어도 되며, 기본 솔루션으로 오픈 코어 또는 OSS 프로젝트를 사용하는 경우와 같이 제안의 기반 솔루션으로 사용될 수 있습니다. GitLab 배포 또는 GitLab 구독의 일부로 포함된 스캐너의 경우 공급업체는 GitLab로 나열됩니다.

Vulnerability

환경의 보안에 부정적인 영향을 미치는 결함입니다. 취약성은 오류 또는 약점을 설명하며, 이 오류가 어디에 있는지는 설명하지 않습니다 (finding 참조).

각 취약성은 고유한 결과에 매핑됩니다.

취약점은 기본 브랜치에 존재합니다. 발견 사항(참조: finding)은 MR/피처 브랜치에서 스캐너가 식별하는 잠재적인 취약성 항목입니다. 기본 브랜치로 Merge한 후에야 발견 사항이 취약성으로 표시됩니다.

Vulnerability finding

report finding이 데이터베이스에 저장되면 취약성 finding이 됩니다.

Vulnerability tracking

결과의 수명 주기를 이해할 수 있도록 여러 스캔에서 결과를 매칭하는 책임을 다룹니다. 엔지니어 및 보안 팀은 이 정보를 사용하여 코드 변경을 Merge할지 여부를 결정하고 미해결된 결과 및 도입된 시점을 확인합니다.

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

Vulnerability occurrence

폐기 됨, finding을 참조하세요.