InfoGrab DocsInfoGrab Docs

애플리케이션 보안 테스트 도입

요약

애플리케이션 보안 테스트 도입을 단계적으로 계획하면 더 안전한 개발 방식으로 원활하게 전환할 수 있습니다. 이 가이드는 조직 전반에 GitLab 애플리케이션 보안 테스트를 단계적으로 도입하는 방법을 설명합니다. 이 가이드는 구성, 취약점 관리, 예방 전략을 포함해 GitLab 애플리케이션 보안 테스트 기능의 단계적 도입을 계획하고 실행하는 방법을 다룹니다.

애플리케이션 보안 테스트 도입을 단계적으로 계획하면 더 안전한 개발 방식으로 원활하게 전환할 수 있습니다.

이 가이드는 조직 전반에 GitLab 애플리케이션 보안 테스트를 단계적으로 도입하는 방법을 설명합니다. 파일럿 그룹에서 시작해 적용 범위를 점진적으로 넓히면 업무 중단을 최소화하면서 보안 효과를 극대화할 수 있습니다. 단계적 접근 방식을 따르면 모든 프로젝트로 확장하기 전에 팀이 애플리케이션 보안 테스트 도구와 워크플로에 익숙해질 수 있습니다.

사전 요구 사항:

  • GitLab Ultimate.
  • GitLab CI/CD 파이프라인에 대한 이해. 다음 GitLab 자율 학습 과정이 입문 과정으로 적합합니다:
  • 조직의 보안 요구 사항과 위험 허용 수준에 대한 이해.

범위#

이 가이드는 구성, 취약점 관리, 예방 전략을 포함해 GitLab 애플리케이션 보안 테스트 기능의 단계적 도입을 계획하고 실행하는 방법을 다룹니다. 코드베이스를 보호하면서 기존 워크플로의 중단을 최소화하기 위해 애플리케이션 보안 테스트를 점진적으로 도입하려는 상황을 전제로 합니다.

단계#

도입은 두 개의 주요 단계로 구성됩니다:

  1. 파일럿 단계: 제한된 프로젝트 집합에 애플리케이션 보안 테스트를 도입해 구성을 검증하고 팀을 교육합니다.
  2. 도입 단계: 파일럿에서 얻은 지식을 활용해 모든 대상 프로젝트로 애플리케이션 보안 테스트를 확대합니다.

파일럿 단계#

파일럿 단계에서는 전사 확산에 앞서 최소한의 위험으로 애플리케이션 보안 테스트를 적용해 볼 수 있습니다.

파일럿 단계를 시작하기 전에 다음 지침을 고려합니다:

  • 보안 팀원, 개발자, 프로젝트 관리자를 포함한 주요 이해관계자를 파악합니다.
  • 코드베이스를 대표하면서도 일상 업무에 치명적이지 않은 파일럿 프로젝트를 선정합니다.
  • 개발자와 보안 팀원을 위한 교육 세션 일정을 잡습니다.
  • 개선 정도를 측정할 수 있도록 현재의 보안 관행을 문서화합니다.

파일럿 목표#

파일럿 단계에서는 다음과 같은 주요 목표를 달성할 수 있습니다:

  • 개발 속도를 늦추지 않고 애플리케이션 보안 테스트 도입

    파일럿 기간에는 머지 리퀘스트를 차단하지 않으면서 애플리케이션 보안 테스트 결과를 UI에서 개발자에게 제공합니다. 이 방식은 현재 보안 상태에 대한 유용한 데이터를 수집하면서도 파일럿 범위 밖 프로젝트에 미치는 위험을 최소화합니다. 도입 단계에서는 머지 리퀘스트 승인 정책을 사용해 머지 리퀘스트에서 취약점이 탐지될 때 승인 게이트를 추가해야 합니다.

  • 확장 가능한 탐지 방법 확립

    전사 확산 범위의 모든 프로젝트로 넓힐 수 있는 방식으로 파일럿 프로젝트에 애플리케이션 보안 테스트를 도입합니다. 확장성이 좋고 프로젝트 전반에 표준화할 수 있는 구성에 집중합니다.

  • 스캔 시간 테스트

    대표적인 코드베이스와 애플리케이션에서 스캔 시간을 테스트합니다.

  • 취약점 해결 워크플로 시뮬레이션

    개발자 워크플로에서 취약점을 탐지하고 분류하고 분석하고 해결하는 과정을 시뮬레이션합니다. 엔지니어가 탐지 결과에 따라 조치할 수 있는지 확인합니다.

  • 유지 관리 비용 비교

    단일 솔루션의 유지 관리 비용과 여러 엔드포인트 솔루션을 통합하는 비용을 비교합니다. IDE, 머지 리퀘스트, 파이프라인에 얼마나 잘 통합되는지 확인합니다.

