InfoGrab Docs

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

요약

더 안전한 개발 방식으로의 원활한 전환을 위해 단계별로 애플리케이션 보안 테스트 구현을 계획하세요. 이 가이드는 단계별로 조직 전반에 GitLab 애플리케이션 보안 테스트를 구현하는 데 도움을 드립니다. 이 가이드는 구성, 취약성 관리, 예방 전략을 포함한 GitLab 애플리케이션 보안 테스트 기능의 단계적 구현을 계획하고 실행하는 방법을 다룹니다.

더 안전한 개발 방식으로의 원활한 전환을 위해 단계별로 애플리케이션 보안 테스트 구현을 계획하세요.

이 가이드는 단계별로 조직 전반에 GitLab 애플리케이션 보안 테스트를 구현하는 데 도움을 드립니다. 파일럿 그룹에서 시작하여 점차적으로 커버리지를 확장함으로써 보안 이점을 극대화하면서 중단을 최소화할 수 있습니다. 단계적 접근 방식을 통해 팀이 모든 프로젝트로 확장하기 전에 애플리케이션 보안 테스트 도구와 워크플로우에 익숙해질 수 있습니다.

사전 요구사항:

  • GitLab Ultimate.
  • GitLab CI/CD 파이프라인에 대한 이해. 다음 GitLab 자기 주도 과정이 좋은 입문을 제공합니다:
  • 조직의 보안 요구사항 및 위험 허용 범위에 대한 이해.

범위#

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

단계#

구현은 두 가지 주요 단계로 구성됩니다:

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

파일럿 단계#

파일럿 단계를 통해 더 넓은 도입 전에 최소한의 위험으로 애플리케이션 보안 테스트를 적용할 수 있습니다.

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

  • 보안 팀원, 개발자, 프로젝트 관리자를 포함한 주요 이해관계자를 파악합니다.
  • 코드베이스를 대표하지만 일상 운영에 중요하지 않은 파일럿 프로젝트를 선택합니다.
  • 개발자와 보안 팀원을 위한 교육 세션을 예약합니다.
  • 개선 사항을 측정하기 위해 현재 보안 방식을 문서화합니다.

파일럿 목표#

파일럿 단계는 여러 핵심 목표를 달성하는 데 도움이 됩니다:

  • 개발을 늦추지 않으면서 애플리케이션 보안 테스트 구현

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

  • 확장 가능한 탐지 방법 구축

    더 넓은 도입 범위의 모든 프로젝트를 포함하도록 확장할 수 있는 방식으로 파일럿 프로젝트에 애플리케이션 보안 테스트를 구현합니다. 잘 확장되고 프로젝트 전반에 표준화할 수 있는 구성에 집중합니다.

  • 스캔 시간 테스트

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

  • 취약성 수정 워크플로우 시뮬레이션

    개발자 워크플로우에서 취약성 감지, 분류, 분析, 수정을 시뮬레이션합니다. 엔지니어가 발견 사항에 따라 조치를 취할 수 있는지 확인합니다.

  • 유지 관리 비용 비교

    단일 솔루션 유지 관리와 여러 엔드포인트 솔루션 통합을 비교합니다. IDE, 머지 리퀘스트, 파이프라인과 얼마나 잘 통합됩니까?

개발자를 위한 이점#

파일럿 그룹의 개발자들은 다음을 얻게 됩니다:

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

보안 관리를 위한 이점#

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

  • GitLab에서 취약성 추적 및 관리 경험.
  • 보안 기준선을 설정하고 현실적인 수정 목표를 설정하기 위한 데이터.
  • 더 넓은 도입 전에 보안 정책을 정제하기 위한 통찰.

파일럿 계획#

적절한 계획은 효과적인 파일럿 단계를 보장합니다.

역할과 책임#

다음에 대한 책임자를 정의합니다:

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

파일럿 범위#

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

파일럿 프로젝트 선택 시 다음 요소를 고려하세요:

  • 애플리케이션 보안 테스트 효과를 테스트하기 위해 다양한 기술 스택을 가진 프로젝트를 포함합니다.
  • 실시간 결과를 확인하기 위해 활발한 개발이 진행 중인 프로젝트를 선택합니다.
  • 새로운 보안 방식을 배울 의향이 있는 팀의 프로젝트를 선택합니다.
  • 미션 크리티컬 애플리케이션에서 시작하는 것을 피합니다.

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

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

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

파일럿 프로젝트 테스트#

계획이 완료되면 파일럿 프로젝트의 애플리케이션 보안 테스트 구현을 시작합니다.

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

사전 요구사항:

  • 프로젝트에 대한 Security Manager, Maintainer 또는 Owner 역할.

