Open-source бот для мониторинга новых CVE
Разработал бота, который отслеживает новые CVE в реальном времени и отправляет уведомления в Telegram.
Функционал:
Технологии:
Python 3.12, asyncio, aiohttp, SQLAlchemy, Telegram Bot API
Исходный код на GitHub. Буду рад фидбеку и PR.
Разработал бота, который отслеживает новые 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.