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摘要, 信息聚合, 威胁情报, 开发者工具, 消息推送, 网络调试, 自动化, 逆向工具