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

Tier: Ultimate Offering: GitLab.com, Self-Managed, GitLab Dedicated Status: Experiment
caution
이 기능은 GitLab 16.9에서 폐기되었으며 17.0에서 제거될 예정입니다. 이 변경 사항은 대규모 변경 사항입니다.
침해 및 공격 시뮬레이션(Breach and Attack Simulation)은 인큐베이션 엔지니어링 부서에서 개발 중인 일련의 인큐베이팅 기능이며 시간이 지남에 따라 상당한 변경이 예상됩니다.

침해 및 공격 시뮬레이션(BAS)은 추가적인 보안 테스트 기술을 사용하여 감지된 취약점의 위험을 평가하고 취약한 취약점의 대응을 우선시하는 데 사용됩니다.

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

caution
침해 및 공격 시뮬레이션(BAS) 검사는 테스트 서버에서만 실행하십시오. 공격자의 행위를 테스트하는 것은 데이터의 수정이나 손실로 이어질 수 있습니다.

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

DAST를 사용하여 취약점을 감지하도록 공격을 시뮬레이션할 수 있습니다. 기본적으로 DAST 활성화 확인 사항은 예상된 응답과 일치하거나, 취약점이 이용되었는지를 응답 시간으로 판단합니다.

애플리케이션에 대한 BAS 확장 DAST 스캔을 활성화하려면 GitLab BAS CI/CD 템플릿 파일에서 정의된 dast_with_bas 작업을 사용하십시오. 템플릿은 GitLab 업그레이드와 함께 제공되는 데, 이를 통해 개선 사항 및 추가 사항을 활용할 수 있습니다.

  1. 적절한 CI/CD 템플릿을 포함합니다:

    caution
    최신 버전의 템플릿에는 대규모 변경 사항이 포함될 수 있습니다. 최신 템플릿에서만 제공되는 기능이 필요하지 않으면 안정적인 템플릿을 사용하십시오.

    템플릿 버전에 대한 자세한 내용은 CI/CD 문서를 참조하십시오.

  2. 다음 옵션 중 하나를 선택하여 BAS 확장 DAST 스캔을 실행합니다:

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

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

      • 안정적인 템플릿 대신 최신 DAST 템플릿을 이미 사용 중입니다.
      • 기존 DAST 작업을 확장하여 Breach and Attack Simulation SEG의 최신 DAST 보안 분석기 이미지 태그를 포함하십시오.

별도의 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 작업의 구성에 extends를 사용하여 DAST 작업을 확장하십시오:

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

    variables:
      DAST_BAS_DISABLED: "true"
    

콜백 공격 활성화

본 페이지에는 예정된 제품, 기능 및 기능과 관련된 정보가 포함되어 있습니다. 제시된 정보는 정보 제공을 목적으로만 사용되며 구매 또는 계획 목적으로 의존해서는 안 됨을 강조합니다. 모든 제품, 기능 또는 기능의 개발, 출시 및 타이밍은 변경되거나 지연될 수 있으며 GitLab Inc.의 재량에 따라 유지됩니다.

특정 활성 확인 사항에 대한 Out-of-Band 애플리케이션 보안 테스트(OAST)를 수행하십시오.

  1. extends 키워드를 사용하여 .dast_with_bas_using_services 작업 구성을 확장하십시오:

    dast:
      extends: .dast_with_bas_using_services
       
    dast_with_bas:
      extends:
        # NOTE: extends는 Merge이 아니라 덮어씁니다. 그러므로 dast가 이 디렉터리에 포함되어 있어야 합니다.
        - dast
        - .dast_with_bas_using_services
    
  2. 기본 callback 서비스 컨테이너를 !reference 태그를 사용하여 서비스에 끌어들입니다.

      services:
        # NOTE: services는 Merge이 아니라 레퍼런스를 사용하여 Merge해야 합니다.
        - !reference [.dast_with_bas_using_services, services]
        # NOTE: 애플리케이션 컨테이너를 DAST 작업에 링크하고
        # "yourapp" 호스트명으로 액세스할 수 있도록 설정합니다. 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을 설정하여 Address:$YOUR_CALLBACK_URL 키/값 쌍을 포함하십시오. 여기서 콜백 서비스가 Runner/DAST 컨테이너에서 접근 가능해야 합니다.