침해 및 공격 시뮬레이션 (폐기됨)
- GitLab 15.11에서 Incubating 기능으로 도입되었습니다.
- GitLab 16.0에서
Security/BAS.latest.gitlab-ci.yml
에 포함되었습니다.
침해 및 공격 시뮬레이션(BAS)은 추가적인 보안 테스트 기술을 사용하여 감지된 취약점의 위험을 평가하고 취약한 취약점의 대응을 우선시하는 데 사용됩니다.
이 기능은 실험적 입니다. 피드백, 버그 보고 및 기능 요청에 대해서는 피드백 이슈를 참조하십시오.
동적 애플리케이션 보안 테스트(DAST) 확장
DAST를 사용하여 취약점을 감지하도록 공격을 시뮬레이션할 수 있습니다. 기본적으로 DAST 활성화 확인 사항은 예상된 응답과 일치하거나, 취약점이 이용되었는지를 응답 시간으로 판단합니다.
애플리케이션에 대한 BAS 확장 DAST 스캔을 활성화하려면 GitLab BAS CI/CD 템플릿 파일에서 정의된 dast_with_bas
작업을 사용하십시오. 템플릿은 GitLab 업그레이드와 함께 제공되는 데, 이를 통해 개선 사항 및 추가 사항을 활용할 수 있습니다.
-
적절한 CI/CD 템플릿을 포함합니다:
-
BAS.latest.gitlab-ci.yml
: BAS 템플릿의 최신 버전입니다(GitLab 16.0에 포함되었습니다).
최신 버전의 템플릿에는 대규모 변경 사항이 포함될 수 있습니다. 최신 템플릿에서만 제공되는 기능이 필요하지 않으면 안정적인 템플릿을 사용하십시오.템플릿 버전에 대한 자세한 내용은 CI/CD 문서를 참조하십시오.
-
-
다음 옵션 중 하나를 선택하여 BAS 확장 DAST 스캔을 실행합니다:
-
- 아직 최신 DAST 템플릿을 사용하고 있지 않습니다.
- DAST 스캔에 안정적인 버전의 DAST 보안 분석기 이미지를 계속 사용하십시오.
- 기존 DAST 작업 구성을 확장하는
dast_with_bas
작업의 중복을 생성하십시오.
-
- 안정적인 템플릿 대신 최신 DAST 템플릿을 이미 사용 중입니다.
- 기존 DAST 작업을 확장하여 Breach and Attack Simulation SEG의 최신 DAST 보안 분석기 이미지 태그를 포함하십시오.
-
별도의 BAS 확장 DAST 작업 활성화
BAS 확장 DAST 이미지를 테스트하면서 별도의 DAST 작업을 유지하는 데 다음 단계를 따르십시오:
-
GitLab CI/CD 단계 구성에
dast
단계를 추가하십시오.stages: - build - test - deploy - dast
-
DAST_WEBSITE
CI/CD 변수를 설정하십시오.dast_with_bas: variables: DAST_WEBSITE: http://yourapp
기존 DAST 작업을 확장
기존 DAST 작업 안에서 침해 및 공격 시뮬레이션 기능을 활성화하려면:
-
DAST CI/CD 작업을 생성하는 단계를 따르십시오.
-
extends 키워드를 사용하여 DAST 작업의 구성에
extends
를 사용하여 DAST 작업을 확장하십시오:dast: extends: .dast_with_bas
-
BAS 템플릿에 포함된
dast_with_bas
작업을DAST_BAS_DISABLED
로 설정하여 비활성화하십시오:variables: DAST_BAS_DISABLED: "true"
콜백 공격 활성화
특정 활성 확인 사항에 대한 Out-of-Band 애플리케이션 보안 테스트(OAST)를 수행하십시오.
-
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
-
기본
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
또한 다음과 같이 매뉴얼으로 콜백 공격을 활성화할 수 있습니다.
-
DAST_FF_ENABLE_BAS
CI/CD 변수를true
로 설정하십시오. - services를 사용하여 테스트되고 있는 애플리케이션 및 콜백 서비스 컨테이너를 활성화하십시오.
- 작업에서 콜백 서비스에 액세스할 수 있도록 컨테이너 간 네트워킹을 활성화하십시오.
-
DAST_BROWSER_CALLBACK
을 설정하여Address:$YOUR_CALLBACK_URL
키/값 쌍을 포함하십시오. 여기서 콜백 서비스가 Runner/DAST 컨테이너에서 접근 가능해야 합니다.