Resources 리소스

이벤트

DevSecOps 제대로 시작하기 – GitLab 보안 기능 가이드 ②

2025-05-16

[시리즈 미리보기]

① GitLab 보안 기능, 이것만은 꼭 

② 실무에 바로 쓰는 보안 기능 설정법  ◀

③ GitLab vs 타 보안 도구 비교

 


 

 

1편에서는 GitLab이 제공하는 주요 보안 기능들을 정리해봤습니다. 이번 글에서는 그 기능들을 실제 프로젝트에 어떻게 설정하고 활용할 수 있는지 살펴보려 합니다. ‘.gitlab-ci.yml’ 설정 방식부터 기능별 지원 언어, 탐지 가능한 취약점까지 실무에 필요한 내용을 중심으로 소개합니다.

 

 

1. 주요 기능별 설정 방법

 

GitLab은 보안 기능을 .gitlab-ci.yml에 템플릿을 포함하는 방식으로 쉽게 설정할 수 있도록 지원합니다. 기본 제공되는 보안 템플릿을 프로젝트에 포함시키기만 하면, 복잡한 구성 없이도 보안 스캔을 바로 실행할 수 있습니다.

 

① 정적 애플리케이션 보안 테스트(SAST)

• 최신 버전의 GitLab에서는 기본적으로 검출이 가능하지만, 오래된 버전의 경우 업데이트가 필요합니다.

• GitLab 무료 버전에서도 스캐닝이 제공됩니다.

• SAST 결과는 보안 대시보드 및 Merge Request에서 확인할 수 있습니다.

🔽 설정 예시

 

② 동적 애플리케이션 보안 테스트(DAST)

• GitLab Ultimate에서 제공되는 기능으로, 실행 중인 웹 애플리케이션과 API에 대한 보안 검사를 수행합니다.

• API 모드와 웹사이트 모드 중 선택하여 사용할 수 있습니다.

🔽 설정 예시

 

③ 의존성 스캐닝(Dependency Scanning)

• GitLab Ultimate에서 지원하는 기능으로, 현재 사용중인 패키지나 라이브러리 중에 보안 취약한 것들을 바로 검출 가능합니다.

• 스캐닝 결과는 보안 대시보드와 Merge Request에서 확인할 수 있습니다.

🔽 설정 예시

 

④ 컨테이너 스캐닝(Container Scanning)

• GitLab 무료 버전에서도 제공되며, 운영 체제나 기타 패키지에 포함된 취약점을 스캐닝을 통해 탐지할 수 있습니다.

🔽 설정 예시

 

⑤ 시크릿 감지(Secret Detection)

• 코드베이스 내에 하드코딩된 패스워드, API 키, 인증 토큰 등의 민감 정보를 자동으로 감지합니다.

  • • GitLab 무료 버전에서도 시크릿 감지를 지원합니다.

• 기본 제공되는 시크릿 패턴 외에도, 사용자 정의 패턴을 추가하여 감지 범위를 확장할 수 있습니다.

🔽 설정 예시

 

라이선스 스캐닝(License Scanning)

• 프로젝트에서 사용하는 라이선스를 분석하여, 컴플라이언스 위반 가능성을 사전에 식별합니다.

• 허용/차단 라이선스 목록을 구성해 조직의 정책에 맞는 라이선스 관리를 수행할 수 있습니다.

• 해당 기능은 GitLab Ultimate 버전부터 제공됩니다.

🔽 설정 예시

 

코드형 인프라(IaC) 스캐닝

• Terraform, AWS CloudFormation, Ansible과 같은 인프라 코드의 보안 설정을 검사합니다.

🔽 설정 예시

 

⑧ API 보안 테스트

• DAST를 API 모드로 설정하여 API 보안 테스트를 수행할 수 있습니다.

• API의 보안 취약점을 검사하여 API를 통한 공격 벡터를 식별하고 방지합니다.

  • • 해당 기능은 GitLab Ultimate 버전부터 제공됩니다.

🔽 설정 예시

 

⑨ 퍼즈 테스팅(Fuzz Testing)

• 애플리케이션에 무작위 데이터를 입력하여, 예상치 못한 동작이나 취약점을 발견합니다.

• 해당 기능은 GitLab Ultimate 버전부터 제공됩니다.

🔽 설정 예시

 

⑩ 클러스터 이미지 스캐닝(Cluster Image Scanning)

