
API de microservicios deliberadamente vulnerable diseñada para entrenamiento práctico en los riesgos del OWASP API Security Top 10, con desafíos incorporados y un flujo de trabajo realista de compra de automóviles.
completely ridiculous API (crAPI) te ayudará a entender los diez riesgos de seguridad de API más críticos. crAPI es vulnerable por diseño, pero podrás ejecutarlo de forma segura para educarte/entrenarte.
crAPI es moderno, construido sobre una arquitectura de microservicios. Cuando llegue el momento de comprar tu primer coche, regístrate para obtener una cuenta y comienza tu viaje. Para obtener más información sobre crAPI, consulta la visión general de crAPI.
Después de configurar crAPI, se recomienda seguir el flujo de trabajo de usuario previsto para entender cómo se supone que funciona la aplicación antes de intentar cualquier desafío de seguridad.
-Application Workflow (Happy Path)
Necesitarás tener Docker y docker compose instalados y ejecutándose en tu sistema anfitrión. Además, la versión de docker compose debe ser 1.27.0 o superior. Verifica tu versión de docker compose usando:
docker compose version
Actualiza tu versión de docker compose si obtienes errores como
ERROR: Invalid interpolation format for ...
Puedes usar imágenes preconstruidas generadas por nuestro flujo de trabajo de CI descargando los archivos docker compose y .env.
Para usar la última versión estable.
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
Para sobrescribir las configuraciones del servidor, cambia los valores de las variables presentes en el archivo .env o agrega las variables respectivas al inicio del comando docker compose.
Por ejemplo, para exponer el sistema a todas las interfaces de red.
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
Para sobrescribir las configuraciones del servidor, cambia los valores de las variables presentes en el archivo .env o agrega las variables respectivas al inicio del comando docker compose.
Por ejemplo, para exponer el sistema a todas las interfaces de red.
LISTEN_IP="0.0.0.0" docker compose -f docker-compose.yml --compatibility up -d
Para usar la última versión de desarrollo
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
Visita http://localhost:8888
Nota: Todos los correos electrónicos se envían al servicio mailhog por defecto y se pueden consultar en http://localhost:8025 Puedes cambiar la configuración smtp si es necesario, sin embargo, todos los correos electrónicos con dominio example.com seguirán yendo a mailhog.
Para la configuración del proveedor de LLM del chatbot, consulta las instrucciones de configuración.
Esta opción te permite ejecutar crAPI dentro de una máquina virtual, aislado así de tu sistema. Necesitarás tener Vagrant y, por ejemplo, VirtualBox instalados.
$ git clone [REPOSITORY-URL]
$ cd deploy/vagrant && vagrant up
Nota: Todos los correos electrónicos se envían al servicio mailhog y se pueden consultar en http://192.168.33.20:8025
Una vez que hayas terminado de jugar con crAPI, puedes eliminarlo completamente de tu sistema ejecutando el siguiente comando desde el directorio raíz del repositorio
$ cd deploy/vagrant && vagrant destroy
Si necesitas ayuda con la instalación y ejecución de crAPI, puedes consultar esta guía: Guía de solución de problemas de crAPI. Si esto no resuelve tu problema, por favor crea un issue en Github Issues.
Para sobrescribir las configuraciones del servidor, cambia los valores de las variables presentes en el archivo .env o agrega las variables respectivas al inicio del comando docker compose.
Por ejemplo, para exponer el sistema a todas las interfaces de red.
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
Para sobrescribir las configuraciones del servidor, cambia los valores de las variables presentes en el archivo .env o agrega las variables respectivas al inicio del comando docker compose.
Por ejemplo, para exponer el sistema a todas las interfaces de red.
LISTEN_IP="0.0.0.0" docker compose -f docker-compose.yml --compatibility up -d