koensmink/ncsc-advisory-watcher

GitHub: koensmink/ncsc-advisory-watcher

自动监控NCSC安全公告并通过Telegram推送高风险告警的Python工具。

Stars: 0 | Forks: 1

# 🔎 NCSC Advisory Watcher ## 🚀 功能 ### ✔ Harvester (CSAF + HTML) `harvest_ncsc.py` 通过官方 CSAF feed 和 HTML 回退机制获取 advisories。 - 提取 ID、标题、日期、概率/损害、分类、URL - 每日 CSV 输出至 `output/daily/` - Metadata 跟踪于 `output/last_run.json` ### ✔ 去重 `dedupe.py` 通过 `output/seen.json` 防止重复通知。 在以下情况下,advisory 将被忽略: - ID 之前已见过 - 日期之前已处理 - 不符合 severity 过滤条件 ### ✔ Severity 过滤 默认情况下,仅发送风险较高的通知: | 概率 | 损害 | 通知 | |------|--------|------------| | H | H | 是 | | M | H | 是 | | H | M | 是 | ### ✔ Telegram 通知 `notify_ncsc.py` 通过 Telegram Bot API 发送 HTML 格式的通知。 ## 📁 文件结构 ``` . ├── scraper.py ├── harvest_ncsc.py ├── notify_ncsc.py ├── dedupe.py ├── output/ │ ├── daily/ │ │ └── YYYY-MM-DD.csv │ ├── last_run.json │ └── seen.json ├── .github/ │ └── workflows/ │ └── ncsc.yaml └── readme.md ``` ## 🛠 安装 ### 前置条件 - Python **3.11+** - Dependencies: ``` pip install requests beautifulsoup4 python-dateutil ``` ## ⚙ 配置 ### Telegram Secrets | 变量 | 描述 | |-----------|--------------| | `TELEGRAM_BOT_TOKEN` | bot 的 API token | | `TELEGRAM_CHAT_ID` | 通知的目标 chat | ## ▶ 使用 ### Harvester + 通知 ``` python3 scraper.py ``` ### 单独功能 ``` python3 harvest_ncsc.py python3 notify_ncsc.py ``` ## 🕒 GitHub Actions Workflow Workflow: `.github/workflows/ncsc.yaml` - 在工作日每小时运行 - 周末和晚间运行 - Self-hosted runner - 提交 CSV/JSON 输出 - Telegram 通知 ## 📤 输出 ### CSV `output/daily/.csv` ### Metadata `output/last_run.json` ### 去重 `output/seen.json` ## 📄 许可证 MIT License. ## 👤 维护者 **Koen Smink** https://github.com/koensmink
标签:BeautifulSoup, CSAF, CSV, DevSecOps, ESC4, GitHub Actions, GPT, HTTP工具, JSON, NCSC, OSINT, Python, Scheduled Tasks, Self-hosted Runner, Splunk, Telegram 机器人, URL抓取, 上游代理, 威胁情报, 安全监测, 开发者工具, 数据去重, 数据抓取, 无后门, 消息推送, 漏洞告警, 漏洞管理, 网络安全, 自动化运维, 自动笔记, 荷兰国家网络安全中心, 逆向工具, 隐私保护, 风险过滤