안녕하세요. 인포그랩에서 Solution Architect(SA)이자 DevOps 엔지니어로 일하는 Steve입니다. 저는 인포그랩에 입사하기 전 GitLab에서 4년 동안 SA로 일했는데요. 그때 가장 많이 들었던 질문이 “GitLab과 GitHub은 뭐가 다른가요?”, “GitHub 데이터를 GitLab으로 마이그레이션 하는 절차나 이슈는 뭐가 있을까요?” 였습니다.

GitLab과 GitHub은 보안, 클라우드 전략, 도입 편의성 등 여러 측면에서 차이점이 많은데요. 그중에서도 핵심 차이점은 보안 기능의 지원 범위와 다양성입니다. GitLab은 플랫폼 전체에 보안이 통합됐고, 다채로운 보안 기능을 기본으로 제공하죠. GitHub도 좋은 보안 기능을 지원하지만 주요 보안 검사 기능이 GitLab만큼 많지 않습니다. GitLab의 동적 애플리케이션 보안 테스트(DAST), 컨테이너 스캐닝, Fuzz 테스트 같은 보안 점검 기능은 GitHub에는 없죠.

GitLab은 이러한 단독 보안 기능뿐만 아니라 GitHub Advanced Security의 고급 보안 기능도 지원하는데요. GitHub에서 GitLab으로 마이그레이션 하면 이러한 기능을 두루 누릴 수 있습니다. 이 글에서는 GitLab 최고 등급 라이선스인 Ultimate에서 지원하는 GitLab 고급 보안 기능을 알아보고요. GitHub Advanced Security의 고급 보안 기능을 GitLab Ultimate에서 사용하는 방법도 소개하겠습니다.

GitLab Ultimate의 고급 보안 기능

GitLab Ultimate는 GitLab의 최고 등급 라이선스입니다. 이는 기업이 소프트웨어를 빠르고 안전하게 개발, 배포하는 데 도움이 되는 고급 보안 기능을 다수 제공하죠. 정적 애플리케이션 보안 테스트(SAST), 시크릿(Secret) 스캐닝, 의존성 스캐닝 기능이 그 예고요. 컨텍스트 기반 취약점 정보와 해결 방법도 알려줍니다. 의존성 목록과 소프트웨어 자재 명세서(SBOM), 보안 메트릭, 인사이트도 지원하고요.

위 기능은 GitHub Enterprise의 애드온 서비스인 GitHub Advanced Security에서도 지원해 GitLab만의 장점은 아닐 수 있는데요. 이와 별개로 GitLab Ultimate는 GitHub Advanced Security에서 누리기 어려운 독보적인 고급 보안 기능도 많이 지원합니다. 주요 내용은 아래와 같은데요.

  • DAST, 컨테이너 스캐닝, Web API Fuzz 테스트 등 추가 코드 스캐너를 제공합니다. 이러한 스캐너는 최적화된 독점 기술과 오픈 소스 기술, 맞춤형 룰셋을 적용해 사용하죠.
  • 안전하지 않은 코드가 승인 없이 merge 되지 않도록 세부 보안 가이드라인을 제공합니다.
  • GitLab 보안 스캐너는 폐쇄망 또는 제한된 인터넷 연결 환경에서도 실행할 수 있습니다.
  • 조직 전체 컴플라이언스 위반 사항을 감독하는 컴플라이언스 센터가 있습니다.

GitLab Ultimate의 고급 보안 기능은 보안 스캐너, 정책, 역할·권한 설정 등으로 구분할 수 있는데요. 항목별로 자세히 살펴보겠습니다.

보안 스캐너

GitLab Ultimate는 소프트웨어 개발 라이프사이클 전반에 걸쳐 아래와 같이 보안 스캐너를 제공합니다. 아울러 서드파티 스캐너맞춤형 스캐너를 GitLab에 통합할 수 있는데요. 통합한 뒤, 스캐너 결과는 GitLab 파이프라인 뷰, Merge Request(MR) 위젯, 보안 대시보드 등에 자동 표시돼 쉽게 확인할 수 있습니다.