개발자를 위한 이점#

파일럿 그룹의 개발자는 다음을 얻습니다:

  • 애플리케이션 보안 테스트 방법과 결과 해석 방법에 대한 이해.
  • 취약점이 기본 브랜치로 머지되는 것을 예방한 경험.
  • 기본 브랜치에서 취약점이 탐지될 때 시작되는 취약점 관리 워크플로에 대한 이해.

보안 관리를 위한 이점#

파일럿에 참여하는 보안 팀원은 다음을 얻습니다:

  • GitLab에서 취약점을 추적하고 관리한 경험.
  • 보안 기준선을 세우고 현실적인 해결 목표를 설정할 데이터.
  • 전사 확산 전에 보안 정책을 다듬을 수 있는 인사이트.

파일럿 계획#

적절한 계획이 있어야 파일럿 단계가 효과를 냅니다.

역할과 책임#

다음 항목의 담당자를 정의합니다:

  • 애플리케이션 보안 테스트 구성
  • 스캔 결과 검토
  • 취약점 분류
  • 해결 작업 관리
  • 팀원 교육
  • 파일럿 성과 측정

파일럿 범위#

파일럿 단계에 포함할 프로젝트를 신중하게 선정합니다.

파일럿 프로젝트를 선정할 때 다음 요소를 고려합니다:

  • 애플리케이션 보안 테스트의 효과를 확인할 수 있도록 서로 다른 기술 스택의 프로젝트를 포함합니다.
  • 실시간 결과를 확인할 수 있도록 개발이 활발한 프로젝트를 선택합니다.
  • 새로운 보안 관행을 배우는 데 열려 있는 팀의 프로젝트를 선정합니다.
  • 미션 크리티컬 애플리케이션으로 시작하지 않습니다.

애플리케이션 보안 테스트 도입 순서#

애플리케이션 보안 테스트는 다음 순서로 도입합니다. 이 순서는 가치와 배포 난이도의 균형을 맞춘 것입니다.

  • 의존성 스캐닝
  • SAST
  • Advanced SAST
  • 파이프라인 시크릿 탐지
  • 시크릿 푸시 보호
  • 컨테이너 스캐닝
  • DAST
  • API 보안 테스트
  • IaC 스캐닝
  • 운영 컨테이너 스캐닝

파일럿 프로젝트 테스트#

계획이 끝나면 파일럿 프로젝트에 애플리케이션 보안 테스트 도입을 시작합니다.

파일럿 프로젝트 테스트 설정#

사전 요구 사항:

  • 애플리케이션 보안 테스트를 활성화할 프로젝트에 대한 Maintainer 권한이 있어야 합니다.

범위에 속한 각 프로젝트에서 다음 단계를 수행합니다:

  1. 상단 바에서 Search or go to를 선택하고 프로젝트를 찾습니다.
  2. 왼쪽 사이드바에서 Secure > Security configuration을 선택합니다.
  3. Security configuration을 확장합니다.
  4. 프로젝트의 스택에 맞는 애플리케이션 보안 테스트를 활성화합니다.

자세한 내용은 보안 구성을 참고합니다.

개발자를 위해#

보안 탐지 결과를 확인할 수 있는 도구를 개발자에게 소개합니다.

파이프라인 결과#

개발자는 파이프라인 결과에서 보안 탐지 결과를 바로 확인할 수 있습니다.

사전 요구 사항:

  • 프로젝트에 대한 Developer, Maintainer 또는 Owner 권한.

파이프라인 결과를 보려면 다음 단계를 수행합니다:

  1. 상단 바에서 Search or go to를 선택하고 프로젝트를 찾습니다.
  2. 왼쪽 사이드바에서 Build > Pipelines를 선택합니다.
  3. 검토할 파이프라인을 선택합니다.
  4. 파이프라인 세부 정보에서 Security 탭을 선택해 탐지된 취약점을 확인합니다.

자세한 내용은 파이프라인에서 보안 스캔 결과 보기를 참고합니다.

머지 리퀘스트 리포트#

