
API REST sobre o catálogo de Vulnerabilidades Exploradas Conhecidas (KEV) da CISA, expondo consultas de CVE, adições recentes ao KEV, pesquisa textual e dados mesclados da CISA, MITRE e NVD.
A API que faltava para o Catálogo de Vulnerabilidades Exploradas Conhecidas da CISA (aqui).
O acesso ao KEVin pode ser feito em https://kevin.gtfkd.com/
Atualmente há limites de taxa em vigor e o cache está definido para 3 horas na borda.
Para verificar o status da instância hospedada, consulte nossa página de status: https://kevinapi.statuspage.io/
python3 -m venv envsource env/bin/activatepip3 install -r requirements.txtAdicione as API KEYS necessárias.
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
Sinta-se à vontade para editar o mongodb em uso ou os nomes das variáveis. Tenho ambos aqui, pois trabalho com mongodbs de prod e dev para a versão hospedada do KEVin em kevin.gtfkd.com/*.
PUBLIC_BASE_URL é a origem pública canônica usada nos metadados da página inicial.
TRUSTED_HOSTS é uma lista de permissões separada por vírgulas para os cabeçalhos HTTP Host aceitos;
inclua o hostname usado por verificações de saúde locais e proxies reversos.
As configurações de admissão de origem são lidas uma vez na inicialização. O Redis aplica os
limites compartilhados por janela entre os workers: UNCACHED_QUERY_RATE_LIMIT cobre
os cache misses de list e recent-KEV, e POINT_MISS_RATE_LIMIT cobre os misses de point,
RSS e metrics. Respostas 2xx e 4xx em cache compartilham o mesmo TTL.
Os fill locks (CACHE_FILL_LOCK_SECONDS) serializam o trabalho de origem entre os workers
com tokens de proprietário, CACHE_SINGLEFLIGHT_WAIT_SECONDS tem como padrão 0 para que uma
chave em contenção falhe imediatamente, e CACHE_TTL_JITTER_RATIO distribui a expiração com secrets.randbelow.
A busca de alta cardinalidade em /kev e as variantes de actor ficam fora do Redis; repetições
exatas usam um cache em processo limitado.
Recursos manuais de point também mantêm no máximo NEGATIVE_CACHE_MAX_ENTRIES
misses locais de curta duração como um cache L1 na frente do Redis.
Configurar o MongoDB:
Executar update.py
update.py buscará dados da CISA e populará seu mongodb. Aproveite.
Abaixo está um exemplo de arquivo docker-compose.yml para implantar a metade web do KEVin.
certifique-se de que seu arquivo .env tenha os valores corretos!!!
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=MicrosoftVocê não deve expor o mongodb para a internet em geral.
Contribuições são bem-vindas! Se você encontrar algum problema ou tiver ideias para melhorias, sinta-se à vontade para abrir uma issue ou enviar um pull request. Não terei muito tempo para melhorar isso no momento