8Prashant88/secure-log-ti
GitHub: 8Prashant88/secure-log-ti
一款自托管的轻量级 SOC 威胁情报平台,通过实时日志采集、多格式解析和规则引擎威胁评分,为个人设备提供安全监控与告警能力。
Stars: 0 | Forks: 0
# SecureLogTI — SOC 威胁情报平台
一个轻量级、自托管的**适用于个人设备的 SOC 风格平台**。
通过 API 密钥将你的 Mac(或任何设备)连接到该平台,它将**实时**捕获日志,解析 7 种以上的格式,使用可解释的规则引擎对威胁进行评分,利用信誉数据丰富 IP 信息,并在实时仪表板上发出警报。
每个账户都是隔离的:设备的 API 密钥映射到一个用户,因此**你设备的日志只会出现在你的账户中。** 多人可以各自运行自己的实例,或者共享一个实例并各自注册自己的账户。
## ✨ 功能
- 🔌 **实时设备日志收集** — API 密钥 + macOS 流式传输 agent
- 📥 也支持手动导入 — 粘贴或上传日志文件
- 🧩 多格式解析(syslog、auth、firewall、Apache/Nginx、macOS 统一及系统日志、Docker/K8s、Windows 事件日志、JSON、DB 审计)
- 🧠 5 因素可解释威胁检测(暴力破解、SQLi、恶意软件、DDoS 等)
- 🌐 IP 信誉丰富(离线启发式算法;可选的 AbuseIPDB 密钥)
- 📊 实时自动刷新仪表板、日志、威胁和警报(每 5 秒)
- 👥 通过注册和设备 API 密钥实现每账户隔离
## 🚀 快速开始(全新克隆)
**前提条件:** Node.js 18+ 和 npm。
```
# 1. Clone
git clone https://github.com/8Prashant88/soc-threat-intelligence-platform.git
cd soc-threat-intelligence-platform
# 2. 安装依赖(通过 postinstall 自动生成 Prisma client)
npm install
# 3. 创建本地数据库(应用 migrations → prisma/dev.db)
npm run setup
# 4. (可选)配置环境
cp .env.example .env.local # add an AbuseIPDB key if you have one
# 5. 运行
npm run dev
```
打开 **http://localhost:3000**,然后:
- **注册**以创建你自己的账户(初始为空;随着你的设备流式传输日志会逐渐填充数据),或者
- 登录**演示账户**以探索预填充的仪表板:
`demo@securelogti.com` / `demo123`(由 `npm run setup` 创建)。
## 🔌 实时流式传输设备日志
### 1. 创建设备 API 密钥
在应用中:**Settings → Devices & API Keys → New key**。复制它——它只显示一次。
### 2. 运行适用于你操作系统的 agent
设置两个环境变量(你的 endpoint 和密钥),然后运行适用于你平台的 agent。新事件将在几秒钟内出现在仪表板上。在应用中,**Logs → Add Logs → Stream from Device** 对话框会为你显示这些预填好的命令。
**macOS**(流式传输统一安全日志):
```
export SECURELOG_ENDPOINT="http://localhost:3000/api/ingest"
export SECURELOG_API_KEY="slt_xxxxxxxx..." # the key you just created
npm run agent # or: ./scripts/securelog-agent.sh
```
**Linux**(systemd journal,或 `/var/log/auth.log` / `secure`):
```
export SECURELOG_ENDPOINT="http://localhost:3000/api/ingest"
export SECURELOG_API_KEY="slt_xxxxxxxx..."
./scripts/securelog-agent-linux.sh # run with sudo if you can't read the auth logs
```
**Windows**(Security / System 事件日志——以管理员身份运行 PowerShell):
```
$env:SECURELOG_ENDPOINT="http://localhost:3000/api/ingest"
$env:SECURELOG_API_KEY="slt_xxxxxxxx..."
.\scripts\securelog-agent.ps1
```
### 3. 从*其他*机器收集
在一台机器上运行实例,并将每个设备上的 `SECURELOG_ENDPOINT` 设置为该机器的地址,例如 `http://192.168.1.50:3000/api/ingest`。为每个设备提供单独的 API 密钥,以便你可以单独撤销它们。
### 4. 不想用终端?上传或粘贴
对于一次性操作或非技术用户,**Logs** 页面还接受粘贴的日志片段或上传的 `.log`/`.txt` 文件——无需 agent 或命令行。
### 5. 或者直接从任何设备/操作系统发起 POST
```
curl -X POST "http://localhost:3000/api/ingest" \
-H "Authorization: Bearer " \
-H "Content-Type: text/plain" \
--data-binary "Jan 16 10:30:00 host sshd[1234]: Failed password for admin from 192.168.1.100 port 22 ssh2"
```
也接受 JSON 格式:`{ "logs": ["raw line", ...] }` 或 `{ "content": "..." }`。
Linux 示例(tail auth 日志):
```
tail -n0 -F /var/log/auth.log | while read -r line; do
curl -s -X POST "http://:3000/api/ingest" \
-H "Authorization: Bearer " \
-H "Content-Type: text/plain" --data-binary "$line" >/dev/null
done
```
## 🧰 实用脚本
| 命令 | 作用 |
|---|---|
| `npm run dev` | 启动应用 (http://localhost:3000) |
| `npm run setup` | 生成 Prisma client + 创建/升级数据库 |
| `npm run db:migrate` | 应用待处理的迁移 |
| `npm run db:reset` | ⚠️ 删除并重新创建数据库(清除所有数据) |
| `npm run db:studio` | 在 Prisma Studio 中浏览数据库 |
| `npm run agent` | 运行 macOS 日志传输 agent |
| `npm run build` / `npm start` | 生产环境构建与部署 |
## 🛡️ SOC 分析师视角
该平台反映了 Tier 1 SOC 分析师的工作方式:解析原始日志,识别可疑模式,利用威胁情报进行丰富,按风险评分进行优先级排序,并生成随时可用于调查的摘要——所有这些都自动且实时地完成。
## ⚠️ 注意事项
- 身份验证是一个**简化的、基于 localStorage 的演示**,适用于个人/本地使用,并非针对公共互联网进行了强化。如果你将实例暴露在 localhost 之外,请将其置于受信任的网络或具有真实身份验证的反向代理之后。
- 数据存储在本地 **SQLite** 数据库(`prisma/dev.db`)中。
## 📄 许可证
在 [MIT 许可证](LICENSE)下发布。
标签:CISA项目, GNU通用公共许可证, MITM代理, Node.js, SOC平台, 威胁情报, 安全运营, 开发者工具, 扫描框架, 暗色界面, 自动化攻击