스캐너 이름스캔 항목스캔 대상 언어/파일
정적 애플리케이션 보안 테스트 (SAST)정적 소스 코드C/C++, Java, Python, Go, JavaScript, C# 등
동적 애플리케이션 보안 테스트 (DAST)실행 중인 웹 애플리케이션, 라이브 API언어 무관
코드형 인프라(IaC) 스캐닝IaC 파일Terraform, AWS CloudFormation, Ansible 등
컨테이너 스캐닝정적, 실행 중인 컨테이너 이미지Dockerfile
의존성 스캐닝, 라이선스 스캐닝애플리케이션 의존성Requirements.txt, Yarn, Gradle, Npm 등
웹 API Fuzz 테스트웹 API에 무작위/잘못된 데이터 전송OpenAPI, GraphQL, HAR, Postman Collection
커버리지 기반 Fuzz 테스트함수에 무작위/잘못된 데이터 전송C/C++, Go, Swift, Python, Rust, Java, JavaScript, AFL

보안·컴플라이언스 정책

GitLab Ultimate에서는 정책으로 보안·컴플라이언스 팀이 조직 전체에 보안 관련 통제를 시행하도록 할 수 있습니다. 이로써 개발팀 파이프라인에서 적절한 구성으로 보안 스캐너를 강제 적용할 수 있고요. 모든 스캔 작업이 변경 없이 실행되도록 할 수 있죠. 또 모든 MR에 여러 승인자를 중앙에서 강제할 수 있고요. 조직의 요구 사항 범위 안에서 프로젝트의 다양한 설정(예: MR, 리포지터리 설정 활성화 또는 잠금)이 활성화되도록 할 수 있습니다.

GitLab 보안·컴플라이언스 정책 선택 화면. 출처=GitLab | 인포그랩 GitLab
GitLab 보안·컴플라이언스 정책 선택 화면. 출처=GitLab

맞춤형 역할, 세부 권한 설정

GitLab Ultimate는 Custom Roles로 조직 필요에 맞는 권한, 권한이 있는 사용자 역할을 생성하도록 지원합니다. 예를 들면, 시스템의 보안 취약점을 보는 권한은 있지만 소스 코드를 볼 수 없고, 리포지터리 안에서 아무 변경도 할 수 없는 "보안 감사자(Security Auditor)" 역할을 생성할 수 있죠. 이렇게 권한을 세부적으로 설정하면 업무를 명확하게 분리할 수 있습니다.

GitLab에서 Custom Roles로 역할과 권한을 설정하는 �화면. 출처=GitLab | 인포그랩 GitLab
GitLab에서 Custom Roles로 역할과 권한을 설정하는 화면. 출처=GitLab

컴플라이언스 센터

GitLab Ultimate에서는 컴플라이언스 센터로 그룹의 컴플라이언스 표준 준수 보고, 위반 보고, 컴플라이언스 프레임워크를 관리할 수 있습니다. 아울러 대시보드로 ‘조직 내 컴플라이언스 최적화를 위해 업무 분리가 잘 지켜지는지’ 확인할 수도 있죠. 컴플라이언스 센터에서는 구체적으로 다음 내용을 볼 수 있습니다.

GitHub 고급 보안 기능 GitLab서 이용하는 방법

이렇듯 GitLab Ultimate는 강력하고 다양한 보안 기능을 제공합니다. 아울러 GitHub Advanced Security의 코드 스캐닝, SAST, 시크릿 스캐닝과 같은 고급 보안 기능도 마찬가지로 지원하죠. GitLab Ultimate 30일 무료 체험을 이용하면 이를 손쉽게 경험할 수 있습니다. 지금부터 GitHub Advanced Security의 고급 보안 기능을 GitLab Ultimate에서 이용하는 방법을 자세히 소개하겠습니다.

코드 스캐닝

GitHub Advanced Security는 코드 스캐닝 기능으로 정적 소스 코드의 컨텍스트 기반 취약점 정보, 코드 품질 향상을 위한 조언을 제공합니다. 구체적으로 SAST 도구인 CodeQL이나 서드파티 도구를 사용해 코드에서 잠재 보안 취약점과 코딩 오류를 검색하고요. CodeQL CLI로 소프트웨어 프로젝트에서 로컬로 CodeQL 프로세스를 실행하거나 GitHub에 업로드할 코드 스캔 결과를 생성할 수 있죠.

