
API REST sur le catalogue des vulnérabilités exploitées connues (KEV) de la CISA, exposant la recherche de CVE, les ajouts récents au KEV, la recherche textuelle et les données fusionnées de la CISA, MITRE et NVD.
L'API manquante pour le catalogue des vulnérabilités exploitées connues de la CISA (ici).
L'accès à KEVin peut se faire à l'adresse https://kevin.gtfkd.com/
Des limites de débit sont actuellement en place et la mise en cache est fixée à 3 heures en périphérie.
Pour vérifier l'état de l'instance hébergée, veuillez consulter notre page de statut : https://kevinapi.statuspage.io/
python3 -m venv envsource env/bin/activatepip3 install -r requirements.txtAjoutez les CLÉS API nécessaires.
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
N'hésitez pas à modifier le mongodb utilisé ou les noms de variables. J'ai les deux ici puisque je travaille sur des mongodbs de prod et de dev pour la version hébergée de KEVin à kevin.gtfkd.com/*.
PUBLIC_BASE_URL est l'origine publique canonique utilisée dans les métadonnées de la page d'accueil.
TRUSTED_HOSTS est une liste d'autorisation séparée par des virgules pour les en-têtes HTTP Host acceptés ;
incluez le nom d'hôte utilisé par les contrôles de santé locaux et les proxys inverses.
Les paramètres d'admission d'origine sont lus une seule fois au démarrage. Redis applique les
limites partagées par fenêtre entre les workers : UNCACHED_QUERY_RATE_LIMIT couvre
les échecs de cache des listes et des KEV récents, et POINT_MISS_RATE_LIMIT couvre les échecs des points,
du RSS et des métriques. Les réponses 2xx et 4xx mises en cache partagent le même TTL.
Les verrous de remplissage (CACHE_FILL_LOCK_SECONDS) sérialisent le travail d'origine entre les workers
avec des jetons de propriétaire, CACHE_SINGLEFLIGHT_WAIT_SECONDS vaut 0 par défaut afin qu'une
clé en contention échoue immédiatement, et CACHE_TTL_JITTER_RATIO répartit l'expiration avec secrets.randbelow.
La recherche /kev à forte cardinalité et les variantes d'acteurs restent hors de Redis ; les
répétitions exactes utilisent un cache en processus borné.
Les ressources de points manuelles conservent également au plus NEGATIVE_CACHE_MAX_ENTRIES
échecs locaux de courte durée comme cache L1 devant Redis.
Configurer MongoDB :
Exécuter update.py
update.py récupérera les données de la CISA et remplira votre mongodb. Amusez-vous bien.
Voici un exemple de fichier docker-compose.yml pour déployer la partie web de KEVin.
assurez-vous que votre fichier .env contient les bonnes valeurs !!!
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=MicrosoftVous ne devez pas exposer mongodb à l'internet au sens large.
Les contributions sont les bienvenues ! Si vous rencontrez des problèmes ou avez des idées d'amélioration, n'hésitez pas à ouvrir une issue ou à soumettre une pull request. Je n'aurai pas beaucoup de temps pour améliorer cela pour le moment