머지 리퀘스트의 보안 스캔 결과는 머지 리퀘스트 리포트를 참고합니다.

VS Code 통합#

개발자는 IDE에서 보안 탐지 결과를 바로 확인할 수 있습니다.

사전 요구 사항:

  • 프로젝트에 대한 Developer, Maintainer 또는 Owner 권한.

VS Code에서 보안 탐지 결과를 보려면 다음 단계를 수행합니다:

  1. GitLab for VS Code 확장 프로그램을 설치합니다.
  2. 확장 프로그램을 GitLab 인스턴스에 연결합니다.
  3. 개발 환경을 벗어나지 않고 확장 프로그램으로 보안 탐지 결과를 확인합니다.

자세한 내용은 GitLab for VS Code 확장 프로그램을 참고합니다.

취약점 관리 워크플로#

탐지된 취약점을 처리할 체계적인 워크플로를 확립합니다.

취약점 관리 워크플로는 네 개의 핵심 단계로 구성됩니다:

  1. 탐지: 파이프라인의 자동화된 애플리케이션 보안 테스트로 취약점을 찾습니다.
  2. 분류: 탐지된 취약점의 심각도와 영향을 평가합니다.
  3. 분석: 근본 원인을 조사하고 해결에 가장 적합한 방법을 결정합니다.
  4. 해결: 취약점을 없애는 수정 사항을 적용합니다.

효율적인 분류#

GitLab은 취약점 분류를 간소화하는 여러 기능을 제공합니다:

  • 영향이 큰 이슈부터 다룰 수 있게 하는 취약점 필터.
  • 우선순위를 정하는 데 쓰는 심각도 및 신뢰도 등급.
  • 미해결 이슈의 가시성을 유지하는 취약점 추적.
  • 위험 평가 데이터.

자세한 내용은 분류를 참고합니다.

분류 과정에는 보안 이해관계자와 함께 취약점 리포트를 정기적으로 검토하는 절차가 포함되어야 합니다.

효율적인 해결#

다음 GitLab 기능으로 해결 과정을 간소화합니다:

  • 특정 취약점 유형에 대한 자동 해결 제안.
  • 취약점 세부 정보에서 바로 머지 리퀘스트 생성.
  • 진행 상황을 확인하는 취약점 히스토리 추적.
  • 더 이상 탐지되지 않는 취약점 자동 해결 처리.

자세한 내용은 해결을 참고합니다.

티켓 시스템과 통합#

GitLab 이슈로 취약점 해결에 필요한 작업을 추적할 수 있습니다. Jira가 주 티켓 시스템이라면 Jira 이슈를 사용할 수도 있습니다.

자세한 내용은 취약점을 GitLab 및 Jira 이슈와 연결을 참고합니다.

취약점 예방#

취약점이 애초에 유입되지 않도록 막는 기능을 도입합니다.

머지 리퀘스트 승인 정책#

머지 리퀘스트 승인 정책을 사용하면 머지 리퀘스트의 취약점 개수와 심각도가 특정 임계값을 넘을 때 승인 요건을 추가할 수 있습니다. 이를 통해 애플리케이션 보안 팀원의 추가 검토를 거치게 되어 검증 수준이 한 단계 높아집니다.

사전 요구 사항:

  • 그룹에 대한 Owner 권한 또는 manage_security_policy_link 권한이 있는 사용자 지정 역할.

보안 검토를 요구하도록 승인 정책을 구성하려면 다음 단계를 수행합니다:

  1. 상단 바에서 Search or go to를 선택하고 그룹을 찾습니다.
  2. 왼쪽 사이드바에서 Secure > Policies를 선택합니다.
  3. New policy를 선택합니다
  4. Merge request approval policy 창에서 Select policy를 선택합니다.
  5. 보안 팀원의 승인을 요구하는 머지 리퀘스트 승인 정책을 추가합니다.

자세한 내용은 머지 리퀘스트의 보안 승인을 참고합니다.

도입 단계#

파일럿이 성공하면 애플리케이션 보안 테스트를 모든 대상 프로젝트로 확대합니다.

도입 단계를 시작하기 전에 다음을 고려합니다:

  • 파일럿 단계의 결과를 평가합니다.
  • 배운 점과 모범 사례를 문서화합니다.
  • 파일럿 경험을 바탕으로 교육 자료를 준비합니다.
  • 파일럿 피드백을 반영해 도입 계획을 업데이트합니다.

팀원에 대한 액세스 정의#

