보안 및 거버넌스 용어집

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

이 문서의 용어집은 다음을 목표로 합니다:

  • 고객, 이슈, Slack, 코드 등 모든 곳에서 사용할 수 있는 보편적인 언어 촉진.

  • 팀원 간의 의사소통 효과 향상.

  • 오해의 가능성 감소.

  • 새로운 팀원 및 커뮤니티 기여자가 보다 빠르게 적응할 수 있도록 하여 생산성 향상 시간 단축.

이 문서에 설명된 용어의 정의는 GitLab 제품의 맥락에서 제공됩니다. 따라서 용어는 GitLab 외부 사용자에게는 다른 의미를 가질 수 있습니다.

분석기

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

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

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

공격 표면

공격에 취약한 애플리케이션 내의 다양한 장소. 보안 제품은 스캔 동안 공격 표면을 발견하고 검색합니다. 각 제품은 공격 표면을 다르게 정의합니다. 예를 들어, SAST는 파일과 줄 번호를 사용하고 DAST는 URL을 사용합니다.

구성 요소

소프트웨어 프로젝트의 일부를 구성하는 소프트웨어 구성 요소. 예로는 라이브러리, 드라이버, 데이터 및 기타 많은 것들이 있습니다.

말뭉치

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

CNA

CVE 번호 매기기 기관(CNAS)은 자신의 범위 내에서 제품 또는 서비스의 취약점에 대해 CVE를 할당하도록 Mitre Corporation에 의해 승인된 전 세계의 조직입니다. GitLab은 CNA입니다.

CVE

공통 취약점 및 노출(Common Vulnerabilities and Exposures, CVE®)은 일반적으로 알려진 사이버 보안 취약점에 대한 공통 식별자의 목록입니다. 이 목록은 Mitre Corporation에 의해 관리됩니다.

CVSS

공통 취약점 점수 체계(Common Vulnerability Scoring System, CVSS)는 컴퓨터 시스템 보안 취약점의 심각성을 평가하기 위한 무료 공개 산업 표준입니다.

CWE

공통 약점 열거(Common Weakness Enumeration, CWE™)는 보안에 영향을 미치는 일반적인 소프트웨어 및 하드웨어 약점 유형에 대한 커뮤니티 개발 목록입니다. 약점은 소프트웨어 또는 하드웨어 구현, 코드, 디자인 또는 아키텍처의 결함, 결점, 버그, 취약점 또는 기타 오류입니다. 방치되면 약점은 시스템, 네트워크 또는 하드웨어가 공격에 취약해질 수 있습니다. CWE 목록 및 관련 분류 분류법은 CWEs의 관점에서 이 약점을 식별하고 설명하는 데 사용할 수 있는 언어 역할을 합니다.

중복 제거

카테고리의 프로세스가 발견된 사항이 동일하다고 판단하거나 유사성이 있어 노이즈 감소가 필요한 경우, 오직 하나의 발견만 유지하고 나머지는 제거됩니다. 중복 제거 프로세스에 대해 자세히 알아보세요.

의존성 그래프 내보내기

의존성 그래프 내보내기는 프로젝트에서 사용되는 직접 및 간접 의존성을 나열하고 그리고 그들 사이의 관계를 포함합니다. 이는 pipdeptree graph와 같은 경우처럼 설치 중에 패키지 관리자에 의해 필요하지 않을 수 있으므로 잠금 파일과 구분됩니다.

중복 발견

여러 번 보고된 정당한 발견입니다. 이는 서로 다른 스캐너가 동일한 발견을 발견하거나, 단일 스캔이 부주의하게 동일한 발견을 여러 번 보고할 때 발생할 수 있습니다.

허위 긍정

존재하지 않지만 존재하는 것으로 잘못 보고된 발견입니다.

발견

분석기에 의해 프로젝트에서 식별된 잠재적으로 취약한 자산입니다. 자산에는 소스 코드, 바이너리 패키지, 컨테이너, 의존성, 네트워크, 애플리케이션 및 인프라가 포함되지만 그에 국한되지 않습니다.

발견은 스캐너가 MRs/기능 브랜치에서 식별하는 모든 잠재적 취약성 항목입니다. 디폴트로 병합한 후에야 발견이 취약성으로 전환됩니다.

취약성 발견과 상호 작용할 수 있는 두 가지 방법이 있습니다.

  1. 취약성 발견에 대해 문제나 병합 요청을 열 수 있습니다.

  2. 취약성 발견을 기각할 수 있습니다. 발견을 기각하면 기본 보기에서 숨겨집니다.

그룹화