• 쿠버네티스 클러스터에서 실행 중인 이미지들을 스캔하여 보안 취약점을 탐지합니다.

• 이 기능을 사용하려면 GitLab 클러스터 통합 및 보안 정책 구성이 필요합니다.

• 해당 기능은 GitLab Ultimate 버전부터 제공됩니다.

 

⑪ 컴플라이언스 관리

• GitLab의 컴플라이언스 센터를 통해 조직 전체의 정책 위반 여부를 모니터링할 수 있습니다.

• 그룹 단위로 프레임워크를 설정하고, 프로젝트에 적용해 컴플라이언스를 체계적으로 관리할 수 있습니다.

• 컴플라이언스 보고서를 생성하여 규제 준수 상태를 모니터링할 수 있습니다.

• 해당 기능은 GitLab Ultimate 버전부터 제공됩니다.

 

2. 주요 기능별 지원되는 언어

 

GitLab의 보안 기능은 다양한 프로그래밍 언어를 지원합니다. 각 기능별로 지원하는 언어는 다음과 같습니다.

 

기능 지원 언어
정적 애플리케이션 보안 테스트 (SAST)
  • Java, Python, JavaScript, Go, Ruby, Kotlin 등
동적 애플리케이션 보안 테스트 (DAST)
  • 언어 무관 (모든 웹 애플리케이션에 능)
의존성 스캐닝
  • Java, Python, Rudy, .NET 등
컨테이너 스캐닝
  • 언어 무관 (Dockerfile 기반 모든 애플리케이션에 적용 가능)
시크릿 감지
  • 언어 무관 (텍스트 기반 모든 파일에 적용 가능)
라이선스 스캐닝
  • 언어별 의존성 스캐닝과 유사한 언어 범위 지원
코드형 인프라(IaC) 스캐닝
  • Terraform, AWS CloudFormation, Ansible 등
API 보안 테스트
  • 언어 무관 (OpenAPI, GraphQL, gRPC 등 API 대상)
퍼즈(Fuzz) 테스팅
  • C/C++, Go, Rust, Swift 등 (퍼징 엔진 기반)
클러스터 이미지 스캐닝
  • 언어 무관 (쿠버네티스 실행 이미지 기반)

 

 

3. 탐지 가능한 취약점

 

GitLab은 각 보안 기능별로 다양한 유형의 보안 취약점을 사전에 식별할 수 있도록 구성되어 있습니다. 기능별로 탐지 가능한 취약점은 다음과 같습니다.

 

기능 탐지 가능한 취약
정적 애플리케이션 보안 테스트 (SAST)
  • SQL 인젝션, XSS, 하드코딩된 인증정보, 불안전한 암호화 등
동적 애플리케이션 보안 테스트 (DAST)
  • 보안 설정 오류, CSRF, XSS, 인증 세션 관리 취약점 등
의존성 스캐닝
  • 알려진 CVE 기반 라이브러리 및 패키지 등
컨테이너 스캐닝
  • OS 패키지 및 의존성 이미지 등
시크릿 감지
  • API 키, 개인 인증 토큰, SSH 키 등
라이선스 스캐닝
  • 사용 제한이 있는 라이선스, 라이선스 컴플라이언스 등
코드형 인프라(IaC) 스캐닝
  • 과도한 권한 설정, 클라우드 인프라의 보안 설정 오류 등
API 보안 테스트
  • API 인증 취약점, 부적절한 언어 등
퍼즈(Fuzz) 테스팅
  • 버퍼 오버플로우, 메모리 누수 등
클러스터 이미지 스캐닝
  • 알려진 CVE, 클러스터 내 이미지 보안 위험 등
컴플라이언스 관리 규제 요구사항 미충족, 보안 정책 위반 

 

 


 

GitLab은 DevSecOps를 처음 도입하는 팀은 물론 이미 보안 체계를 갖춘 조직에게도 실질적인 도움을 줄 수 있는 통합 보안 플랫폼입니다.

 

다음 편에서는 GitLab과 GitHub, Jenkins 등 주요 도구들의 보안 접근 방식을 비교하고, 실제 기업들이 DevSecOps를 어떻게 도입 및 운영하고 있는지 사례 중심으로 살펴보겠습니다. DevSecOps 전환을 고민 중이라면, 다음 글도 꼭 주목해 주세요😊

 

 

 

 

 

교육안내
문의하기