애플리케이션 보안 테스트 작업에는 특정 역할 또는 권한이 필요합니다. 도입 단계에 참여하는 각 구성원에 대해 수행할 작업에 맞춰 액세스 권한을 정의합니다.

  • Developer 권한이 있는 사용자는 자신의 프로젝트와 머지 리퀘스트의 취약점을 볼 수 있습니다.
  • Maintainer 권한이 있는 사용자는 프로젝트의 보안 구성을 설정할 수 있습니다.
  • admin_vulnerability 권한이 있는 사용자 지정 역할을 부여받은 사용자는 취약점을 관리하고 분류할 수 있습니다.
  • manage_security_policy_link 권한이 있는 사용자 지정 역할을 부여받은 사용자는 그룹과 프로젝트에 정책을 적용할 수 있습니다.

자세한 내용은 역할 및 권한을 참고합니다.

도입 목표#

도입 단계의 목표는 파일럿에서 얻은 지식과 경험을 활용해 범위에 속한 모든 프로젝트에 애플리케이션 보안 테스트를 적용하는 것입니다.

도입 계획#

파일럿에서 정한 역할과 책임을 검토하고 업데이트합니다. 동일한 팀 구성으로 도입 단계도 진행할 수 있지만, 범위가 넓어지면 팀원을 더 추가해야 할 수 있습니다.

대규모 애플리케이션 보안 테스트 구현#

정책 기능을 사용해 보안 도입을 효율적으로 확장합니다.

정책 상속 사용#

정책 상속을 사용하면 관리해야 할 정책 수를 줄이면서 효과를 극대화할 수 있습니다.

Finance라는 최상위 그룹에 하위 그룹 A, B, C가 있는 상황을 생각해 봅니다. Finance 그룹의 모든 프로젝트에서 의존성 스캐닝과 시크릿 탐지를 실행하려고 합니다. 그리고 하위 그룹마다 서로 다른 애플리케이션 보안 테스트 도구 집합을 실행하려고 합니다.

이 목표를 달성하려면 Finance 그룹에 정책 3개를 정의할 수 있습니다:

  • 정책 1:
    • 의존성 스캐닝과 시크릿 탐지를 포함합니다.
    • Finance 그룹, 모든 하위 그룹, 그 프로젝트에 적용합니다.
  • 정책 2:
    • DAST와 API 보안 테스트를 포함합니다.
    • 하위 그룹 A와 B에만 적용 범위를 지정합니다.
  • 정책 3:
    • SAST를 포함합니다.
    • 하위 그룹 C에만 적용 범위를 지정합니다.

정책 집합 하나만 유지 관리하면 되면서도 프로젝트별로 서로 다른 요구를 유연하게 충족할 수 있습니다.

자세한 내용은 적용을 참고합니다.

스캔 실행 정책 구성#

스캔 실행 정책을 사용해 여러 프로젝트에 일관된 애플리케이션 보안 테스트를 적용합니다.

사전 요구 사항:

  • 애플리케이션 보안 테스트를 활성화할 그룹에 대한 Owner 권한 또는 manage_security_policy_link 권한이 있는 사용자 지정 역할이 있어야 합니다.
  1. 상단 바에서 Search or go to를 선택하고 프로젝트 또는 그룹을 찾습니다.
  2. 왼쪽 사이드바에서 Secure > Policies를 선택합니다.
  3. 파일럿 단계에서 사용한 애플리케이션 보안 테스트 구성을 바탕으로 스캔 실행 정책을 생성합니다.

자세한 내용은 보안 정책을 참고합니다.

점진적으로 확장#

먼저 파일럿 프로젝트에 적용하고 이어서 모든 대상 프로젝트로 단계적으로 확산합니다. 모든 그룹과 프로젝트에 정책을 적용할 때는 파이프라인과 머지 리퀘스트 워크플로에 변화가 생길 수 있으므로 모든 프로젝트 이해관계자가 이를 인지하도록 합니다. 예를 들어 이해관계자에게 알립니다

보안 정책은 단계적으로 도입합니다:

  1. 파일럿 단계의 프로젝트에 정책을 적용하는 것으로 시작합니다.
  2. 문제나 중단이 발생하는지 모니터링합니다.
  3. 정책의 적용 범위를 점차 넓혀 더 많은 프로젝트를 포함합니다.
  4. 모든 대상 프로젝트가 포함될 때까지 계속합니다.

자세한 내용은 정책 설계 지침을 참고합니다.