GitLab에서도 SAST를 활성화해 코드 스캐닝 기능을 수행할 수 있는데요. GitLab에서 이 기능을 활성화하려면, SAST 템플릿.gitlab-ci.yml 파일에 아래와 같이 추가하면 됩니다.

include:

- template: Jobs/SAST.gitlab-ci.yml

템플릿을 추가하면, 새로운 코드가 체크인될 때마다 SAST가 프로젝트에서 사용된 프로그래밍 언어를 자동 탐지합니다. 그다음, 소스 코드를 스캔해 알려진 취약점을 검색하죠.

SAST 결과는 feature 브랜치와 target 브랜치 간 차이를 아래 이미지와 같이 MR 위젯에 표시합니다. MR 위젯은 MR에서 수정한 코드 변경 사항 때문에 새롭게 발견된 SAST 결과와 해결책을 보여주죠.

GitLab에서 SAST, DAST, Secret Detection 등으로 발견한 잠재 취약점. 출처=GitLab | 인포그랩 GitLab
GitLab에서 SAST, DAST, Secret Detection 등으로 발견한 잠재 취약점. 출처=GitLab

아래 이미지를 보면 SAST로 발견한 취약점 내용을 자세히 확인할 수 있는데요. 상태, 심각도, 발견된 파일 내 위치 등 정보를 알 수 있습니다. 이러한 정보는 문제를 해결하는 데 도움이 되죠.

한편, 취약점에는 다음 조치를 취할 수 있는데요.

  • 취약점 무시(Dismiss vulnerability 버튼 클릭): 개발자가 취약점을 코멘트와 함께 무시할 수 있습니다. 이는 보안 팀이 검토할 때 도움이 됩니다.
  • 이슈 생성(Create issue 버튼 클릭): 보안 문제를 해결해야 하는 취약점을 추적하기 위해 이슈를 생성할 수 있습니다.
    GitLab에서 SAST로 발견한 취약점 상세 내용. 출처=GitLab | 인포그랩 GitLab
    GitLab에서 SAST로 발견한 취약점 상세 내용. 출처=GitLab

SAST 설정

GitHub Advanced Security는 SAST 도구 CodeQL을 지원합니다. 사용자는 GitHub 연구자와 커뮤니티 기여자가 작성한 표준 CodeQL 쿼리를 실행할 수 있고요. 또는 이를 직접 작성해 맞춤형 분석을 수행할 수 있죠. GitLab에서는 한발 더 나아가 SAST 스캐너와 SAST 규칙 세트를 세밀하게 맞춤 설정할 수 있습니다.

SAST 스캐너 맞춤 설정

GitLab에서는 SAST 작업 정의를 재정의해 변수, 의존성 또는 규칙과 같은 속성을 변경할 수 있습니다. 이는 SAST 작업과 동일한 이름으로 작업을 선언해 재정의할 수 있고요. 그다음, 새로운 작업을 템플릿에 포함해 나중에 사용하도록 저장했다가 불러와 쓸 수 있죠.

예를 들어, 아래와 같이 SAST 스캐너를 맞춤 설정할 수 있는데요. 이는

  • semgrep-sast 스캐너가 사용하는 버전을 재정의합니다.
  • gosec-sast를 실행하기 전에 비공개 프로젝트에서 모듈을 가져오는 스크립트를 실행합니다.
  • 모든 스캐너가 최대 깊이 10까지 호출 관계를 검색하도록 구성합니다.
include:
- template: Jobs/SAST.gitlab-ci.yml

variables:
SEARCH_MAX_DEPTH: 10

semgrep-sast:
variables:
SAST_ANALYZER_IMAGE_TAG: "3.7"

gosec-sast:
before_script:
- |
cat <<EOF > ~/.netrc
machine gitlab.com
login $CI_DEPLOY_USER
password $CI_DEPLOY_PASSWORD
EOF

SAST 규칙 세트 맞춤 설정

