API 보안 테스트 분석기

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

웹 API에 대한 동적 애플리케이션 보안 테스트(DAST)를 수행하여 다른 QA 프로세스에서 놓칠 수 있는 버그 및 잠재적인 보안 문제를 발견하는 데 도움을 줍니다. API 보안 테스트를 다른 GitLab Secure 보안 스캐너와 자체 테스트 프로세스에 추가로 사용하세요.
DAST API 테스트는 CI/CD 워크플로의 일부로 또는 온디맨드로, 또는 두 가지 모두로 실행할 수 있습니다.

caution
생산 서버에서 API 보안 테스트를 실행하지 마십시오. API가 수행할 수 있는 모든 기능을 수행할 수 있을 뿐만 아니라 API에서 버그를 유발할 수도 있습니다. 여기에는 데이터 수정 및 삭제와 같은 작업이 포함됩니다.
API 보안 테스트는 테스트 서버에서만 실행해야 합니다.

API 보안 테스트는 다음 웹 API 유형을 테스트할 수 있습니다:

  • REST API
  • SOAP
  • GraphQL
  • 폼 본문, JSON 또는 XML
note
DAST API는 API 보안 테스트로 브랜드 변경되었습니다. 이 브랜드 변경의 일환으로 템플릿 이름 및 변수 접두사도 업데이트되었습니다. 이전 템플릿 및 변수 이름은 2025년 5월에 있을 다음 주요 릴리스인 18.0까지 계속 작동합니다.

API 보안 테스트 스캔이 실행되는 경우

CI/CD 파이프라인에서 실행될 때, API 보안 테스트 스캔은 기본적으로 dast 단계에서 실행됩니다.
API 보안 테스트 스캔이 최신 코드를 검사하도록 하려면, CI/CD 파이프라인이 dast 단계 이전 단계에서 변경 사항을 테스트 환경에 배포해야 합니다.

파이프라인이 매 실행마다 같은 웹 서버에 배포하도록 구성된 경우, 하나의 파이프라인이 여전히 실행되고 있는 동안 다른 파이프라인을 실행하면 한 파이프라인이 다른 파이프라인의 코드를 덮어쓰는 경쟁 조건이 발생할 수 있습니다.
스캔하는 API는 API 보안 테스트 스캔의 기간 동안 변경 사항에서 제외되어야 합니다.
API에 대한 유일한 변경 사항은 API 보안 테스트 스캐너에서 진행해야 합니다. 스캔 중에 API에 대해 수행된 변경 사항(예: 사용자, 예약된 작업, 데이터베이스 변경 사항, 코드 변경, 다른 파이프라인 또는 다른 스캐너에 의한 변경)은 부정확한 결과를 초래할 수 있습니다.

API 보안 테스트 스캔 구성 예시

다음 프로젝트는 API 보안 테스트 스캔을 보여줍니다:

지원 요청 또는 개선 요청

특정 문제에 대한 지원을 받으려면 도움 받기 채널을 사용하세요.

GitLab.com의 GitLab 이슈 트래커는 API 보안 및 API 보안 테스트에 대한 버그 및 기능 제안을 위한 올바른 장소입니다.
API 보안 테스트와 관련하여 새로운 문제를 열 때 ~"Category:API Security" 레이블을 사용하여 적절한 사람들이 신속하게 검토할 수 있도록 하세요.
응답을 받을 수 있는 시점을 이해하기 위해 검토 응답 SLO를 참조하세요.

자신의 문제를 제출하기 전에 이슈 트래커 검색을 통해 유사한 항목을 검색하세요. 다른 사람도 같은 문제나 기능 제안을 했을 가능성이 높습니다.
이모지 반응으로 지원을 보여주거나 논의에 참여하세요.

예상과 다르게 작동하는 동작이 발생할 경우, 상황 정보를 제공하는 것을 고려하세요:

  • 자체 관리 인스턴스를 사용하는 경우 GitLab 버전.
  • .gitlab-ci.yml 작업 정의.
  • 전체 작업 콘솔 출력.
  • 직업 아티팩트로 지정된 gl-api-security-scanner.log로 사용할 수 있는 스캐너 로그 파일.
caution
지원 문제에 첨부된 데이터를 정리하세요. 자격 증명, 비밀번호, 토큰, 키 및 비밀을 포함하여 민감한 정보를 제거하세요.

용어집

  • Assert: Assertions는 취약점을 트리거하기 위해 체크에서 사용되는 감지 모듈입니다. 많은 Assertions는 구성 옵션을 가지고 있습니다. 하나의 체크는 여러 Assertions를 사용할 수 있습니다. 예를 들어, 로그 분석, 응답 분석, 상태 코드는 체크에서 함께 사용되는 일반적인 Assertions입니다. 여러 Assertions가 있는 체크는 이를 켜고 끌 수 있게 해줍니다.

  • Check: 특정 유형의 테스트를 수행하거나 취약점 유형에 대한 체크를 수행합니다. 예를 들어, SQL Injection 체크는 SQL Injection 취약점에 대한 DAST 테스트를 수행합니다. API 보안 테스트 스캐너는 여러 체크로 구성됩니다. 체크는 프로필에서 켜고 끌 수 있습니다.

  • Profile: 하나 이상의 테스트 프로필 또는 하위 구성이 포함된 구성 파일입니다. 기능 브랜치용 프로필과 메인 브랜치에 대한 추가 테스트용 프로필을 가질 수 있습니다.