애플리케이션 보안 테스트 도입

GitLab v19.5
원문 보기

요약

애플리케이션 보안 테스트 도입을 단계적으로 계획하면 더 안전한 개발 방식으로 원활하게 전환할 수 있습니다. 이 가이드는 조직 전반에 GitLab 애플리케이션 보안 테스트를 단계적으로 도입하는 방법을 설명합니다. 이 가이드는 구성, 취약점 관리, 예방 전략을 포함해 GitLab 애플리케이션 보안 테스트 기능의 단계적 도입을 계획하고 실행하는 방법을 다룹니다.

애플리케이션 보안 테스트 도입을 단계적으로 계획하면 더 안전한 개발 방식으로 원활하게 전환할 수 있습니다.

이 가이드는 조직 전반에 GitLab 애플리케이션 보안 테스트를 단계적으로 도입하는 방법을 설명합니다. 파일럿 그룹에서 시작해 적용 범위를 점진적으로 넓히면 업무 중단을 최소화하면서 보안 효과를 극대화할 수 있습니다. 단계적 접근 방식을 따르면 모든 프로젝트로 확장하기 전에 팀이 애플리케이션 보안 테스트 도구와 워크플로에 익숙해질 수 있습니다.

사전 요구 사항:

  • GitLab Ultimate.
  • GitLab CI/CD 파이프라인에 대한 이해. 다음 GitLab 자율 학습 과정이 입문 과정으로 적합합니다:
  • 조직의 보안 요구 사항과 위험 허용 수준에 대한 이해.

범위#

이 가이드는 구성, 취약점 관리, 예방 전략을 포함해 GitLab 애플리케이션 보안 테스트 기능의 단계적 도입을 계획하고 실행하는 방법을 다룹니다. 코드베이스를 보호하면서 기존 워크플로의 중단을 최소화하기 위해 애플리케이션 보안 테스트를 점진적으로 도입하려는 상황을 전제로 합니다.

단계#

도입은 두 개의 주요 단계로 구성됩니다:

  1. 파일럿 단계: 제한된 프로젝트 집합에 애플리케이션 보안 테스트를 도입해 구성을 검증하고 팀을 교육합니다.
  2. 도입 단계: 파일럿에서 얻은 지식을 활용해 모든 대상 프로젝트로 애플리케이션 보안 테스트를 확대합니다.

파일럿 단계#

파일럿 단계에서는 전사 확산에 앞서 최소한의 위험으로 애플리케이션 보안 테스트를 적용해 볼 수 있습니다.

파일럿 단계를 시작하기 전에 다음 지침을 고려합니다:

  • 보안 팀원, 개발자, 프로젝트 관리자를 포함한 주요 이해관계자를 파악합니다.
  • 코드베이스를 대표하면서도 일상 업무에 치명적이지 않은 파일럿 프로젝트를 선정합니다.
  • 개발자와 보안 팀원을 위한 교육 세션 일정을 잡습니다.
  • 개선 정도를 측정할 수 있도록 현재의 보안 관행을 문서화합니다.

파일럿 목표#

파일럿 단계에서는 다음과 같은 주요 목표를 달성할 수 있습니다:

  • 개발 속도를 늦추지 않고 애플리케이션 보안 테스트 도입

    파일럿 기간에는 머지 리퀘스트를 차단하지 않으면서 애플리케이션 보안 테스트 결과를 UI에서 개발자에게 제공합니다. 이 방식은 현재 보안 상태에 대한 유용한 데이터를 수집하면서도 파일럿 범위 밖 프로젝트에 미치는 위험을 최소화합니다. 도입 단계에서는 머지 리퀘스트 승인 정책을 사용해 머지 리퀘스트에서 취약점이 탐지될 때 승인 게이트를 추가해야 합니다.

  • 확장 가능한 탐지 방법 확립

    전사 확산 범위의 모든 프로젝트로 넓힐 수 있는 방식으로 파일럿 프로젝트에 애플리케이션 보안 테스트를 도입합니다. 확장성이 좋고 프로젝트 전반에 표준화할 수 있는 구성에 집중합니다.

  • 스캔 시간 테스트

    대표적인 코드베이스와 애플리케이션에서 스캔 시간을 테스트합니다.

  • 취약점 해결 워크플로 시뮬레이션

    개발자 워크플로에서 취약점을 탐지하고 분류하고 분석하고 해결하는 과정을 시뮬레이션합니다. 엔지니어가 탐지 결과에 따라 조치할 수 있는지 확인합니다.

  • 유지 관리 비용 비교

    단일 솔루션의 유지 관리 비용과 여러 엔드포인트 솔루션을 통합하는 비용을 비교합니다. IDE, 머지 리퀘스트, 파이프라인에 얼마나 잘 통합되는지 확인합니다.

