<div align="center">

# 🛡️ SecPulse - 赛博脉动

> 面向网络安全领域的智能资讯聚合与推送系统



[![Python](https://img.shields.io/badge/Python-3.6+-blue.svg)](https://www.python.org/)
[![License](https://img.shields.io/badge/License-MIT-green.svg)](LICENSE)

**实时感知安全领域的脉搏跳动** 🔔

</div>

## 🚀 快速开始 <br>
RSS订阅链接来源：https://github.com/zhengjim/Chinese-Security-RSS <br>
使用python-json进行格式化，然后使用飞书webhook机器人进行发送 <br>
./config/config.yaml 可指定发送渠道、运行方式等基础配置信息 <br>
./config/keywords.yaml 可指定关键词参数（支持热修改） <br>
./config/github_config.yaml 可指定Github相关参数（支持热修改） <br>
更新记录请查看./UpdateLOG.md

### 📱 推送渠道 <br>

目前支持以下推送渠道： <br>
- 飞书（Feishu） <br>
- 企业微信（WeChat Work） <br>
#### 后续更新渠道： <br>
- 钉钉（DingTalk） <br>
- 蓝信（Lanxin） <br>
#### 停更渠道： <br>
邮件（Email，中断开发） <br>

### 项目特色 <br>
- 模块化：爬虫（获取信息部分）、分析（对获取的json信息进行筛选分析存储）、推送（推送至各渠道）、网页等各模块均可单独运行。 <br>
- 轻量化：默认使用sqlite以及其他常见的各系统自带的库，用户仅需配置python环境，不会占用过多内存。 <br>
- 简单化：配置好config后即可一步运行，效率极高。 <br>

### 日志相关 <br>
请查看./resources/log文件夹下内容 <br>

### 🖥️ Linux后台运行建议： <br>
Linux系统建议下载screen于后台持续运行本脚本。   <br>
debian/ubuntu/kali: `apt install screen` <br>
centos: `yum install screen` <br>
创建新会话：`screen -S 会话名称`      <br>
保存并退回到界面：`ctrl+a+d`    <br>
重新进入会话：`screen -r 会话名称`  <br>
结束对话：进入会话后输入`exit`  <br>

当然，您也可以直接使用install脚本一键注册systemd服务（注意，请将Core.py主函数中的send_first_message()注释掉，防止反复触发首次运行效果） <br>

### 使用方法： <br>
先下载支持库：`pip install -r requirements.txt` <br>
随后便可直接运行：`python Core.py` <br>
web运行：`python ./web/app.py` <br>
随后web网页将会在本地9801端口启动，访问即可，使用反向代理即可以域名映射到外网 <br>
直接访问web域名即可查看历史推送，访问路径/log即可查看程序运行日志，/weblog查看flask日志 <br>

或者直接运行install.sh即可，目前脚本存在一定问题，正在尽力修复。  <br>

### 配置 <br>
首先先在飞书中创建群组，然后再创建WebHook机器人 <br>
<center><img src="./resources/imgs/group.jpg" width="50%" alt="群组"/></center><br>
<center><img src="./resources/imgs/add_bot.jpg" width="50%" alt="添加机器人"/></center><br>
随后，在配置机器人时可打开签名验证（您也可自行选择IP白名单） <br>
<center><img src="./resources/imgs/bot_config.jpg" width="50%" alt="机器人配置"/></center><br>
再之后，将配置信息填入config.yaml文件当中 <br>
<center><img src="./resources/imgs/config.jpg" width="50%" alt="配置"/></center><br>
那么现在，您就可以开始运行使用了。 <br>

### Github访问限制配置  <br>
若短时间内请求次数过多，可能会被github限制，可参考以下配置 <br>  
- 对于未经身份验证的请求，github 速率限制允许每小时最多 60 个请求 <br>  
- 而通过使用基本身份验证的 API 请求，每小时最多可以发出 5,000 个请求 <br>  
- https://github.com/settings/tokens/new 创建token，时间建议选择无限制。<br>
<center><img src="./resources/imgs/github-token.png" width="80%" alt="飞书运行提示"/></center><br>
`./config/github_config.yaml`中可配置github_token <br>  


### 📊 运行效果展示 <br>
<center><img src="./resources/imgs/run.jpg" width="50%" alt="后端"/></center><br>
<center><img src="./resources/imgs/start.jpg" width="50%" alt="飞书运行提示"/></center><br>
<center><img src="./resources/imgs/result.jpg" width="50%" alt="飞书运行展示"/></center><br>
<center><img src="./resources/imgs/result_mobile.jpg" width="70%" alt="飞书运行展示-安卓"/></center><br>

### 📝 更新日志 <br>
详细的更新记录请查看 [UpdateLOG.md](./UpdateLOG.md)

### 🤝 贡献指南 <br>
欢迎提交Issue和Pull Request来改进本项目！<br>
您也可以通过QQ（2857911564）或者发送邮件（admin@masonliu.com）给我反馈问题。<br>

### 🙏 致谢 <br>
RSS订阅链接来源：[Chinese-Security-RSS](https://github.com/zhengjim/Chinese-Security-RSS) <br>
感谢所有为开源社区做出贡献的开发者 <br>