침입 및 공격 시뮬레이션 (폐기됨)

Tier: Ultimate Offering: GitLab.com, Self-managed, GitLab Dedicated Status: Experiment

경고: 이 기능은 GitLab 16.9에서 폐기되었으며 17.0에서 제거될 예정입니다. 이 변경 사항은 파괴적인 변경입니다.

  • 소개: GitLab 15.11에서 인큐베이팅 기능으로 추가됨.
  • 포함: GitLab 16.0의 Security/BAS.latest.gitlab-ci.yml에 포함됨.

면책 조항: 침입 및 공격 시뮬레이션은 인큐베이션 엔지니어링 부서에서 개발 중인 일련의 인큐베이팅 기능이며 시간이 흐를수록 상당한 변경이 있을 수 있습니다.

침입 및 공격 시뮬레이션 (BAS)은 감지된 취약점의 위험을 평가하고 취약점의 악용 가능성에 따라 대책을 우선 순위를 매기기 위해 추가적인 보안 테스트 기술을 사용합니다.

이 기능은 실험입니다. 피드백, 버그 보고 및 기능 요청은 피드백 이슈를 참조하십시오.

경고: BAS 스캔은 테스트 서버에 대해서만 실행하십시오. 공격자 행위를 테스트하는 것은 데이터의 수정 또는 손실로 이어질 수 있습니다.

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

DAST를 사용하여 취약점을 탐지하는 공격을 시뮬레이션할 수 있습니다. 기본적으로, DAST의 활성 검사는 예상된 응답과 일치하거나 취약점이 악용되었는지를 응답 시간으로 결정합니다.

BAS 확장 DAST 스캐닝을 애플리케이션에 적용하려면 GitLab BAS CI/CD 템플릿 파일에 정의된 dast_with_bas 작업을 사용하십시오. 템플릿의 업데이트는 GitLab 업그레이드와 함께 제공되어 모든 개선 사항과 축가 사항을 활용할 수 있도록 합니다.

  1. 적절한 CI/CD 템플릿을 포함하십시오:

    경고: 최신 템플릿은 파괴적인 변경이 포함될 수 있습니다. 최신 템플릿에서만 제공되는 기능이 필요하지 않은 한 안정적인 템플릿을 사용하십시오.

    템플릿 버전 관련 자세한 정보는 CI/CD 문서를 참조하십시오.

  2. BAS 확장 DAST 스캔 실행 옵션 중 하나를 선택하십시오:

    • 별도의 BAS 확장 DAST 작업 활성화

      • 최신 DAST 템플릿을 아직 사용 중이 아님.
      • DAST 스캔을 위해 안정적인 버전의 DAST 보안 분석기 이미지를 계속 사용하십시오.
      • 기존 DAST 작업 구성을 확장하는 중복 dast_with_bas 작업을 생성하십시오.
    • 기존 DAST 작업 확장

      • 안정적인 템플릿 대신 최신 DAST 템플릿을 이미 사용 중인 경우.
      • 기존 DAST 작업에 최신 DAST 보안 분석기 이미지 태그를 Breach and Attack Simulation SEG로 확장하십시오.

별도의 BAS 확장 DAST 작업 활성화

BAS 확장 DAST 이미지를 테스트하는 동안 별도의 DAST 작업을 유지하려면:

  1. GitLab CI/CD 단계 구성에 dast 단계를 추가하십시오.

      stages:
        - build
        - test
        - deploy
        - dast
    
  2. DAST_WEBSITE CI/CD 변수를 설정하십시오.

      dast_with_bas:
        variables:
          DAST_WEBSITE: http://yourapp
    

기존 DAST 작업 확장

기존 DAST 작업 내에 침입 및 공격 시뮬레이션 기능을 활성화하려면:

  1. DAST CI/CD 작업 생성의 단계를 따르십시오.

  2. extends 키워드를 사용하여 기존 DAST 작업 구성에 dast_with_bas를 확장하십시오:

    dast:
      extends: .dast_with_bas
    
  3. BAS 템플릿에 포함된 dast_with_bas 작업을 DAST_BAS_DISABLED로 설정하여 비활성화하십시오:

    variables:
      DAST_BAS_DISABLED: "true"
    

콜백 공격 활성화

면책 조항: 이 페이지에는 예정된 제품, 기능 및 기능과 관련된 정보가 포함되어 있습니다. 제시된 정보는 정보 제공 목적으로만 사용되는 것이 중요합니다. 구매 또는 계획 목적으로 이 정보에 의존해서는 안 됩니다. 이 페이지에 언급된 모든 항목은 변경되거나 지연될 수 있습니다. 제품, 기능 또는 기능의 개발, 릴리스 및 타이밍은 GitLab Inc.의 전적인 판단에 따라 결정됩니다.

일부 활성 체크에 대해 외부 애플리케이션 보안 테스트(OAST)를 수행합니다.

  1. extends 키워드를 사용하여 .dast_with_bas_using_services 작업 구성을 확장합니다.

    dast:
      extends: .dast_with_bas_using_services
    
    dast_with_bas:
      extends:
        # 참고: 확장은 병합이 아닌 덮어쓰기이므로 dast는 이 목록에 포함되어야 합니다.
        - dast
        - .dast_with_bas_using_services
    
  2. services에서 기본 callback 서비스 컨테이너를 가져오기 위해 !reference tag를 사용합니다.

      services:
        # 참고: 서비스는 덮어쓰기이므로 병합될 수 있도록 참조해야 합니다.
        - !reference [.dast_with_bas_using_services, services]
        # 참고: 응용 프로그램 컨테이너를 dast 작업에 연결하고
        # Docker 서비스에 대한 자세한 내용은 다음 위치에서 확인하세요.
        # https://docs.gitlab.com/ee/user/application_security/dast/#docker-services
        - name: $CI_REGISTRY_IMAGE
          alias: yourapp
    

수동으로 콜백 공격을 활성화하려면 다음을 수행하세요:

  1. DAST_FF_ENABLE_BAS CI/CD 변수true로 설정합니다.
  2. 테스트되는 응용 프로그램 및 콜백 서비스 컨테이너를 services를 사용하여 활성화합니다.
  3. 작업 내에서 콜백 서비스에 접근할 수 있도록 컨테이너 간 네트워킹을 활성화합니다.
  4. DAST_BROWSER_CALLBACK을 사용하여 콜백 서비스가 Runner/DAST 컨테이너에서 접근 가능한 Address:$YOUR_CALLBACK_URL 키/값 쌍으로 설정합니다.