API 보안 테스트 분석기
웹 API의 Dynamic Application Security Testing (DAST)를 수행하여 기존의 다른 QA 프로세스에서 놓칠 수 있는 버그 및 잠재적 보안 문제를 발견하는 데 도움을 줍니다. API 보안 테스트를 사용하여 GitLab 보안 보안 스캐너 및 귀하의 테스트 프로세스 외에도 기타 작업을 수행할 수 있습니다. DAST API 테스트를 CI/CD 워크플로우의 일부로 실행하거나 온디맨드로 또는 둘 다로 실행할 수 있습니다.
API 보안 테스트는 다음과 같은 웹 API 유형을 테스트할 수 있습니다:
- REST API
- SOAP
- GraphQL
- 폼 본문, JSON 또는 XML
API 보안 테스트 스캔 실행 시점
CI/CD 파이프라인에서 실행될 때 API 보안 테스트 스캔은 기본적으로 dast
단계에서 실행됩니다. API 보안 테스트 스캔이 최신 코드를 검토하도록 하려면 CI/CD 파이프라인이 dast
단계 이전 단계에서 테스트 환경으로 변경 사항을 배포하도록 보장하십시오.
파이프라인이 각 실행마다 동일한 웹 서버로 배포되도록 구성되어 있는 경우, 다른 파이프라인이 실행 중일 때 파이프라인을 실행하면 경쟁 조건을 일으킬 수 있습니다. 스캔 중인 API는 스캔 기간 동안의 변경에서 제외되어야 합니다. 스캔 중에 API에 대한 변경은 API 보안 테스트 스캐너에서만 발생해야 합니다. API에 대한 변경(예: 사용자, 예약된 작업, 데이터베이스 변경, 코드 변경, 다른 파이프라인 또는 다른 스캐너)이 스캔 중에 발생하면 정확하지 않은 결과를 초래할 수 있습니다.
예시 API 보안 테스트 스캔 구성
다음 프로젝트는 API 보안 테스트 스캔을 보여줍니다:
- 예시 OpenAPI v2 사양 프로젝트
- 예시 HTTP Archive (HAR) 프로젝트
- 예시 Postman Collection 프로젝트
- 예시 GraphQL 프로젝트
- 예시 SOAP 프로젝트
- Selenium을 사용한 인증 토큰
지원 받거나 개선 사항 요청하기
특정 문제에 대한 지원을 받으려면 지원 채널을 사용하십시오.
GitLab.com의 GitLab 이슈 트래커는 API 보안 및 API 보안 테스트에 관한 버그 및 기능 제안에 대한 올바른 장소입니다. API 보안 테스트에 관한 새로운 이슈를 열 때 ~"Category:API Security"
레이블을 사용하여 적절한 담당자가 신속하게 검토하도록 하세요. 응답을 받을 시기를 이해하려면 검토 응답 SLO을 참고하십시오.
제출하기 전에 유사한 항목을 찾아서 귀하의 내용을 제시하기 전에 이슈 트래커에서 검색하십시오. 누군가 이미 동일한 문제나 기능 제안을 한 것이기 때문에 좋은 기회가 있습니다. 이에 대한 응원을 이모지 반응이나 토론에 참여하여 표현하십시오.
예상치 못한 동작을 경험하는 경우, CONTEXTUAL INFORMATION을 제공하는 것을 고려해보십시오:
- Self-Managed형 인스턴스를 사용하는 경우 GitLab 버전.
-
.gitlab-ci.yml
작업 정의. - 전체 작업 콘솔 출력.
-
gl-api-security-scanner.log
이라는 작업 결과물로 제공되는 스캐너 로그 파일.
용어집
- 어서트(assert): 어서션은 취약점을 트리거하는 데 사용되는 감지 모듈입니다. 많은 어서션에는 설정이 있습니다. 체크는 여러 어서션을 사용할 수 있습니다. 예를 들어, 로그 분석, 응답 분석 및 상태 코드는 일반적으로 함께 사용되는 어서션입니다. 여러 어서션을 사용하는 체크는 켜고 끌 수 있습니다.
- 체크(check): 특정 유형의 테스트를 수행하거나 취약점 유형에 대한 체크를 수행합니다. 예를 들어, SQL Injection 체크는 DAST 테스트를 위해 SQL Injection 취약점을 수행합니다. API 보안 테스트 스캐너는 여러 체크로 구성됩니다. 프로파일에서 체크를 켜고 끌 수 있습니다.
- 프로파일(profile): 구성 파일에는 하나 이상의 테스트 프로파일이나 하위 구성이 있습니다. 기능 브랜치를 위한 프로파일과 본 브랜치의 추가 테스트를 위한 다른 프로파일이 있을 수 있습니다.