GitLab에서는 소스 코드를 수정한 다음, 이 소스 코드의 보안 취약점을 찾기 위해 코딩 규칙 위반 여부를 점검합니다. 이러한 코딩 규칙은 SAST 스캐너가 보고하는 보안 취약점 유형을 결정하죠. SAST 스캐너의 동작은 스캔 중인 리포지터리에 코딩 규칙 세트 구성 파일을 정의해 다음과 같이 맞춤 설정할 수 있습니다.

  • 사전 정의된 규칙 비활성화(모든 분석기에 사용 가능)
  • 사전 정의된 규칙 재정의(모든 분석기에 사용 가능)
  • 맞춤 구성을 사용해 사전 정의된 규칙 대체(패스스루 방식 사용)
참고

인포그랩은 국내 금융 기업의 사내 보안 점검 코딩 규칙에 따라 GitLab의 코딩 규칙을 맞춤형으로 재구성, 설정해 드립니다. 이로써 GitLab의 다양한 보안 기능이 해당 기업에 잘 실행되도록 적극 지원합니다.

시크릿 스캐닝

GitHub Advanced Security는 시크릿 스캐닝 기능으로 비공개 리포지터리에 체크인된 키, 토큰과 같은 시크릿을 탐지하도록 서비스합니다. 푸시 보호가 활성화되면, GitHub은 리포지터리로 푸시될 때 시크릿을 탐지하죠. 유출된 보안키나 접근 토큰을 찾으면 차단하고 폐기할 수도 있습니다. GitLab에서도 시크릿 스캐닝 기능을 사용해 동일한 작업을 수행할 수 있습니다.

시크릿 탐지

GitLab에서 시크릿을 탐지하려면 Secret Detection을 활성화해야 합니다. 이를 위해 다음 템플릿을 .gitlab-ci.yml 파일에 추가합니다.

include:
- template: Security/Secret-Detection.gitlab-ci.yml

템플릿이 추가되면, 새로운 코드가 체크인되거나 파이프라인이 실행될 때마다 시크릿 스캐너가 소스 코드를 스캔, 알려진 시크릿을 검색합니다. 파이프라인 Secret Detection은 상황에 따라 코드의 다양한 측면을 스캔하죠. 기본 브랜치를 제외한 모든 방법에서는 전체 소스가 아닌 커밋을 스캔합니다.

MR을 생성할 때, Secret Detection은 소스 브랜치에서 수행된 모든 커밋을 스캔합니다. SAST와 마찬가지로, 취약점을 탐지하면 아래 이미지와 같이 상태, 심각도 등 상세 정보를 제공하고요. 또 이와 관련해 MR에서 취약점 무시나 이슈 생성 조치를 취하도록 지원하죠.

Secret Detection으로 탐지한 취약점 상세 정보. 출처=GitLab | 인포그랩 GitLab
Secret Detection으로 탐지한 취약점 상세 정보. 출처=GitLab

시크릿 탐지 작업 맞춤 설정

GitLab에서는 Secret Detection 작업 정의를 재정의해 변수, 의존성, 규칙 등 속성을 변경할 수 있습니다. 이는 Secret Detection 작업과 동일한 이름으로 작업을 선언해 수행할 수 있죠. 그다음, 새로운 작업을 템플릿에 포함해 나중에 사용하도록 저장했다가 불러와 쓸 수 있습니다.

예를 들어, 아래와 같이 시크릿 탐지 작업을 맞춤 설정할 수 있는데요. 이는

  • Secret Detection 작업이 실행되는 단계를 security로 재정의합니다.
  • 이력 스캐닝을 활성화합니다.
  • Secrets Analyzer 버전을 4.5로 변경합니다.
include:
- template: Security/Secret-Detection.gitlab-ci.yml

secret_detection:
stage: security
variables:
SECRET_DETECTION_HISTORIC_SCAN: "true"
SECRETS_ANALYZER_VERSION: "4.5"

시크릿 탐지 규칙 세트 맞춤 설정

GitLab에서는 Secret Detection 분석기로 GitLab UI에서 보고되는 시크릿을 맞춤 설정할 수 있습니다. 다음 맞춤 설정 옵션을 별도로 또는 조합해 사용하면 됩니다.

  • 사전 정의된 규칙 비활성화
  • 사전 정의된 규칙 재정의
  • 맞춤 구성 합성
  • 원격 구성 파일 지정

