커버리지 기반 퍼즈 테스팅 (지원 중단됨)
커버리지 기반 퍼징, 무작위 입력, 예상치 못한 동작.
Warning 이 기능은 GitLab 18.0에서 지원 중단 되었으며 19.0에서 제거될 예정입니다. 이는 브레이킹 체인지입니다. 시작하기 # 커버리지 기반 퍼즈 테스팅은 계측된 버전의 애플리케이션에 무작위 입력을 보내 예상치 못한 동작을 유발합니다. 이러한 동작은 수정해야 할 버그를 나타냅니다. GitLab은 파이프라인에 커버리지 기반 퍼즈 테스팅을 추가하는 기능을 제공합니다. 이를 통해 다른 QA 프로세스가 놓칠 수 있는 버그와 잠재적 보안 문제를 발견할 수 있습니다. 퍼즈 테스팅은 GitLab Secure 의 다른 보안 스캐너 및 자체 테스트 프로세스와 함께 사용해야 합니다. GitLab CI/CD 를 사용하는 경우 CI/CD 워크플로의 일부로 커버리지 기반 퍼즈 테스팅을 실행할 수 있습니다. 개요는 Coverage-guided Fuzzing - Advanced Security Testing 을 참고합니다. 커버리지 기반 퍼즈 테스팅 상태 확인 # 커버리지 기반 퍼즈 테스팅의 상태를 확인하려면 다음 단계를 수행합니다. 상단 표시줄에서 Search or go to 를 선택하고 프로젝트를 찾습니다. 왼쪽 사이드바에서 Secure > Security configuration 을 선택합니다. Coverage Fuzzing 섹션의 상태는 다음 중 하나입니다. Not configured Enabled GitLab Ultimate로 업그레이드하라는 안내. 커버리지 기반 퍼즈 테스팅 활성화 # 커버리지 기반 퍼즈 테스팅을 활성화하려면 .gitlab-ci.yml 을 다음과 같이 편집합니다. Stage 목록에 fuzz Stage를 추가합니다. 애플리케이션이 Go로 작성되지 않았다면 해당 퍼징 엔진을 사용하는 Docker 이미지를 지정 합니다. 예를 들면 다음과 같습니다. image: python:latest GitLab 설치에 포함되어 제공되는 Coverage-Fuzzing.gitlab-ci.yml 템플릿 을 포함 합니다. 요구 사항에 맞게 my_fuzz_target job을 사용자 지정합니다. 커버리지 기반 퍼징 구성 예시 # stages: - fuzz include: - template: Coverage-Fuzzing.gitlab-ci.yml my_fuzz_target: extends: .fuzz_base script: # Build your fuzz target binary in these steps, then run it with gitlab-cov-fuzz # See our example repos for how you could do this with any of our supported languages - ./gitlab-cov-fuzz run --regression=$REGRESSION -- <your fuzz target> Coverage-Fuzzing 템플릿에는 숨겨진 job .fuzz_base 가 포함되어 있으며, 각 퍼징 대상마다 이를 확장 해야 합니다. 각 퍼징 대상은 별도의 job을 가져야 합니다. 예를 들어 go