개발자를 위한 이점#

파일럿 그룹의 개발자는 다음을 얻습니다:

  • 애플리케이션 보안 테스트 방법과 결과 해석 방법에 대한 이해.
  • 취약점이 기본 브랜치로 머지되는 것을 예방한 경험.
  • 기본 브랜치에서 취약점이 탐지될 때 시작되는 취약점 관리 워크플로에 대한 이해.

보안 관리를 위한 이점#

파일럿에 참여하는 보안 팀원은 다음을 얻습니다:

  • GitLab에서 취약점을 추적하고 관리한 경험.
  • 보안 기준선을 세우고 현실적인 해결 목표를 설정할 데이터.
  • 전사 확산 전에 보안 정책을 다듬을 수 있는 인사이트.

파일럿 계획#

적절한 계획이 있어야 파일럿 단계가 효과를 냅니다.

역할과 책임#

다음 항목의 담당자를 정의합니다:

  • 애플리케이션 보안 테스트 구성
  • 스캔 결과 검토
  • 취약점 분류
  • 해결 작업 관리
  • 팀원 교육
  • 파일럿 성과 측정

파일럿 범위#

파일럿 단계에 포함할 프로젝트를 신중하게 선정합니다.

파일럿 프로젝트를 선정할 때 다음 요소를 고려합니다:

  • 애플리케이션 보안 테스트의 효과를 확인할 수 있도록 서로 다른 기술 스택의 프로젝트를 포함합니다.
  • 실시간 결과를 확인할 수 있도록 개발이 활발한 프로젝트를 선택합니다.
  • 새로운 보안 관행을 배우는 데 열려 있는 팀의 프로젝트를 선정합니다.
  • 미션 크리티컬 애플리케이션으로 시작하지 않습니다.

애플리케이션 보안 테스트 도입 순서#

애플리케이션 보안 테스트는 다음 순서로 도입합니다. 이 순서는 가치와 배포 난이도의 균형을 맞춘 것입니다.

  • 의존성 스캐닝
  • SAST
  • Advanced SAST
  • 파이프라인 시크릿 탐지
  • 시크릿 푸시 보호
  • 컨테이너 스캐닝
  • DAST
  • API 보안 테스트
  • IaC 스캐닝
  • 운영 컨테이너 스캐닝

파일럿 프로젝트 테스트#

계획이 끝나면 파일럿 프로젝트에 애플리케이션 보안 테스트 도입을 시작합니다.

파일럿 프로젝트 테스트 설정#

사전 요구 사항:

  • 애플리케이션 보안 테스트를 활성화할 프로젝트에 대한 Maintainer 권한이 있어야 합니다.

범위에 속한 각 프로젝트에서 다음 단계를 수행합니다:

  1. 상단 바에서 Search or go to를 선택하고 프로젝트를 찾습니다.
  2. 왼쪽 사이드바에서 Secure > Security configuration을 선택합니다.
  3. Security configuration을 확장합니다.
  4. 프로젝트의 스택에 맞는 애플리케이션 보안 테스트를 활성화합니다.

자세한 내용은 보안 구성을 참고합니다.

개발자를 위해#

보안 탐지 결과를 확인할 수 있는 도구를 개발자에게 소개합니다.

파이프라인 결과#

개발자는 파이프라인 결과에서 보안 탐지 결과를 바로 확인할 수 있습니다.

사전 요구 사항:

  • 프로젝트에 대한 Developer, Maintainer 또는 Owner 권한.

파이프라인 결과를 보려면 다음 단계를 수행합니다:

  1. 상단 바에서 Search or go to를 선택하고 프로젝트를 찾습니다.
  2. 왼쪽 사이드바에서 Build > Pipelines를 선택합니다.
  3. 검토할 파이프라인을 선택합니다.
  4. 파이프라인 세부 정보에서 Security 탭을 선택해 탐지된 취약점을 확인합니다.

자세한 내용은 파이프라인에서 보안 스캔 결과 보기를 참고합니다.

머지 리퀘스트 리포트#

머지 리퀘스트의 보안 스캔 결과는 머지 리퀘스트 리포트를 참고합니다.