범위 내의 각 프로젝트에 대해:

  1. 상단 표시줄에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
  2. 왼쪽 사이드바에서 보안 > 보안 구성을 선택합니다.
  3. 보안 구성을 확장합니다.
  4. 프로젝트의 스택에 맞는 애플리케이션 보안 테스트를 활성화합니다.

자세한 내용은 보안 구성을 참조하세요.

개발자를 위해#

보안 결과를 볼 수 있는 도구를 개발자에게 소개합니다.

파이프라인 결과#

개발자는 파이프라인 결과에서 직접 보안 결과를 볼 수 있습니다.

사전 요구사항:

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

파이프라인 결과를 보려면:

  1. 상단 표시줄에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
  2. 왼쪽 사이드바에서 빌드 > 파이프라인을 선택합니다.
  3. 검토할 파이프라인을 선택합니다.
  4. 파이프라인 세부 정보에서 보안 탭을 선택하여 감지된 취약성을 봅니다.

자세한 내용은 파이프라인에서 보안 스캔 결과 보기를 참조하세요.

머지 리퀘스트 보안 위젯#

보안 위젯은 머지 리퀘스트 파이프라인에서 감지된 취약성을 볼 수 있게 해줍니다.

사전 요구사항:

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

보안 위젯을 보려면:

  1. 머지 리퀘스트를 엽니다.
  2. 보안 위젯을 검토하여 감지된 취약성을 확인합니다.
  3. 확장을 선택하여 자세한 결과를 봅니다.

자세한 내용은 머지 리퀘스트에서 보안 스캔 결과 보기를 참조하세요.

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. 상단 표시줄에서 검색 또는 이동을 선택하고 그룹을 찾습니다.
  2. 왼쪽 사이드바에서 보안 > 정책을 선택합니다.
  3. 새 정책을 선택합니다.
  4. 머지 리퀘스트 승인 정책 창에서 정책 선택을 선택합니다.
  5. 보안 팀원의 승인을 요구하는 머지 리퀘스트 승인 정책을 추가합니다.

자세한 내용은 머지 리퀘스트의 보안 승인을 참조하세요.

도입 단계#

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

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

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

팀원에 대한 액세스 정의#

애플리케이션 보안 테스트 작업에는 특정 역할이나 권한이 필요합니다. 도입 단계에 참여하는 각 사람에 대해 수행할 작업에 따라 액세스를 정의합니다.

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

자세한 내용은 역할과 권한을 참조하세요.

도입 목표#

도입 단계는 파일럿 중에 얻은 지식과 경험을 사용하여 범위 내의 모든 프로젝트에 애플리케이션 보안 테스트를 구현하는 것을 목표로 합니다.

도입 계획#

파일럿 중에 설정된 역할과 책임을 검토하고 업데이트합니다. 동일한 팀 구조가 도입에도 작동해야 하지만 범위가 확장됨에 따라 더 많은 팀원을 추가해야 할 수 있습니다.

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

정책 기능을 사용하여 보안 구현을 효율적으로 확장합니다.

정책 상속 사용#

관리해야 하는 정책 수를 최소화하면서 효과를 극대화하기 위해 정책 상속을 사용합니다.

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

이 목표를 달성하기 위해 Finance 그룹에 대해 3개의 정책을 정의할 수 있습니다:

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

단일 정책 집합만 유지하면 되지만 다양한 프로젝트의 요구를 충족하는 유연성을 여전히 제공합니다.

자세한 내용은 적용을 참조하세요.

스캔 실행 정책 구성#

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

사전 요구사항:

  • 애플리케이션 보안 테스트가 활성화될 그룹에 대한 Owner 역할 또는 manage_security_policy_link 권한이 있는 사용자 정의 역할이 있어야 합니다.
  1. 상단 표시줄에서 검색 또는 이동을 선택하고 프로젝트 또는 그룹을 찾습니다.
  2. 왼쪽 사이드바에서 보안 > 정책을 선택합니다.
  3. 파일럿 단계에서 사용된 애플리케이션 보안 테스트 구성을 기반으로 스캔 실행 정책을 생성합니다.

자세한 내용은 보안 정책을 참조하세요.

점진적으로 확장#

먼저 파일럿 프로젝트에, 그 다음 모든 대상 프로젝트로 점진적으로 도입을 확장합니다. 모든 그룹과 프로젝트에 정책을 적용할 때 이는 파이프라인과 머지 리퀘스트 워크플로우에 영향을 미칠 수 있으므로 모든 프로젝트 이해관계자에게 인식을 높이세요. 예를 들어 이해관계자에게 알리세요.

보안 정책을 단계적으로 구현합니다:

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

자세한 내용은 정책 설계 가이드라인을 참조하세요.

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

