Python: бот для автоматического мониторинга CVE

admin

Administrator
Команда форума
Open-source бот для мониторинга новых CVE

Разработал бота, который отслеживает новые CVE в реальном времени и отправляет уведомления в Telegram.

Функционал:
  • Парсинг NVD, MITRE, ExploitDB
  • Фильтрация по CVSS score (настраиваемый порог)
  • Уведомления в Telegram с кратким описанием
  • Поиск PoC-эксплойтов на GitHub
  • Интеграция с JIRA для создания тикетов

Технологии:
Python 3.12, asyncio, aiohttp, SQLAlchemy, Telegram Bot API

Python:
import asyncio
import aiohttp
from datetime import datetime

class CVEMonitor:
    NVD_API = "https://services.nvd.nist.gov/rest/json/cves/2.0"
    
    def __init__(self, min_cvss: float = 7.0):
        self.min_cvss = min_cvss
        self.seen_cves = set()
    
    async def fetch_recent(self, session):
        params = {
            "pubStartDate": datetime.utcnow().strftime("%Y-%m-%dT00:00:00.000"),
            "cvssV3Severity": "HIGH"
        }
        async with session.get(self.NVD_API, params=params) as resp:
            data = await resp.json()
            return data.get("vulnerabilities", [])
    
    async def run(self):
        async with aiohttp.ClientSession() as session:
            while True:
                cves = await self.fetch_recent(session)
                for cve in cves:
                    cve_id = cve["cve"]["id"]
                    if cve_id not in self.seen_cves:
                        self.seen_cves.add(cve_id)
                        await self.notify(cve)
                await asyncio.sleep(300)

Исходный код на GitHub. Буду рад фидбеку и PR.
 
Назад
Верх