VS Code 통합#

개발자는 IDE에서 보안 탐지 결과를 바로 확인할 수 있습니다.

사전 요구 사항:

  • 프로젝트에 대한 Developer, Maintainer 또는 Owner 권한.

VS Code에서 보안 탐지 결과를 보려면 다음 단계를 수행합니다:

  1. GitLab for VS Code 확장 프로그램을 설치합니다.
  2. 확장 프로그램을 GitLab 인스턴스에 연결합니다.
  3. 개발 환경을 벗어나지 않고 확장 프로그램으로 보안 탐지 결과를 확인합니다.

자세한 내용은 GitLab for VS Code 확장 프로그램을 참고합니다.

취약점 관리 워크플로#

탐지된 취약점을 처리할 체계적인 워크플로를 확립합니다.

취약점 관리 워크플로는 네 개의 핵심 단계로 구성됩니다:

  1. 탐지: 파이프라인의 자동화된 애플리케이션 보안 테스트로 취약점을 찾습니다.
  2. 분류: 탐지된 취약점의 심각도와 영향을 평가합니다.
  3. 분석: 근본 원인을 조사하고 해결에 가장 적합한 방법을 결정합니다.
  4. 해결: 취약점을 없애는 수정 사항을 적용합니다.

효율적인 분류#

GitLab은 취약점 분류를 간소화하는 여러 기능을 제공합니다:

  • 영향이 큰 이슈부터 다룰 수 있게 하는 취약점 필터.
  • 우선순위를 정하는 데 쓰는 심각도 및 신뢰도 등급.
  • 미해결 이슈의 가시성을 유지하는 취약점 추적.
  • 위험 평가 데이터.

자세한 내용은 분류를 참고합니다.

분류 과정에는 보안 이해관계자와 함께 취약점 리포트를 정기적으로 검토하는 절차가 포함되어야 합니다.

효율적인 해결#

다음 GitLab 기능으로 해결 과정을 간소화합니다:

  • 특정 취약점 유형에 대한 자동 해결 제안.
  • 취약점 세부 정보에서 바로 머지 리퀘스트 생성.
  • 진행 상황을 확인하는 취약점 히스토리 추적.
  • 더 이상 탐지되지 않는 취약점 자동 해결 처리.

자세한 내용은 해결을 참고합니다.

티켓 시스템과 통합#

GitLab 이슈로 취약점 해결에 필요한 작업을 추적할 수 있습니다. Jira가 주 티켓 시스템이라면 Jira 이슈를 사용할 수도 있습니다.

자세한 내용은 취약점을 GitLab 및 Jira 이슈와 연결을 참고합니다.

취약점 예방#

취약점이 애초에 유입되지 않도록 막는 기능을 도입합니다.

머지 리퀘스트 승인 정책#

머지 리퀘스트 승인 정책을 사용하면 머지 리퀘스트의 취약점 개수와 심각도가 특정 임계값을 넘을 때 승인 요건을 추가할 수 있습니다. 이를 통해 애플리케이션 보안 팀원의 추가 검토를 거치게 되어 검증 수준이 한 단계 높아집니다.

사전 요구 사항:

  • 그룹에 대한 Owner 권한 또는 manage_security_policy_link 권한이 있는 사용자 지정 역할.

보안 검토를 요구하도록 승인 정책을 구성하려면 다음 단계를 수행합니다:

  1. 상단 바에서 Search or go to를 선택하고 그룹을 찾습니다.
  2. 왼쪽 사이드바에서 Secure > Policies를 선택합니다.
  3. New policy를 선택합니다
  4. Merge request approval policy 창에서 Select policy를 선택합니다.
  5. 보안 팀원의 승인을 요구하는 머지 리퀘스트 승인 정책을 추가합니다.

자세한 내용은 머지 리퀘스트의 보안 승인을 참고합니다.

도입 단계#

파일럿이 성공하면 애플리케이션 보안 테스트를 모든 대상 프로젝트로 확대합니다.

도입 단계를 시작하기 전에 다음을 고려합니다:

  • 파일럿 단계의 결과를 평가합니다.
  • 배운 점과 모범 사례를 문서화합니다.
  • 파일럿 경험을 바탕으로 교육 자료를 준비합니다.
  • 파일럿 피드백을 반영해 도입 계획을 업데이트합니다.

팀원에 대한 액세스 정의#