예를 들어, 아래와 같이 프로젝트의 루트 디렉터리에 .gitlab/secret-detection-ruleset.toml 파일을 생성해 기본 GitLeaks 패키지를 확장하고요. 테스트 토큰을 탐지에서 제외할 수 있습니다.

### extended-gitleaks-config.toml
title = "extension of gitlab's default gitleaks config"

[extend]
### 기본 패키지 경로 확장
path = "/gitleaks.toml"

[allowlist]
description = "탐지에서 무시할 테스트 토큰 허용 목록"
regexTarget = "match"
regexes = [
'''glpat-1234567890abcdefghij''',
]

유출된 시크릿 자동 처리

GitLab에서 Secret Detection으로 유출된 시크릿을 발견하면 이를 자동 폐기할 수 있습니다. 또 시크릿을 발급한 파트너에게 알려 파트너가 시크릿을 폐기하거나 소유자에게 알리며 남용을 방지할 수 있죠.

아울러 GitLab은 GitLab.com의 공개 리포지터리에서 발급된 자격 증명이 유출되면 파트너에게 알려줍니다. 클라우드 또는 SaaS 제품을 운영하는데 이러한 알림을 받고 싶다면 GitLab Token Revocation API에서 호출되는 파트너 API를 구현하면 됩니다.

공급망 보안 관리

GitHub Advanced Security는 자동화된 보안과 버전 업데이트, 원클릭 SBOM(Software Bill Of Materials)으로 소프트웨어 공급망을 안전하게 관리, 보고하도록 지원합니다. GitLab에서도 의존성 스캐닝, SBOM 기능을 사용해 공급망 보안 요구를 충족할 수 있죠.

의존성 스캐닝

GitLab에서 의존성 스캐닝을 활성화하려면, 다음 템플릿을 .gitlab-ci.yml 파일에 추가합니다.

include:
- template: Jobs/Dependency-Scanning.gitlab-ci.yml

템플릿이 추가되면, 새로운 코드가 체크인될 때마다 의존성 스캐닝이 수행돼 프로젝트에서 사용한 패키지 관리자를 자동 탐지합니다. 그다음, 사용된 의존성을 스캔해 알려진 취약점을 검색하죠.

feature 브랜치와 target 브랜치 간 차이의 의존성 스캐닝 결과는 MR 위젯에 표시됩니다. MR 위젯은 MR에서 수행된 변경 사항 때문에 새로 도입된 의존성 스캐닝 결과와 해결책을 보여줍니다.

취약점을 탐지하면 아래 이미지와 같이 상태, 심각도, 식별자, 증거, 해결책 등 상세 정보를 제공합니다. SAST, Secret Detection과 마찬가지로, 이와 관련해 MR에서 취약점 무시나 이슈 생성 조치를 취할 수 있죠.

의존성 스캐닝으로 발견한 취약점 상세 정보. 출처=GitLab | 인포그랩 GitLab
의존성 스캐닝으로 발견한 취약점 상세 정보. 출처=GitLab

의존성 스캐닝 구성

GitLab에서는 의존성 스캐닝 작업 정의를 재정의해 변수나 의존성 등 속성을 변경할 수 있습니다. 이를 위해 재정의하려는 작업과 동일한 이름으로 새 작업을 선언하고요. 그다음, 새로운 작업을 템플릿에 포함해 나중에 사용하도록 저장했다가 불러와 쓸 수 있습니다.

예를 들어, 아래와 같이 의존성 스캐닝을 구성할 수 있는데요. 다음 코드는

  • 취약한 의존성의 자동 수정 기능을 비활성화합니다.
  • 의존성 스캐닝 전에 빌드 작업을 완료하도록 요구합니다.
include:
- template: Jobs/Dependency-Scanning.gitlab-ci.yml

gemnasium-dependency_scanning:
variables:
DS_REMEDIATE: "false"
dependencies: ["build"]

SBOM 생성

GitLab은 프로젝트 또는 그룹 의존성과 해당 의존성의 주요 세부 사항(알려진 취약점 포함)을 검토하는 SBOM(의존성 목록)을 제공합니다. SBOM은 프로젝트 의존성, 기존 또는 새로운 발견 항목을 포함한 의존성 모음인데요. 의존성 스캐너가 기본 브랜치에서 성공적으로 실행되면 의존성 목록이 생성됩니다.

