
واجهة REST API فوق كتالوج الثغرات المعروفة المستغلة من CISA، تتيح البحث عن CVE، والإضافات الحديثة إلى KEV، والبحث النصي، والبيانات المدمجة من CISA وMITRE وNVD.
واجهة API المفقودة لكتالوج الثغرات الأمنية المعروفة المستغلة من CISA (هنا).
يمكن الوصول إلى KEVin عبر https://kevin.gtfkd.com/
حدود المعدل مطبقة حاليًا والتخزين المؤقت مضبوط على 3 ساعات على الحافة.
للتحقق من حالة النسخة المستضافة، يرجى الرجوع إلى صفحة الحالة الخاصة بنا: https://kevinapi.statuspage.io/
python3 -m venv envsource env/bin/activatepip3 install -r requirements.txtأضف مفاتيح API اللازمة.
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
لا تتردد في تعديل mongodb المستخدمة أو أسماء المتغيرات. لدي كلاهما هنا لأنني أعمل على mongodb الخاصة بالإنتاج والتطوير للنسخة المستضافة من KEVin على kevin.gtfkd.com/*.
PUBLIC_BASE_URL هو الأصل العام القانوني المستخدم في بيانات الصفحة الرئيسية الوصفية.
TRUSTED_HOSTS هي قائمة سماح مفصولة بفواصل لرؤوس HTTP Host المقبولة؛
ضمّن اسم المضيف المستخدم في فحوصات السلامة المحلية والوكلاء العكسيين.
تُقرأ إعدادات قبول الأصل مرة واحدة عند بدء التشغيل. يفرض Redis
الحدود المشتركة لكل نافذة عبر العمال: يغطي UNCACHED_QUERY_RATE_LIMIT
إخفاقات التخزين المؤقت للقوائم وKEV الحديثة، ويغطي POINT_MISS_RATE_LIMIT إخفاقات
النقاط وRSS والمقاييس. تتشارك استجابات 2xx و4xx المخزنة مؤقتًا نفس TTL.
أقفال التعبئة (CACHE_FILL_LOCK_SECONDS) تُسلسل عمل الأصل عبر العمال
برموز المالك، وCACHE_SINGLEFLIGHT_WAIT_SECONDS افتراضيًا 0 حتى يفشل
المفتاح المتنازع عليه فورًا، ويوزع CACHE_TTL_JITTER_RATIO الانتهاء باستخدام secrets.randbelow.
يبقى البحث عالي التنوع في /kev ومتغيرات الفاعل خارج Redis؛ التكرارات
الدقيقة تستخدم ذاكرة مؤقتة محدودة داخل العملية.
تحتفظ موارد النقاط اليدوية أيضًا بحد أقصى NEGATIVE_CACHE_MAX_ENTRIES
من الإخفاقات المحلية قصيرة العمر كذاكرة مؤقتة L1 أمام Redis.
إعداد MongoDB:
تشغيل update.py
سيقوم update.py بسحب البيانات من CISA وملء mongodb الخاصة بك. استمتع.
فيما يلي مثال لملف docker-compose.yml لنشر الجزء الخاص بالويب من KEVin.
تأكد من أن ملف .env الخاص بك يحتوي على القيم الصحيحة!!!
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=Microsoftيجب ألا تعرّض mongodb للإنترنت الأوسع.
المساهمات مرحب بها! إذا وجدت أي مشكلات أو لديك أفكار للتحسين، فلا تتردد في فتح مشكلة أو تقديم طلب سحب. لن يكون لدي الكثير من الوقت لتحسين هذا في الوقت الحالي