애플리케이션 보안 테스트 작업에는 특정 역할 또는 권한이 필요합니다. 도입 단계에 참여하는 각 구성원에 대해 수행할 작업에 맞춰 액세스 권한을 정의합니다.

  • Developer 권한이 있는 사용자는 자신의 프로젝트와 머지 리퀘스트의 취약점을 볼 수 있습니다.
  • Maintainer 권한이 있는 사용자는 프로젝트의 보안 구성을 설정할 수 있습니다.
  • admin_vulnerability 권한이 있는 사용자 지정 역할을 부여받은 사용자는 취약점을 관리하고 분류할 수 있습니다.
  • manage_security_policy_link 권한이 있는 사용자 지정 역할을 부여받은 사용자는 그룹과 프로젝트에 정책을 적용할 수 있습니다.

자세한 내용은 역할 및 권한을 참고합니다.

도입 목표#

도입 단계의 목표는 파일럿에서 얻은 지식과 경험을 활용해 범위에 속한 모든 프로젝트에 애플리케이션 보안 테스트를 적용하는 것입니다.

도입 계획#

파일럿에서 정한 역할과 책임을 검토하고 업데이트합니다. 동일한 팀 구성으로 도입 단계도 진행할 수 있지만, 범위가 넓어지면 팀원을 더 추가해야 할 수 있습니다.

대규모 애플리케이션 보안 테스트 구현#

정책 기능을 사용해 보안 도입을 효율적으로 확장합니다.

정책 상속 사용#

정책 상속을 사용하면 관리해야 할 정책 수를 줄이면서 효과를 극대화할 수 있습니다.

Finance라는 최상위 그룹에 하위 그룹 A, B, C가 있는 상황을 생각해 봅니다. Finance 그룹의 모든 프로젝트에서 의존성 스캐닝과 시크릿 탐지를 실행하려고 합니다. 그리고 하위 그룹마다 서로 다른 애플리케이션 보안 테스트 도구 집합을 실행하려고 합니다.

이 목표를 달성하려면 Finance 그룹에 정책 3개를 정의할 수 있습니다:

  • 정책 1:
    • 의존성 스캐닝과 시크릿 탐지를 포함합니다.
    • Finance 그룹, 모든 하위 그룹, 그 프로젝트에 적용합니다.
  • 정책 2:
    • DAST와 API 보안 테스트를 포함합니다.
    • 하위 그룹 A와 B에만 적용 범위를 지정합니다.
  • 정책 3:
    • SAST를 포함합니다.
    • 하위 그룹 C에만 적용 범위를 지정합니다.

정책 집합 하나만 유지 관리하면 되면서도 프로젝트별로 서로 다른 요구를 유연하게 충족할 수 있습니다.

자세한 내용은 적용을 참고합니다.

스캔 실행 정책 구성#

스캔 실행 정책을 사용해 여러 프로젝트에 일관된 애플리케이션 보안 테스트를 적용합니다.

사전 요구 사항:

  • 애플리케이션 보안 테스트를 활성화할 그룹에 대한 Owner 권한 또는 manage_security_policy_link 권한이 있는 사용자 지정 역할이 있어야 합니다.
  1. 상단 바에서 Search or go to를 선택하고 프로젝트 또는 그룹을 찾습니다.
  2. 왼쪽 사이드바에서 Secure > Policies를 선택합니다.
  3. 파일럿 단계에서 사용한 애플리케이션 보안 테스트 구성을 바탕으로 스캔 실행 정책을 생성합니다.

자세한 내용은 보안 정책을 참고합니다.

점진적으로 확장#

먼저 파일럿 프로젝트에 적용하고 이어서 모든 대상 프로젝트로 단계적으로 확산합니다. 모든 그룹과 프로젝트에 정책을 적용할 때는 파이프라인과 머지 리퀘스트 워크플로에 변화가 생길 수 있으므로 모든 프로젝트 이해관계자가 이를 인지하도록 합니다. 예를 들어 이해관계자에게 알립니다

보안 정책은 단계적으로 도입합니다:

  1. 파일럿 단계의 프로젝트에 정책을 적용하는 것으로 시작합니다.
  2. 문제나 중단이 발생하는지 모니터링합니다.
  3. 정책의 적용 범위를 점차 넓혀 더 많은 프로젝트를 포함합니다.
  4. 모든 대상 프로젝트가 포함될 때까지 계속합니다.

자세한 내용은 정책 설계 지침을 참고합니다.