keithdickey207/defensive-ti-local-first
GitHub: keithdickey207/defensive-ti-local-first
一个运行在物理隔离环境中的纯防御性威胁情报管线,支持 IoC 摄取、净化、启发式分析及本地 SQLite 存储。
Stars: 0 | Forks: 0
# 防御性威胁情报架构(本地优先蓝图)
用于安全 IoC / 遥测数据摄取、净化、启发式与 regex 分析以及本地 SQLite 存储的
物理隔离、仅限防御的 pipeline。
本项目刻意限制在隔离环境内的**防御性**操作。不进行任何外部访问,不主动扫描第三方
系统,也不描述或启用任何自动化的出站流量。
**许可证:** MIT — 请参阅 [LICENSE](LICENSE)
**作者:** Keith Alan Dickey (2026)
## 要求
- **Python 3.10+** (在 ChromeOS / Penguin 上使用 `python3`,而不是 `python`)
- 核心 pipeline 仅使用标准库
- 可选:[Ollama](https://ollama.com) + `nomic-embed-text` 用于书签 RAG
```
python3 --version
```
## 项目布局
```
defensive-ti-local-first/
├── LICENSE
├── README.md
├── ARCHITECTURE.md
├── requirements.txt # empty / optional chromadb note
├── bookmark_ingest.py # browser bookmarks → SQLite for LLM learning
├── rag_loader.py # Ollama embeddings + local vector store
├── src/
│ ├── sanitize.py # Sanitization buffer
│ ├── ingest.py # File drop + localhost TCP
│ ├── analyzer.py # Regex IoCs + signatures + heuristics
│ ├── storage.py # SQLite WAL
│ ├── pipeline.py # asyncio queue + workers
│ └── main.py # CLI
├── data/
│ ├── incoming/ # Drop log files here
│ ├── signatures/ # Local JSON signatures
│ └── db/ # SQLite (create at runtime)
├── loom_internal/ # Bookmark + RAG state
└── tests/test_core.py
```
## 快速开始 — 威胁 pipeline
```
cd ~/defensive-ti-local-first # symlink → projects/defensive-ti-local-first
# 一次性分析(无长期运行的 process)
python3 -m src.main --once "Beacon 203.0.113.55 using powershell FromBase64String"
# 检查结果
python3 -m src.main --stats
python3 -m src.main --recent 20
# 完整 pipeline(file drop + localhost TCP)
python3 -m src.main
```
在另一个终端中:
```
# 放入一个 log file
echo "Possible C2 on 10.0.0.55:4444 mimikatz" > data/incoming/test.log
# 或者仅通过 local socket 发送
printf '%s\n' "Beacon 203.0.113.55 evil" | nc 127.0.0.1 9999
# (如果缺少 nc:)
printf '%s\n' "Beacon 203.0.113.55 evil" | python3 -c \
"import socket,sys; s=socket.create_connection(('127.0.0.1',9999)); s.sendall(sys.stdin.buffer.read()); s.close()"
```
### 测试
```
python3 -m unittest tests.test_core -v
```
## 用于本地 LLM 学习的书签历史记录
ChromeOS Penguin 通常**无法**读取 Chrome 的实时配置文件。请导出一次:
1. Chrome → `chrome://bookmarks` → **⋮** → **导出书签**
2. 将 `.html` 移入 Linux:`~/shared/inbox/bookmarks.html`
3. 摄取 + 准备 RAG 文档:
```
cd ~/defensive-ti-local-first
python3 bookmark_ingest.py --auto
python3 bookmark_ingest.py --stats
python3 bookmark_ingest.py --rag-export
# 使用本地 Ollama 进行 Embed(此机器上已有 nomic-embed-text)
python3 rag_loader.py --latest
# 查询你的个人 knowledge base
python3 rag_loader.py --query "threat intelligence air gap"
```
可选:如果你稍后安装了 ChromaDB:
```
pip install chromadb
python3 rag_loader.py --latest --chroma
```
## 安全加固说明(基于架构)
| 控制措施 | 实现方式 |
|---------|-----|
| 阻断出站流量 | `sudo iptables -A OUTPUT -o eth0 -j DROP`(根据实际情况调整接口) |
| 仅限本地绑定 | TCP 监听器被**硬编码**为 `127.0.0.1` |
| 静态加密 | 将 `data/db/` 置于加密卷 / fscrypt 上 |
| 丢弃重复处理 | `data/incoming/` 中的文件在读取后会重命名为 `*.processed` |
| 无远程 IoC 订阅源 | 特征码仅存放在 `data/signatures/` 目录下 |
## 架构摘要
请参阅 [ARCHITECTURE.md](ARCHITECTURE.md) 获取完整的本地优先蓝图。
```
Raw logs → Sanitization → Async queue → Regex + Heuristics → SQLite → CLI reports
```
## 适用范围提醒
仅限防御性分析。本软件**不**执行攻击性扫描、
外部情报富集,或任何自动化的对外情报收集。
标签:AI风险缓解, Python, SQLite, TLS, 威胁情报, 开发者工具, 异步IO, 无后门, 本地存储, 计算机取证, 逆向工具, 防御工具