
API REST sobre el catálogo de Vulnerabilidades Explotadas Conocidas (KEV) de CISA, que ofrece búsquedas de CVE, adiciones recientes al KEV, búsqueda de texto y datos combinados de CISA, MITRE y NVD.
La API que faltaba para el Catálogo de Vulnerabilidades Explotadas Conocidas de CISA (aquí).
Se puede acceder a KEVin en https://kevin.gtfkd.com/
Actualmente hay límites de velocidad activos y el almacenamiento en caché está configurado a 3 horas en el edge.
Para consultar el estado de la instancia alojada, consulte nuestra página de estado: https://kevinapi.statuspage.io/
python3 -m venv envsource env/bin/activatepip3 install -r requirements.txtAñada las API KEYS necesarias.
API_KEY=xxx
MONGODB_URI_PROD=mongodb://MONGO_PROD_IP:27017/
MONGODB_URI_DEV=mongodb://localhost:27017/
PUBLIC_BASE_URL=https://kevin.gtfkd.com
TRUSTED_HOSTS=kevin.gtfkd.com,localhost,127.0.0.1
ORIGIN_RATE_LIMIT_WINDOW_SECONDS=1
UNCACHED_QUERY_RATE_LIMIT=10
POINT_MISS_RATE_LIMIT=20
NEGATIVE_CACHE_TIMEOUT=15
NEGATIVE_CACHE_MAX_ENTRIES=1024
CACHE_SINGLEFLIGHT_WAIT_SECONDS=0
CACHE_FILL_LOCK_SECONDS=15
CACHE_TTL_JITTER_RATIO=0.1
Siéntase libre de editar el mongodb en uso o los nombres de las variables. Tengo ambos aquí ya que trabajo con mongodbs de producción y desarrollo para la versión alojada de KEVin en kevin.gtfkd.com/*.
PUBLIC_BASE_URL es el origen público canónico usado en los metadatos de la página de inicio.
TRUSTED_HOSTS es una lista de permitidos separada por comas para las cabeceras HTTP Host aceptadas;
incluya el nombre de host usado por las comprobaciones de estado locales y los proxies inversos.
La configuración de admisión de origen se lee una vez al arrancar. Redis aplica los
límites compartidos por ventana entre los workers: UNCACHED_QUERY_RATE_LIMIT cubre
los fallos de caché de listas y de KEV recientes, y POINT_MISS_RATE_LIMIT cubre los fallos de point,
RSS y métricas. Las respuestas 2xx y 4xx en caché comparten el mismo TTL.
Los bloqueos de relleno (CACHE_FILL_LOCK_SECONDS) serializan el trabajo de origen entre workers
con tokens de propietario, CACHE_SINGLEFLIGHT_WAIT_SECONDS tiene como valor predeterminado 0 para que una
clave en disputa falle inmediatamente, y CACHE_TTL_JITTER_RATIO distribuye la expiración con secrets.randbelow.
La búsqueda /kev de alta cardinalidad y las variantes de actor quedan fuera de Redis; las repeticiones
exactas usan una caché en proceso acotada.
Los recursos de point manuales también mantienen como máximo NEGATIVE_CACHE_MAX_ENTRIES
fallos locales de corta duración como caché L1 delante de Redis.
Configurar MongoDB:
Ejecutar update.py
update.py extraerá datos de CISA y poblará su mongodb. Disfrute.
A continuación se muestra un ejemplo de archivo docker-compose.yml para desplegar la parte web de KEVin.
¡¡¡asegúrese de que su archivo .env tenga los valores correctos!!!
version: '3'
services:
flask_app:
build:
context: . # The build context is now the KEVin folder
dockerfile: Dockerfile # Use the Dockerfile we created inside KEVin
container_name: KEVin
env_file:
- .env
networks:
- gtfkdProd
ports:
- "8444:8444" # Map host port to container port
restart: unless-stopped
networks:
gtfkdProd:
external: true
/kev/CVE-2023-1234/kev/kev/new/7/vuln/<string:cve_id>/vuln/<string:cve_id>/nvd/kev?search=MicrosoftNo debería exponer mongodb a internet en general.
¡Las contribuciones son bienvenidas! Si encuentra algún problema o tiene ideas para mejoras, no dude en abrir un issue o enviar un pull request. No tendré mucho tiempo para mejorar esto por el momento.