의존성 목록에 액세스하려면:

  1. GitLab 홈페이지 좌측 사이드바에서 Search or Go to를 선택하고 프로젝트를 찾습니다.
  2. Secure > Dependency List를 선택합니다.
    GitLab 의존성 목록. 출처=GitLab | 인포그랩 GitLab
    GitLab 의존성 목록. 출처=GitLab

여기서 다음 의존성 정보를 확인할 수 있습니다.

필드설명
Component의존성 이름과 버전
Packager의존성을 설치하는 데 사용된 패키저
Location시스템 의존성은 스캔 된 이미지를 나열합니다. 애플리케이션 의존성은 프로젝트에서 의존성을 선언한 패키저별 잠금 파일 링크를 보여줍니다. 또 상위 수준 의존성에 경로가 있으면 이를 보여줍니다.
License의존성의 소프트웨어 라이선스 링크. 의존성에서 탐지된 취약점 수를 포함하는 경고 배지를 표시합니다.
Projects의존성을 포함하는 프로젝트 링크. 동일한 의존성이 있는 여러 프로젝트가 있으면, 이 프로젝트의 총수를 보여줍니다. 이 의존성이 있는 프로젝트로 이동하려면 프로젝트 번호를 선택한 다음 이름을 검색, 클릭합니다. 프로젝트 검색 기능은 그룹 계층 구조에 최대 600개 발생이 있는 그룹에만 지원합니다.

보안, 컴플라이언스 관리

GitHub Advanced Security는 보안 메트릭과 인사이트 확인, 코드 보안 위험 평가 기능을 제공합니다. GitLab에서도 보안 대시보드와 취약점 보고서 기능으로 이러한 내용을 쉽게 확인할 수 있죠.

보안 메트릭, 인사이트 보기

GitLab은 애플리케이션 보안 상태를 평가하도록 보안 대시보드를 제공합니다. 이 대시보드는 프로젝트에서 실행되는 보안 스캐너로 탐지한 취약점의 메트릭, 평가, 차트를 표시하죠. 보안 대시보드에서 볼 수 있는 상세 정보는 아래와 같습니다.

  • 그룹 내 모든 프로젝트의 30일, 60일, 또는 90일간 취약점 추세
  • 취약점 심각도에 따른 각 프로젝트 등급
  • 지난 365일 동안 감지된 취약점 총수와 심각도
    GitLab 보안 대시보드. 출처=GitLab | 인포그랩 GitLab
    GitLab 보안 대시보드. 출처=GitLab

보안 대시보드에는 다음 방법으로 액세스할 수 있는데요.

  1. GitLab 홈페이지 좌측 사이드바에서 Search or Go to를 선택하고 프로젝트나 그룹을 찾습니다.
  2. 사이드 탭에서 Secure > Security dashboard를 선택합니다.
  3. 필요한 항목을 필터링하고 검색합니다.

그룹 보기는 그룹 내 모든 프로젝트의 보안 상태를 표시합니다. 프로젝트 보기는 해당 프로젝트의 보안 상태를 나타냅니다.

GitLab 보안 대시보드에서 취약점 심각도 추세를 날짜별로 나타낸 모습. 출처=GitLab | 인포그랩 GitLab
GitLab 보안 대시보드에서 취약점 심각도 추세를 날짜별로 나타낸 모습. 출처=GitLab

참고

컴플라이언스 파이프라인 기능은 GitLab Ultimate에서 이용할 수 있습니다. 국내 한 대표 인터넷 뱅킹 기업은 ‘컴플라이언스 파이프라인으로 전체 프로젝트 보안 점검, 필수 활동을 강제로 수행할 수 있다’는 장점 때문에 GitLab Ultimate 에디션을 대량 구매해 사용합니다. 이는 GitLab 고객이 ‘Ultimate 라이선스 구독 효과가 구독 비용보다 훨씬 더 크다’고 판단한 사례입니다.

코드 보안 위험 평가

GitLab은 취약점 보고서(Vulnerability Report) 기능으로 메인 브랜치의 스캔 결과를 제공합니다. 취약점 보고서는 다음 정보를 알려줍니다.

  • 심각도 수준별 취약점 총계
  • 일반 취약점 속성 필터
  • 각 취약점 세부 사항(표 형식)
    GitLab 취약점 보고서 목록. 출처=GitLab | 인포그랩 GitLab
    GitLab 취약점 보고서 목록. 출처=GitLab

