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平台, 威胁情报, 安全运营, 开发者工具, 扫描框架, 暗色界面, 自动化攻击