TonyCrespoMe/cybersecurity-brief
GitHub: TonyCrespoMe/cybersecurity-brief
一款基于 Google Gemini 的自动化网络安全情报简报工具,定期从 RSS 源聚合安全资讯并通过多渠道交付 AI 生成的摘要。
Stars: 1 | Forks: 0
# 网络安全简报
由 Google Gemini 提供支持并基于 Google Search grounding 的自动化定期安全情报简报(每 4 天执行一次)。
最初设计用于发送至 Gmail,现在支持多种交付格式,包括 Slack、Google Chat 和本地文件存储。
## 功能
- **数据聚合**:从预先定义的高质量网络安全 RSS 源收集最新情报。
- **AI 分析**:使用 Google Gemini 总结并呈现可操作的威胁情报。
- **多渠道交付**:通过电子邮件、Slack、Google Chat 接收您的情报简报,或者将其作为本地 Markdown 文件保存在存储库中以进行历史追踪。
## 设置与安装
1. **克隆存储库**
git clone https://github.com/TonyCrespoMe/cybersecurity-brief.git
cd cybersecurity-brief
2. **安装依赖项**
pip install -r requirements.txt
3. **配置环境变量**
复制示例配置并填写您的详细信息:
cp .env.example .env
## 投递方式配置
您可以通过在 `.env` 文件中提供相应的凭证,同时启用一种或多种投递方式。
### 1. 电子邮件投递
需要一个 Gmail 账户。**您不能使用标准的 Google 账户密码进行 SMTP 验证。** 您必须使用应用专用密码。
**如何生成 Gmail 应用专用密码:**
1. 转到您的 [Google 账户安全设置](https://myaccount.google.com/security)。
2. 确保已**开启**两步验证 (**2-Step Verification**)。
3. 在您的账户设置搜索栏中搜索 **"App Passwords"**。
4. 创建新的应用密码(选择 "Other (Custom name)" 并将其命名为 `Cybersecurity Brief` 之类的名称)。
5. Google 将提供一个 16 个字符的代码。使用此代码(不带空格)作为您的 `SMTP_APP_PASSWORD`。
**环境变量:**
- `SMTP_SERVER`: `smtp.gmail.com`
- `SMTP_PORT`: `465`
- `SMTP_USER`: 您的 Gmail 地址。
- `SMTP_APP_PASSWORD`: 您的 16 位应用密码。
- `EMAIL_RECIPIENT`: 接收简报的电子邮件地址。
### 2. Slack
通过 Incoming Webhook 将简报直接发送到 Slack 频道。
- **设置**:转到您的 Slack Workspace 设置 -> Apps -> Custom Integrations -> Incoming WebHooks。创建一个新的 webhook 并复制 URL。
- **变量**:在您的 `.env` 中设置 `SLACK_WEBHOOK_URL="https://hooks.slack.com/services/..."`。
### 3. Google Chat
将简报发送到 Google Chat Space。
- **设置**:在 Google Chat 中打开该 Space -> 点击 Space 名称 -> Apps & integrations -> Webhooks。创建一个新的 webhook 并复制 URL。
- **变量**:在您的 `.env` 中设置 `GOOGLE_CHAT_WEBHOOK_URL="https://chat.googleapis.com/v1/spaces/..."`。
### 4. 本地存储库存档
自动将 Markdown 简报保存到存储库中新创建的目录中(例如,用于追踪新闻历史记录)。
- **变量**:
- `SAVE_TO_FILE="true"`
- `FILE_SAVE_DIR="history"`(如果该目录不存在,将会自动创建)。
## API Token 和密钥的安全最佳实践
如果您打算使用或复刻此工具,请遵守以下安全实践以保护您的凭证:
- **切勿提交密钥**:切勿提交您的 `.env` 文件。`.gitignore` 已配置为忽略 `.env`,但请确保您不会绕过此设置。
- **最小权限原则**:
- 对于**电子邮件**:使用应用专用密码而不是您的主账户密码。
- 对于 **Slack/Google Chat**:限制您的 webhooks 仅能发布到一个特定的指定频道/空间。不要授予它们全 workspace 的管理员权限。
- **密钥轮换**:如果您意外地在公开提交中暴露了 Webhook URL、Gemini API Key 或应用密码,请立即从提供商的控制面板中**撤销它**并生成一个新的。不要仅仅删除文件,因为 git 历史记录会保留它!
- **环境管理**:如果通过 GitHub Actions 运行,请将这些凭证存储在 **GitHub Repository Secrets** 中,而不是直接将它们硬编码在 YAML 工作流文件中。
## 用法
手动运行脚本进行测试:
```
python src/main.py
```
标签:AI摘要, 信息聚合, 威胁情报, 开发者工具, 消息推送, 网络调试, 自动化, 逆向工具