중복 제거에 적합하지 않지만 관련이 있을 가능성이 있는 여러 발견을 그룹으로 시각적으로 조직하는 유연하고 비파괴적인 방법입니다. 예를 들어, 함께 평가해야 할 발견, 동일한 작업으로 수정될 발견, 또는 동일한 출처에서 온 발견을 포함할 수 있습니다. 취약성에 대한 그룹화 동작은 개발 중이며 문제 267588에서 추적되고 있습니다.

사소한 발견

특정 고객이 중요하지 않다고 여기는 정당한 발견입니다.

알려진 영향을 받는 구성 요소

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

위치 지문

발견의 위치 지문은 공격 표면의 각 위치에 대해 고유한 텍스트 값입니다. 각 보안 제품은 자신의 공격 표면 유형에 따라 이를 정의합니다. 예를 들어, SAST는 파일 경로와 줄 번호를 포함합니다.

잠금 파일

잠금 파일은 패키지 관리자가 재현 가능한 빌드를 보장하기 위해 애플리케이션의 직접 및 간접 의존성을 철저히 나열합니다. 이것은 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 파이프라인에서 발견된 결과를 표시하는 페이지입니다.

영향을 받을 수 있는 구성 요소

취약점의 영향을 받을 가능성이 있는 소프트웨어 구성 요소입니다. 예를 들어, 알려진 취약점에 대해 프로젝트를 스캔할 때, 구성 요소는 먼저 이름과 패키지 타입과 일치하는지 평가됩니다. 이 단계에서는 취약점의 영향을 받을 가능성이 있는 것으로 간주되며, 영향을 받는 버전 범위에 해당하는 것으로 확인되기 전까지는 영향을 받는 것으로 알려지지 않습니다.

후처리

후처리는 스캐너 결과에서 노이즈를 줄이고 수동 작업을 자동화하는 데 도움을 줍니다. 스캐너 결과에 따라 취약점 데이터를 업데이트 또는 수정하는 기준을 지정할 수 있습니다. 예를 들어, 발견된 사항을 가능성이 높은 거짓 긍정으로 플래그 지정하고 더 이상 발견되지 않는 취약점을 자동으로 해결할 수 있습니다. 이러한 작업은 영구적인 것이 아니며 변경할 수 있습니다.

발견 사항을 자동으로 해결하는 지원은 에픽 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이 1급으로 지원하는 애플리케이션 보안의 특정 영역 관련 기능 그룹입니다.

제품으로는 컨테이너 스캔, 의존성 스캔, 동적 애플리케이션 보안 테스트(DAST), 비밀 탐지, 정적 애플리케이션 보안 테스트(SAST) 및 퍼즈 테스트가 포함됩니다.

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

보안 보고서 형식

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

보안 대시보드

프로젝트, 그룹 또는 GitLab 인스턴스의 모든 취약점에 대한 개요를 제공합니다.

취약점은 프로젝트의 기본 브랜치에서 발견된 발견 사항에서만 생성됩니다.

시드 코퍼스

퍼즈 타겟에 대한 초기 입력으로 제공되는 테스트 케이스 세트입니다. 이는 일반적으로 퍼즈 타겟을 상당히 가속화합니다. 이는 수동으로 생성된 테스트 케이스일 수도 있고, 이전 실행에서 퍼즈 타겟 자체로 자동 생성된 테스트 케이스일 수도 있습니다.

공급업체

분석기를 유지 관리하는 당사자입니다. 따라서 공급업체는 스캐너를 GitLab에 통합하고 발전에 따라 호환성을 유지할 책임이 있습니다. 공급업체는 오픈 코어 또는 OSS 프로젝트를 제안의 기본 솔루션으로 사용하는 경우처럼 반드시 스캐너의 저자 또는 유지 관리자가 아닙니다. GitLab 배포 또는 GitLab 구독의 일부로 포함된 스캐너에 대해서는 공급업체가 GitLab으로 나열됩니다.

취약점

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

각 취약점은 고유한 발견 사항에 매핑됩니다.

취약점은 기본 브랜치에 존재합니다. 발견 사항(자세한 내용은 발견 참조)은 스캐너가 MRs/기능 브랜치에서 식별하는 모든 잠재적 취약점 항목입니다. 기본 브랜치로 병합된 후에만 발견 사항이 취약점이 됩니다.

취약점 발견

보고서 발견이 데이터베이스에 저장될 때, 이는 취약점 발견이 됩니다.

취약점 추적

스캔 간 발견 사항을 비교하여 발견 사항의 생애 주기를 이해하는 책임을 다룹니다. 엔지니어와 보안 팀은 이 정보를 사용하여 코드 변경 사항을 병합할지 여부를 결정하고 해결되지 않은 발견 사항과 그들이 언제 도입되었는지 확인합니다.

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

취약점 발생

더 이상 사용되지 않음, 발견 참조.