
의도적으로 취약하게 설계된 마이크로서비스 API로, OWASP API 보안 Top 10 위협에 대한 실습 교육을 위해 만들어졌으며, 내장된 챌린지와 현실적인 자동차 구매 워크플로우를 제공합니다.
완전히 터무니없는 API (crAPI)는 가장 중요한 10가지 API 보안 위험을 이해하는 데 도움을 줍니다. crAPI는 의도적으로 취약하게 설계되었지만, 안전하게 실행하여 스스로 교육/훈련할 수 있습니다.
crAPI는 현대적이며, 마이크로서비스 아키텍처 기반으로 구축되었습니다. 첫 자동차를 구매할 때가 되면, 계정을 등록하고 여정을 시작하세요. crAPI에 대해 더 알아보려면 crAPI 개요를 확인하세요.
crAPI를 설정한 후, 보안 챌린지를 시도하기 전에 애플리케이션의 의도된 사용자 워크플로우를 따라가며 애플리케이션이 어떻게 작동해야 하는지 이해하는 것이 좋습니다.
호스트 시스템에 Docker와 docker compose가 설치 및 실행 중이어야 합니다. 또한, docker compose 버전은 1.27.0 이상이어야 합니다. 다음 명령어로 docker compose 버전을 확인하세요:
docker compose version
다음과 같은 오류가 발생하면 docker compose 버전을 업그레이드하세요
ERROR: Invalid interpolation format for ...
CI 워크플로우에서 생성된 사전 빌드된 이미지를 사용하려면 docker compose 및 .env 파일을 다운로드하세요.
최신 안정 버전 사용
curl -L -o /tmp/crapi.zip https://github.com/OWASP/crAPI/archive/refs/heads/main.zip
unzip /tmp/crapi.zip
cd crAPI-main/deploy/docker
docker compose pull
docker compose -f docker-compose.yml --compatibility up -d
서버 구성을 재정의하려면 .env 파일에 있는 변수 값을 변경하거나 해당 변수를 docker compose 명령어의 시작 부분에 추가하세요.
예를 들어, 시스템을 모든 네트워크 인터페이스에 노출하려면:
LISTEN_IP="0.0.0.0" docker compose -f docker-compose.yml --compatibility up -d
curl.exe -L -o crapi.zip https://github.com/OWASP/crAPI/archive/refs/heads/main.zip
tar -xf .\crapi.zip
cd crAPI-main/deploy/docker
docker compose pull
docker compose -f docker-compose.yml --compatibility up -d
서버 구성을 재정의하려면 .env 파일에 있는 변수 값을 변경하거나 해당 변수를 docker compose 명령어의 시작 부분에 추가하세요.
예를 들어, 시스템을 모든 네트워크 인터페이스에 노출하려면:
LISTEN_IP="0.0.0.0" docker compose -f docker-compose.yml --compatibility up -d
최신 개발 버전 사용
curl -L -o /tmp/crapi.zip https://github.com/OWASP/crAPI/archive/refs/heads/develop.zip
unzip /tmp/crapi.zip
cd crAPI-develop/deploy/docker
docker compose pull
docker compose -f docker-compose.yml --compatibility up -d
서버 구성을 재정의하려면 .env 파일에 있는 변수 값을 변경하거나 해당 변수를 docker compose 명령어의 시작 부분에 추가하세요.
예를 들어, 시스템을 모든 네트워크 인터페이스에 노출하려면:
LISTEN_IP="0.0.0.0" docker compose -f docker-compose.yml --compatibility up -d
curl.exe -L -o crapi.zip https://github.com/OWASP/crAPI/archive/refs/heads/develop.zip
tar -xf .\crapi.zip
cd crAPI-develop/deploy/docker
docker compose pull
docker compose -f docker-compose.yml --compatibility up -d
서버 구성을 재정의하려면 .env 파일에 있는 변수 값을 변경하거나 해당 변수를 docker compose 명령어의 시작 부분에 추가하세요.
예를 들어, 시스템을 모든 네트워크 인터페이스에 노출하려면:
LISTEN_IP="0.0.0.0" docker compose -f docker-compose.yml --compatibility up -d
참고: 모든 이메일은 기본적으로 mailhog 서비스로 전송되며 http://localhost:8025에서 확인할 수 있습니다. 필요한 경우 smtp 구성을 변경할 수 있지만, 도메인이 example.com인 모든 이메일은 여전히 mailhog로 전송됩니다.
챗봇 LLM 제공자 구성에 대한 내용은 설정 지침을 참조하세요.
이 옵션을 사용하면 가상 머신 내에서 crAPI를 실행할 수 있으므로 시스템과 격리됩니다. Vagrant와 예를 들어 VirtualBox가 설치되어 있어야 합니다.
$ git clone [REPOSITORY-URL]
$ cd deploy/vagrant && vagrant up
참고: 모든 이메일은 mailhog 서비스로 전송되며 http://192.168.33.20:8025에서 확인할 수 있습니다.
crAPI 사용이 끝나면 저장소 루트 디렉터리에서 다음 명령어를 실행하여 시스템에서 완전히 제거할 수 있습니다.
$ cd deploy/vagrant && vagrant destroy
crAPI 설치 및 실행에 도움이 필요하면 이 가이드를 확인하세요: crAPI 문제 해결 가이드. 이것으로 문제가 해결되지 않으면 Github Issues에 이슈를 생성해 주세요.