项目作者: Mr-xn

项目描述 :
威胁情报播报
高级语言: Python
项目地址: git://github.com/Mr-xn/threat-broadcast.git
创建时间: 2021-02-27T02:58:36Z
项目社区:https://github.com/Mr-xn/threat-broadcast

开源协议:

下载


Threat-Broadcast

威胁情报播报


运行环境

项目介绍

从以下公开的威胁情报来源爬取并整合最新信息:

爬取到的 CVE 情报会作如下处理:

  • 【邮件播报】 接收播报信息的邮箱配置: recv/mail_*.dat
  • 【邮件播报】 对所有 Issues 标题中的邮箱地址发送播报信息
  • 【页面播报】 最新的 TOP10 威胁情报会更新到 Github Page
  • 【情报归档】 所有威胁情报会归档到 sqlite

目前最有效的推送方式是邮件推送(建议使用手机邮箱,如 139 可触发短信通知)


播报效果





订阅方式

  • 【开发者订阅】 可自行 Fork 项目,通过配置定时任务向自己的邮箱推送即可
  • 【个人订阅】 在 Issues 标题留下你的邮箱等待添加后即可接收播报信息

威胁情报推送源

认准我的推送源,勿点击来历不明链接,慎防钓鱼

开发者部署


无服务器方式(推荐)



本项目已配置 Github Actions,因此你只需轻松几步即可实现部署:

- Fork 本项目 到你的代码仓库
- 通过 Settings —> Secrets 配置用于 发送 威胁情报邮件的 4 个环境变量:

  MAIL_SMTP: SMTP 服务器(国内推荐 QQ),如 smtp.qq.com

  MAIL_USER: 邮箱账号,如 mrxn.net@qq.com

  MAIL_PASS: 邮箱密码

  MAIL_RECV: 接收情报的邮箱,如 mrxn.net@gmail.com,admin@mrxn.net

经过测试修改,现在默认支持从 issues 里面提取邮箱加入发送列表了!
PS:如果邮箱的发送端口不是默认的465,比如outlook的邮箱默认是587,请修改:https://github.com/Mr-xn/threat-broadcast/blob/main/.github/workflows/autorun.yml#L35 处的server_port的值。
- 启用 Settings —> Actions 功能

> 尔后程序便会每小时执行一次,并自动生成 Github Page 播报页面(若要调整执行频率,可修改 autorun.ymlschedule 触发时点)





有服务器方式



### 安装

- 任意找一台 Linux 服务器(阿里云、腾讯云等)
- 安装 python 3.8
- 把仓库 checkout 到服务器本地: git clone https://github.com/mr-xn/threat-broadcast

> 国内的云主机(阿里云/腾讯云等)为了避免滥发邮件默认关闭了对 SMTP 25 端口的出口流量,直接导致邮件无法发送。 解封需要到控制台申请,例如 《阿里云 25 端口解封》、 《腾讯云 25 端口解封


### 配置定时任务

- 修改 crontab 配置文件,设置定时任务: vim /etc/crontab
- 设置定时任务命令(每小时): 0 * * * * root python ${workspace}/threat-broadcast/main.py [-any_args]
- 注意脚本位置需使用绝对路径,根据实际 checkout 的位置修改即可
- 保存 crontab 配置文件后会自动生效,查看日志: tail -10f /var/log/cron

> 程序运行参数可通过 main.py -h 查看帮助文档


### 自动生成 Github Page 播报页面

- 安装 git 命令行客户端
- 安装 GitPython 模块: pip install GitPython
- 打开项目目录: cd ${workspace}/threat-broadcast
- 设置使用 SSH 与 Github 连接(避免提交内容时要输入账密),详见 这里
- 若设置 SSH 后还要输入密码才能提交,则还需要把仓库的 https 协议改成 ssh,详见 这里
- main.py 添加运行参数 -ac 可自动提交变更到仓库


> 只要爬取到新的威胁情报则会刷新 docs/index.html,将其提交到仓库会自动更新 Github Page

目录说明

  1. threat-broadcast
  2. ├── README.md ............................... [项目说明]
  3. ├── main.py ................................. [程序运行入口]
  4. ├── cache ................................... [威胁情报缓存]
  5. ├── data
  6. └── cves.db ............................. [sqlite: 威胁情报归档]
  7. ├── docs .................................... [Github Page 威胁情报总览]
  8. ├── recv
  9. ├── mail_*.dat .......................... [接收威胁情报的邮箱]
  10. └── qq_group.dat ........................ [接收威胁情报的 QQ 群]
  11. ├── src ..................................... [项目源码]
  12. ├── script .................................. [数据库脚本]
  13. ├── tpl ..................................... [模板文件]
  14. ├── imgs .................................... [项目图片]
  15. └── log ..................................... [项目日志]

版权声明

 Copyright (C) EXP,2016-EXP%202016-blue.svg) License: GPL v3

  • Fork From: https://github.com/lyy289065406/threat-broadcast

说明

这个 REPO 还有很多 BUG !!! 欢迎 PR ,不会 DEBUG 的朋友 慎用!

fork 后出问题的 不要找我