GitLab 취약점 보고서 목록 페이지에서 특정 취약점을 클릭하면 해당 취약점 페이지로 이동합니다. 이 페이지에서는 취약점 설명, 위치, 식별자 등 세부 정보를 볼 수 있죠. 아래 이미지는 SAST 스캐너로 탐지한 SQL Injection 취약점 페이지인데요. 여기서 보안 팀은 취약점 상태를 변경하고 이슈를 생성해 변경 사항을 더 잘 추적하도록 구성할 수 있습니다.

GitLab SAST 스캐너로 탐지한 SQL Injection 취약점 페이지. 출처=GitLab | 인포그랩 GitLab
GitLab SAST 스캐너로 탐지한 SQL Injection 취약점 페이지. 출처=GitLab

아울러 취약점 페이지에서는 GitLab 인공지능(AI) 기능 모음인 GitLab Duo로 취약점을 자동 설명하고, 이를 해결하는 MR도 자동 생성할 수 있죠. GitLab Duo의 취약점 설명 기능은 대규모 언어 모델(LLM)로 다음 기능을 수행하는데요.

  • 취약점을 요약합니다.
  • 개발자와 보안 분석가가 취약점을 이해하고, 취약점 악용 가능성과 수정 방법을 파악하도록 돕습니다.
  • 제안된 완화 조치를 제공합니다.
    GitLab Duo의 취약점 설명 기능을 실행한 화면(오른쪽). 출처=GitLab | 인포그랩 GitLab
    GitLab Duo의 취약점 설명 기능을 실행한 화면(오른쪽). 출처=GitLab

추천 자료

GitLab Ultimate가 조직의 보안과 개발자 효율성을 향상하는 방법을 더 알고 싶다면 다음 자료를 확인하세요.

맺음말

GitLab Ultimate는 GitHub Advanced Security보다 더 포괄적이고 강력한 보안 기능을 제공합니다. 이는 소프트웨어 개발 라이프사이클 전반에 걸쳐 DevSecOps로 개발과 보안을 완벽하게 통합하죠. GitLab의 다양한 추가 보안 스캐너, 세부 보안 가이드라인, 맞춤형 권한 설정 등을 활용하면 소프트웨어를 더 빠르고 안전하게 개발하고 배포할 수 있습니다.

이 글이 GitHub에서 GitLab으로 마이그레이션을 고민하는 분들에게 도움이 됐길 바랍니다. 특히 GitHub Advanced Security에서 GitLab Ultimate로 전환하면 조직의 보안과 효율성을 획기적으로 향상할 수 있습니다. GitLab Ultimate의 뛰어난 보안 기능을 마음껏 누리며 조직의 보안을 최고로 강화하고 개발팀의 생산성을 극대화하세요.

참고 자료

  1. GitLab vs GitHub 차이점 단기 속성으로 알아보기
  2. GitLab과 GitHub, 실무에서 어떤 차이가 있을까요?
  3. GitLab CI/CD vs GitHub Action 비교하기
  4. 돌아온 GitLab vs GitHub, GitLab과 GitHub을 비교해보자(decision kit)
  5. GitHub에서 GitLab으로 가져오기
  6. GitHub에서 GitLab으로 마이그레이션 쉽게 하기
  7. GitLab 밋업으로 알아보는 마이그레이션 이야기
  8. GitLab 공식 기술 문서 한글판 by 인포그랩
  9. Why Ultimate?
  10. Static Application Security Testing (SAST)
  11. Secret Detection
  12. Dependency Scanning
  13. Dependency list
  14. GitLab Security Dashboards and Security Center
  15. Vulnerability Report
  16. Security scanner integration
  17. Policies
  18. Permissions and roles
  19. The architecture of SAST tools: An explainer for developers
  20. About GitHub Advanced Security

인포그랩은 GitLab과 DevOps를 맞춤형으로 기술 지원합니다. GitLab(Omnibus/Cloud Native Hybrid) 구축 지원이 필요하시면 문의하기로 연락해 주십시오.