ferasbusiness666/GuardianNode
GitHub: ferasbusiness666/GuardianNode
本地优先的个人安全与威胁情报中心,通过实时监控 Telegram 频道并基于多语言关键词评分发送私密警报,同时提供加密个人保险库与数据泄露检测功能。
Stars: 0 | Forks: 0
# GuardianNode
**本地优先的物理威胁监控。没有云端。没有中间商。您的数据仅保留在您的设备上。**
GuardianNode 实时监控 Telegram 频道,根据多语言威胁关键词库对传入消息进行评分,并在风险评分超过您的阈值时,通过您自己的 Telegram 机器人发送私密警报。
## 工作原理
```
Telegram channels (Arabic/EN/RU/HE/…)
│
▼
TelegramMonitor (Telethon — real-time socket)
│
▼
Arabic normalizer ── strips diacritics, alef variants, tatweel
│
▼
Risk Scorer ←── keyword weights × source reliability
│
├── score < threshold → silent log (SQLite)
│
└── score ≥ threshold → Bot API alert → your private Telegram
Personal Vault (AES-256-GCM encrypted at ~/.guardiannode/vault.enc)
│
├── Passwords → HIBP k-anonymity (SHA-1 prefix only sent, no Tor needed)
│
└── Emails → HIBP via Tor (your IP is never seen by HIBP)
▲
new Tor circuit per identity (stream isolation)
```
**风险评分** = `关键词基础分 × 来源可靠性乘数`
| 关键词级别 | 基础分 | 官方来源 | 可信来源 | 普通来源 |
|:-------------|:----------:|:--------------:|:--------------:|:--------------:|
| Critical | 90 | 90 | 72 | 45 |
| High | 70 | 70 | 56 | 35 |
| Medium | 45 | 45 | 36 | 22.5 |
## 环境要求
- Python 3.11+
- 一个 Telegram 账号
- 一个 Telegram 机器人(免费,通过 [@BotFather](https://t.me/BotFather) 创建)
- 来自 [my.telegram.org](https://my.telegram.org) 的 API 凭据
## 阿拉伯语支持
大多数频道消息使用阿拉伯语。GuardianNode 在匹配前会对阿拉伯语文本进行规范化处理,因此无论是否存在变音符号、Alef 变体或附加前缀,关键词匹配都能正常工作:
| 频道中的原始文本 | normalize() 处理后 | 关键词匹配 |
|:---------------|:-----------------|:-------------|
| `الإخلاءُ العاجل` | `الاخلاء العاجل` | `اخلاء` ✓ |
| `وإخلاء المنطقة` | `واخلاء المنطقه` | `اخلاء` ✓ |
| `تَحْذِيرٌ عاجل` | `تحذير عاجل` | `تحذير` ✓ |
| `غاراتٌ جوية` | `غارات جويه` | `غارات` ✓ |
规范化处理包括:移除 Tashkeel(变音符号)、`أإآ→ا`、`ة→ه`、`ى→ي`、移除 Tatweel(加长符)。
## 快速开始
```
# 1. Clone
git clone https://github.com/ferasbusiness666/guardiannode
cd guardiannode
# 2. 安装依赖
pip install -r requirements.txt
# 3. 首次设置(交互式向导)
python run.py --setup
# 4. 开始监控
python run.py
```
设置向导将:
1. 要求您设置一个**主密码**(用于加密所有存储的凭据)
2. 收集您的 Telegram API 凭据
3. 引导您创建并关联您的通知机器人
4. 让您添加带有可靠性评级的待监控频道
5. 仅进行一次身份验证并保存加密的会话
在随后的每次启动时,系统都会提示您输入主密码。没有任何内容会以明文形式存储。
## 数据存储位置
| 文件 | 用途 |
|:-----|:--------|
| `~/.guardiannode/config.enc` | AES-256-GCM 加密的配置文件(API 密钥、会话) |
| `~/.guardiannode/events.db` | 本地 SQLite 数据库,记录所有已评分的事件 |
`.guardiannode/` 目录在创建时使用 `chmod 700` 权限。配置文件使用 `chmod 600` 权限。这两个文件均不包含明文凭据。
## 安全设计
| 风险点 | 缓解措施 |
|:--------|:-----------|
| 凭据存储 | AES-256-GCM 加密;密钥通过 PBKDF2-SHA256(60 万次迭代)派生 |
| 主密码 | 绝不写入磁盘——仅在启动时输入,只保留在内存中 |
| Telegram 会话 | 作为加密字符串存储在 `config.enc` 内(Telethon `StringSession`) |
| 通知隐私 | 警报发送至**您自己的机器人**——没有任何 GuardianNode 服务器能看到它们 |
| 去重 | `(channel_id, message_id)` 的 SHA-256 哈希值可防止重复警报 |
## 配置说明
请查看 [`config.example.yaml`](./config.example.yaml) 了解所有选项。
关键设置:
```
monitoring:
alert_threshold: 60 # 0-100. Raise to reduce noise; lower for maximum sensitivity.
channels:
- username: "channel_name"
name: "Display Name"
reliability_label: official # official / trusted / general
```
可以在内置的多语言关键词集之上添加自定义关键词:
```
keywords:
critical:
- "nuclear alert"
- "تحذير نووي"
```
## 警报格式
```
🚨 CRITICAL ALERT
━━━━━━━━━━━━━━━━━━━━
Source: Civil Defense
Risk Score: 90/100
Triggers: `evacuation`, `immediate`
Time: 2025-01-15 14:32:11 UTC
━━━━━━━━━━━━━━━━━━━━
[original message text, up to 500 chars]
━━━━━━━━━━━━━━━━━━━━
⚡ Take immediate protective action. Move to shelter NOW.
```
## 数字防线 — 个人保险库
在设备上加密存储您的个人标识符,并扫描数据泄露:
```
python run.py --vault # Add emails, passwords, usernames, keywords
python run.py --scan # One-shot scan right now
python run.py # Includes automatic scan every 6 hours
```
**如何保持安全:**
| 标识符 | 检查方法 | 离开您设备的内容 | 对 HIBP 可见的 IP? |
|:-----------|:------------|:------------------------|:-------------------|
| 密码 | HIBP k-anonymity | 仅 SHA-1 哈希值的前 5 个字符 | 否(此处使用 clearnet 是安全的) |
| 电子邮件 | 通过 Tor 访问 HIBP | 您的电子邮件地址 | 否 — 被 Tor 隐藏 |
**Tor 电路隔离:** 您保险库中的每个身份都会通过 SOCKS5 stream isolation 获得独立的 Tor 电路。搜索两个电子邮件是无法被网络观察者关联起来的。
**“反向黑客”防护:**
- `aiohttp` 发起 HTTP 请求 —— 没有浏览器,不执行 JavaScript,无指纹追踪
- 即使通过 Tor 也强制执行 HTTPS 证书验证
- 无请求日志,无查询缓存 —— 每次扫描都是干净的会话
- 如果 Tor 未运行,电子邮件检查将被静默跳过(密码的 k-anon 检查仍然有效)
**Tor 设置(一次性):**
```
# Linux / Raspberry Pi
sudo apt install tor && sudo systemctl start tor
# macOS
brew install tor && brew services start tor
# Windows:从 torproject.org 下载 Tor Browser 或 Expert Bundle
```
## 项目结构
```
guardiannode/
├── run.py Entry point
├── requirements.txt
├── config.example.yaml Config reference
├── guardian/
│ ├── crypto.py AES-256-GCM + PBKDF2 key derivation
│ ├── config.py Encrypted config load/save
│ ├── keywords.py Multilingual keyword sets (EN/AR/RU/UK/HE)
│ ├── scorer.py Risk scoring engine
│ ├── storage.py SQLite event log + deduplication
│ ├── notifier.py Telegram Bot API alert sender
│ ├── monitor.py Telethon real-time channel monitor
│ ├── setup_wizard.py Interactive first-time setup
│ └── main.py Async service loop
└── docs/
├── ARCHITECTURE.md
├── THREAT_INTEL.md
├── TELEGRAM_INTEGRATION.md
├── DIGITAL_PERIMETER.md
└── ROADMAP.md
```
## 路线图
**阶段 1(当前):** 实时 Telegram 监控、关键词评分、加密配置、本地事件日志。
**阶段 2:** 集成本地 LLM(Ollama)以进行消息摘要,进行地理解析以计算与安全区域的距离。
**阶段 3:** 暗网监控(HIBP k-anonymity、基于 Tor 的爬虫)、网络入侵检测。
**阶段 4:** 离线韧性(SDR 无线电、LoRa)、P2P 可信节点警报共享、声学警报器检测。
## 架构与设计文档
请查看 [`/docs`](./docs/) 目录以获取完整的系统设计、威胁情报策略和数字防线规范。
标签:Python, 代码示例, 信息监控, 威胁情报, 开发者工具, 数据分析, 无后门, 逆向工具