
API REST sul catalogo CISA Known Exploited Vulnerabilities, che espone ricerche CVE, aggiunte recenti al KEV, ricerca testuale e dati unificati CISA, MITRE e NVD.
L'API mancante per il Catalogo delle Vulnerabilità Note Sfruttate della CISA (qui).
È possibile accedere a KEVin all'indirizzo https://kevin.gtfkd.com/
Attualmente sono in vigore limiti di frequenza e la cache è impostata a 3 ore sull'edge.
Per verificare lo stato dell'istanza ospitata, consulta la nostra statuspage: https://kevinapi.statuspage.io/
python3 -m venv envsource env/bin/activatepip3 install -r requirements.txtAggiungi le API KEYS necessarie.
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
Sentiti libero di modificare il mongodb in uso o i nomi delle variabili. Ho entrambi qui poiché lavoro su mongodb di prod e dev per la versione ospitata di KEVin su kevin.gtfkd.com/*.
PUBLIC_BASE_URL è l'origine pubblica canonica utilizzata nei metadati della homepage.
TRUSTED_HOSTS è una allowlist separata da virgole per gli header HTTP Host accettati;
includi il nome host utilizzato dai controlli di integrità locali e dai reverse proxy.
Le impostazioni di ammissione dell'origine vengono lette una sola volta all'avvio. Redis applica i
limiti condivisi per finestra tra i worker: UNCACHED_QUERY_RATE_LIMIT copre i cache miss di list e recent-KEV, e POINT_MISS_RATE_LIMIT copre i miss di point, RSS e metrics. Le risposte 2xx e 4xx in cache condividono lo stesso TTL.
I fill lock (CACHE_FILL_LOCK_SECONDS) serializzano il lavoro sull'origine tra i worker
con owner token, CACHE_SINGLEFLIGHT_WAIT_SECONDS è impostato di default a 0 così una
chiave contesa fallisce immediatamente, e CACHE_TTL_JITTER_RATIO distribuisce la scadenza con secrets.randbelow.
La ricerca /kev ad alta cardinalità e le varianti actor restano fuori da Redis; le ripetizioni
esatte utilizzano una cache in-process limitata.
Le risorse point manuali mantengono inoltre al massimo NEGATIVE_CACHE_MAX_ENTRIES
miss locali di breve durata come cache L1 davanti a Redis.
Configura MongoDB:
Esegui update.py
update.py recupererà i dati dalla CISA e popolerà il tuo mongodb. Buon divertimento.
Di seguito è riportato un esempio di file docker-compose.yml per distribuire la parte web di KEVin.
assicurati che il tuo file .env contenga i valori corretti!!!
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=MicrosoftNon dovresti esporre mongodb all'intera internet.
I contributi sono benvenuti! Se trovi problemi o hai idee per miglioramenti, sentiti libero di aprire una issue o inviare una pull request. Al momento non avrò molto tempo per migliorare questo progetto