思路与目标
将前端 JavaScript 产生的日志与 CentOS 的系统日志进行统一采集、关联与告警,可更早识别可疑行为(如暴力登录、Web 攻击探测、异常流量)并快速响应。实践中,JS 日志主要反映应用侧事件,系统侧安全线索集中在 /var/log/secure、/var/log/messages、/var/log/audit/audit.log 等文件,配合 journalctl、rsyslog、ELK/Splunk、fail2ban/OSSEC 等工具实现持续监测与自动化处置。
整体架构
- 前端与网关埋点
- 在 JS 中记录关键事件:登录/登出、权限变更、表单提交、接口错误、资源加载异常、可疑输入(如含 或 UNION SELECT 等特征)、用户代理与 IP(由网关/代理注入),统一字段与时间戳。
- 传输与缓冲
- 使用 Beacon/HTTP POST 异步上报到 Nginx/Node.js 日志接口;为防丢失,本地短暂缓冲与重试,服务端落盘并打上服务器时间与服务标识。
- 集中存储与解析
- 以 rsyslog/syslog-ng 或 Logstash 将日志送入 Elasticsearch,用 Kibana 建立仪表盘与阈值告警;或对接 Splunk/Graylog 作为 SIEM 中枢。
- 关联与告警
- 将 JS 日志中的 IP/账号/UA 与系统日志(如 /var/log/secure 的 SSH 失败、auditd 的权限变更)做关联;通过 fail2ban 封禁恶意 IP,或用 OSSEC/Wazuh 做规则引擎与主动响应。
关键检测场景与规则示例
| 场景 |
主要线索 |
建议检测 |
处置建议 |
| 暴力登录/SSH 爆破 |
/var/log/secure 中 Failed password、Invalid user |
同一来源 IP 在短时间内多次失败;配合 fail2ban 自动封禁 |
封禁 IP、强制重置口令、审计 sudo 使用 |
| Web 攻击探测 |
Nginx/应用访问日志中异常 404/403、高频探测路径、可疑 UA |
高频访问不存在资源、集中扫描常见后台路径、非常见 UA/爬虫特征 |
限流/封禁、返回蜜罐页、告警 |
| 注入与 XSS 特征 |
JS 前端捕获到含 、onerror=、UNION SELECT、…/ 等输入 |
前端 JS 标记 + 网关/应用 WAF 规则命中 |
拦截请求、记录完整请求上下文、账户风控 |
| 权限与关键文件变更 |
/var/log/audit/audit.log(auditd)文件/命令审计事件 |
关键文件(如 /etc/passwd、/etc/shadow)被修改;sudo 提权 |
立即核查变更、回滚、下线受影响主机 |
| 异常用户行为 |
JS 日志中短时间大量操作、越权访问敏感接口 |
账号在异常时间段/地点集中操作、权限突变 |
强制二次验证、临时冻结、会话撤销 |
| 可疑外连与横向移动 |
系统/网络监控发现异常 DNS/HTTP 外连 |
与已知恶意域/地址通信、非常规端口外连 |
阻断出站、取证抓包、隔离主机 |
| 以上规则依赖对 /var/log/secure、/var/log/messages、/var/log/audit/audit.log 的解析与与前端 JS 日志的关联;可用 ELK/Splunk 建立规则与可视化面板,或用 fail2ban/OSSEC 做自动化处置。 |
|
|
|
快速落地步骤
- 前端埋点与最小化字段
- 统一记录:timestamp、level、event、path、method、status、ip、ua、uid/sid、msg;避免记录敏感信息(密码、密钥、完整卡号)。
- 服务端接收与落盘
- Nginx 接收并写入 /var/log/nginx/access.log 与 error.log;Node.js 使用 Winston/Bunyan 结构化输出;按日切分并限制单文件大小。
- 系统侧日志加固
- 启用并验证 auditd 规则(如监控 /etc/passwd、/etc/shadow、sudo 命令);确保 journalctl 与 rsyslog 正常工作,必要时配置远程日志转发。
- 集中化与告警
- 部署 ELK(Filebeat/Logstash → Elasticsearch → Kibana)或对接 Splunk;为关键规则设置阈值与通知(邮件/企业微信/钉钉/Slack)。
- 自动化响应
- 配置 fail2ban 基于日志触发封禁;用 OSSEC/Wazuh 执行命令(如封禁、告警、收集取证信息);高危事件触发工单与隔离流程。
- 运行与维护
- 配置 logrotate 管理日志生命周期;定期审计规则有效性、更新威胁特征、演练应急响应。
注意事项
- 日志合规与隐私:仅收集必要字段,设置合理保留周期,对敏感字段脱敏与最小化;满足 GDPR/HIPAA/PCI DSS 等合规要求。
- 时钟同步:全链路使用 NTP 统一时间,确保日志关联准确。
- 采样与降噪:对高频事件做采样或聚合,避免告警风暴;为误报设置白名单与抑制规则。
- 可靠性:前端异步上报需容错与重试;服务端落盘与传输链路需持久化与监控,防止丢日志。
- 安全加固:日志服务与存储需最小权限访问、启用 TLS 传输、防篡改与完整性校验。