원문 보기
요약

더 안전한 개발 방식으로의 원활한 전환을 위해 단계별로 애플리케이션 보안 테스트 구현을 계획하세요. 이 가이드는 단계별로 조직 전반에 GitLab 애플리케이션 보안 테스트를 구현하는 데 도움을 드립니다. 이 가이드는 구성, 취약성 관리, 예방 전략을 포함한 GitLab 애플리케이션 보안 테스트 기능의 단계적 구현을 계획하고 실행하는 방법을 다룹니다.

더 안전한 개발 방식으로의 원활한 전환을 위해 단계별로 애플리케이션 보안 테스트 구현을 계획하세요.

이 가이드는 단계별로 조직 전반에 GitLab 애플리케이션 보안 테스트를 구현하는 데 도움을 드립니다. 파일럿 그룹에서 시작하여 점차적으로 커버리지를 확장함으로써 보안 이점을 극대화하면서 중단을 최소화할 수 있습니다. 단계적 접근 방식을 통해 팀이 모든 프로젝트로 확장하기 전에 애플리케이션 보안 테스트 도구와 워크플로우에 익숙해질 수 있습니다.

사전 요구사항:

  • GitLab Ultimate.
  • GitLab CI/CD 파이프라인에 대한 이해. 다음 GitLab 자기 주도 과정이 좋은 입문을 제공합니다:
  • 조직의 보안 요구사항 및 위험 허용 범위에 대한 이해.

범위#

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

단계#

구현은 두 가지 주요 단계로 구성됩니다:

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

파일럿 단계#

파일럿 단계를 통해 더 넓은 도입 전에 최소한의 위험으로 애플리케이션 보안 테스트를 적용할 수 있습니다.

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

  • 보안 팀원, 개발자, 프로젝트 관리자를 포함한 주요 이해관계자를 파악합니다.
  • 코드베이스를 대표하지만 일상 운영에 중요하지 않은 파일럿 프로젝트를 선택합니다.
  • 개발자와 보안 팀원을 위한 교육 세션을 예약합니다.
  • 개선 사항을 측정하기 위해 현재 보안 방식을 문서화합니다.

파일럿 목표#

파일럿 단계는 여러 핵심 목표를 달성하는 데 도움이 됩니다:

  • 개발을 늦추지 않으면서 애플리케이션 보안 테스트 구현

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

  • 확장 가능한 탐지 방법 구축

    더 넓은 도입 범위의 모든 프로젝트를 포함하도록 확장할 수 있는 방식으로 파일럿 프로젝트에 애플리케이션 보안 테스트를 구현합니다. 잘 확장되고 프로젝트 전반에 표준화할 수 있는 구성에 집중합니다.

  • 스캔 시간 테스트

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

  • 취약성 수정 워크플로우 시뮬레이션

    개발자 워크플로우에서 취약성 감지, 분류, 분析, 수정을 시뮬레이션합니다. 엔지니어가 발견 사항에 따라 조치를 취할 수 있는지 확인합니다.

  • 유지 관리 비용 비교

    단일 솔루션 유지 관리와 여러 엔드포인트 솔루션 통합을 비교합니다. IDE, 머지 리퀘스트, 파이프라인과 얼마나 잘 통합됩니까?

개발자를 위한 이점#

파일럿 그룹의 개발자들은 다음을 얻게 됩니다:

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

보안 관리를 위한 이점#

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

  • GitLab에서 취약성 추적 및 관리 경험.
  • 보안 기준선을 설정하고 현실적인 수정 목표를 설정하기 위한 데이터.
  • 더 넓은 도입 전에 보안 정책을 정제하기 위한 통찰.

파일럿 계획#

적절한 계획은 효과적인 파일럿 단계를 보장합니다.

역할과 책임#

다음에 대한 책임자를 정의합니다:

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

파일럿 범위#

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

파일럿 프로젝트 선택 시 다음 요소를 고려하세요:

  • 애플리케이션 보안 테스트 효과를 테스트하기 위해 다양한 기술 스택을 가진 프로젝트를 포함합니다.
  • 실시간 결과를 확인하기 위해 활발한 개발이 진행 중인 프로젝트를 선택합니다.
  • 새로운 보안 방식을 배울 의향이 있는 팀의 프로젝트를 선택합니다.
  • 미션 크리티컬 애플리케이션에서 시작하는 것을 피합니다.

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

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

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

파일럿 프로젝트 테스트#

계획이 완료되면 파일럿 프로젝트의 애플리케이션 보안 테스트 구현을 시작합니다.

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

사전 요구사항:

  • 프로젝트에 대한 Security Manager, Maintainer 또는 Owner 역할.

