API 보안 테스트 분석기
웹 API의 동적 응용 프로그램 보안 테스트(DAST)를 수행하여 QA 프로세스에서 놓치는 버그 및 잠재적인 보안 문제를 발견하는 데 도움을 줍니다. API 보안 테스트를 사용하여 GitLab Secure 보안 스캐너 및 사용자의 테스트 프로세스 외에도 보안 문제를 확인하세요. DAST API 테스트는 CI/CD 워크플로우의 일부로 실행하거나, 온디맨드로, 또는 둘 다를 실행할 수 있습니다.
경고: 운영 서버에 대해 API 보안 테스트를 실행하지 마십시오. API가 수행하는 모든 기능을 수행할 뿐만 아니라 API의 버그도 발생시킬 수 있습니다. 이는 데이터 수정 및 삭제와 같은 작업을 포함합니다. API 보안 테스트를 테스트 서버에 대해서만 실행하세요.
API 보안 테스트는 다음과 같은 웹 API 유형을 테스트할 수 있습니다:
- REST API
- SOAP
- GraphQL
- Form 본문, JSON 또는 XML
참고: DAST API가 API 보안 테스트로 브랜드 이름이 변경되었습니다. 이 재브랜딩의 일환으로 템플릿 이름 및 변수 접두사가 업데이트되었습니다. 이전 템플릿 및 변수 이름은 다음 주요 릴리스 18.0인 2025년 5월까지 계속 작동합니다.
API 보안 테스트 스캔 실행 시점
CI/CD 파이프라인에서 실행되는 경우, API 보안 테스트 스캔은 기본적으로 dast
단계에서 실행됩니다. 최신 코드를 검토하기 위해 API 보안 테스트 스캔이 최신의 코드를 검토하도록 하려면 CI/CD 파이프라인이 dast
단계 이전에 테스트 환경으로 변경 사항을 배포하도록 해야 합니다.
파이프라인이 각 실행마다 동일한 웹 서버에 배포되도록 구성된 경우, 다른 실행 중에 파이프라인을 실행하는 것은 다른 파이프라인의 코드를 덮어쓰는 경합 상황을 발생시킬 수 있습니다. 스캔 대상이 되는 API는 API 보안 테스트 스캔 기간 동안 변경에서 제외되어야 합니다. API에 대한 변경 사항은 API 보안 테스트 스캐너에서만 발생해야 합니다. 스캔 중에 API에 대한 변경 사항(예: 사용자, 예약 작업, 데이터베이스 변경, 코드 변경, 다른 파이프라인 또는 다른 스캐너로 인한 변경)은 부정확한 결과를 초래할 수 있습니다.
API 보안 테스트 스캔 구성 예
다음 프로젝트는 API 보안 테스트 스캔을 보여줍니다:
- 예제 OpenAPI v2 사양 프로젝트
- 예제 HTTP 아카이브(HAR) 프로젝트
- 예제 Postman 컬렉션 프로젝트
- 예제 GraphQL 프로젝트
- 예제 SOAP 프로젝트
- Selenium을 사용한 인증 토큰
지원 받거나 개선 사항 요청
특정 문제에 대한 지원을 받으려면 도움말 채널을 사용하세요.
GitLab.com의 GitLab 이슈 트래커는 API 보안 및 API 보안 테스트에 관한 버그 및 기능 제안에 대한 적절한 장소입니다. API 보안 테스트에 관한 새 이슈를 오픈할 때 ~"Category:API Security"
라벨을 사용하여 적절한 담당자가 빠르게 검토하도록 하세요. 답변을 받아야 하는 시점을 이해하려면 리뷰 응답 SLO를 참조하세요.
제출하기 전에 유사한 항목을 찾아서 제출하세요. 다른 사람도 동일한 문제 또는 기능 제안을 할 수 있습니다. 이슈에 이모지 반응을 표시하거나 토론에 참여하세요.
예상대로 작동하지 않는 동작을 경험할 때, 맥락적인 정보를 제공하는 것을 고려하세요:
- 자체 관리 인스턴스를 사용하는 경우 GitLab 버전.
-
.gitlab-ci.yml
작업 정의. - 전체 작업 콘솔 출력.
- 작업 애티팩트로 제공되는 스캐너 로그 파일인
gl-api-security-scanner.log
. 경고: 지원 이슈에 첨부된 데이터를 검열해야 합니다. 자격 증명, 비밀번호, 토큰, 키 및 비밀을 포함한 민감한 정보를 제거하세요.
용어집
- Assert: 어설션은 취약점을 트리거하는 검사에서 사용되는 탐지 모듈입니다. 많은 어설션이 구성을 갖습니다. 여러 어설션을 사용하는 체크는 예를 들어 로그 분석, 응답 분석 및 상태 코드는 흔히 함께 사용되는 어설션입니다. 여러 어설션을 가진 체크를 켜거나 끌 수 있습니다.
- Check: 특정 유형의 테스트를 수행하거나, 취약점 유형에 대한 체크를 수행합니다. 예를 들어, SQL Injection 체크는 SQL Injection 취약점에 대한 DAST 테스트를 수행합니다. API 보안 테스트 스캐너는 여러 체크로 이루어져 있습니다. 프로파일에서 체크를 켜거나 끌 수 있습니다.
- Profile: 구성 파일에 하나 이상의 테스트 프로필 또는 하위 구성이 있습니다. feature 브랜치를 위한 프로필과 main 브랜치에 대한 추가 테스트를 위한 다른 프로필이 있을 수 있습니다.