범위 내의 각 프로젝트에 대해:

  1. 상단 표시줄에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
  2. 왼쪽 사이드바에서 보안 > 보안 구성을 선택합니다.
  3. 보안 구성을 확장합니다.
  4. 프로젝트의 스택에 맞는 애플리케이션 보안 테스트를 활성화합니다.

자세한 내용은 보안 구성을 참조하세요.

개발자를 위해#

보안 결과를 볼 수 있는 도구를 개발자에게 소개합니다.

파이프라인 결과#

개발자는 파이프라인 결과에서 직접 보안 결과를 볼 수 있습니다.

사전 요구사항:

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

파이프라인 결과를 보려면:

  1. 상단 표시줄에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
  2. 왼쪽 사이드바에서 빌드 > 파이프라인을 선택합니다.
  3. 검토할 파이프라인을 선택합니다.
  4. 파이프라인 세부 정보에서 보안 탭을 선택하여 감지된 취약성을 봅니다.

자세한 내용은 파이프라인에서 보안 스캔 결과 보기를 참조하세요.

머지 리퀘스트 보안 위젯#

보안 위젯은 머지 리퀘스트 파이프라인에서 감지된 취약성을 볼 수 있게 해줍니다.

사전 요구사항:

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

보안 위젯을 보려면:

  1. 머지 리퀘스트를 엽니다.
  2. 보안 위젯을 검토하여 감지된 취약성을 확인합니다.
  3. 확장을 선택하여 자세한 결과를 봅니다.

자세한 내용은 머지 리퀘스트에서 보안 스캔 결과 보기를 참조하세요.

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. 상단 표시줄에서 검색 또는 이동을 선택하고 그룹을 찾습니다.
  2. 왼쪽 사이드바에서 보안 > 정책을 선택합니다.
  3. 새 정책을 선택합니다.
  4. 머지 리퀘스트 승인 정책 창에서 정책 선택을 선택합니다.
  5. 보안 팀원의 승인을 요구하는 머지 리퀘스트 승인 정책을 추가합니다.

자세한 내용은 머지 리퀘스트의 보안 승인을 참조하세요.

도입 단계#

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

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

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

팀원에 대한 액세스 정의#

애플리케이션 보안 테스트 작업에는 특정 역할이나 권한이 필요합니다. 도입 단계에 참여하는 각 사람에 대해 수행할 작업에 따라 액세스를 정의합니다.

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

자세한 내용은 역할과 권한을 참조하세요.

도입 목표#

도입 단계는 파일럿 중에 얻은 지식과 경험을 사용하여 범위 내의 모든 프로젝트에 애플리케이션 보안 테스트를 구현하는 것을 목표로 합니다.

도입 계획#

파일럿 중에 설정된 역할과 책임을 검토하고 업데이트합니다. 동일한 팀 구조가 도입에도 작동해야 하지만 범위가 확장됨에 따라 더 많은 팀원을 추가해야 할 수 있습니다.

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

정책 기능을 사용하여 보안 구현을 효율적으로 확장합니다.

정책 상속 사용#

관리해야 하는 정책 수를 최소화하면서 효과를 극대화하기 위해 정책 상속을 사용합니다.

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

이 목표를 달성하기 위해 Finance 그룹에 대해 3개의 정책을 정의할 수 있습니다:

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

단일 정책 집합만 유지하면 되지만 다양한 프로젝트의 요구를 충족하는 유연성을 여전히 제공합니다.

자세한 내용은 적용을 참조하세요.

스캔 실행 정책 구성#

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

사전 요구사항:

  • 애플리케이션 보안 테스트가 활성화될 그룹에 대한 Owner 역할 또는 manage_security_policy_link 권한이 있는 사용자 정의 역할이 있어야 합니다.
  1. 상단 표시줄에서 검색 또는 이동을 선택하고 프로젝트 또는 그룹을 찾습니다.
  2. 왼쪽 사이드바에서 보안 > 정책을 선택합니다.
  3. 파일럿 단계에서 사용된 애플리케이션 보안 테스트 구성을 기반으로 스캔 실행 정책을 생성합니다.

자세한 내용은 보안 정책을 참조하세요.

점진적으로 확장#

먼저 파일럿 프로젝트에, 그 다음 모든 대상 프로젝트로 점진적으로 도입을 확장합니다. 모든 그룹과 프로젝트에 정책을 적용할 때 이는 파이프라인과 머지 리퀘스트 워크플로우에 영향을 미칠 수 있으므로 모든 프로젝트 이해관계자에게 인식을 높이세요. 예를 들어 이해관계자에게 알리세요.

보안 정책을 단계적으로 구현합니다:

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

자세한 내용은 정책 설계 가이드라인을 참조하세요.