温馨提示×

Ubuntu JS日志中如何识别潜在的安全威胁

小樊
43
2025-12-23 19:03:40
栏目: 编程语言

Ubuntu JS日志中识别潜在安全威胁的实用指南

一 日志来源与定位

  • 前端与 Node.js 应用日志:检查应用自身输出的 console.error/info、未捕获异常、启动与关闭日志,以及 Node.js 运行日志(如 PM2 日志、Docker 容器日志)。
  • Web 服务器访问与错误日志:
    • Nginx/var/log/nginx/access.log、/var/log/nginx/error.log
    • Apache/var/log/apache2/access.log、/var/log/apache2/error.log
  • 系统与认证日志(用于交叉验证 JS 层异常):/var/log/auth.log、/var/log/syslog、/var/log/kern.log
  • 数据库与应用后端日志:如 /var/log/mysql/error.log 等。
  • 建议统一接入 rsyslog 或使用 logrotate 做日志轮转,避免磁盘被占满并便于集中分析。

二 快速排查命令与示例

  • 高频错误与可疑关键字:
    • grep -i “error|failed|unauthorized|attack” /var/log/syslog
    • 在 Web 错误日志中排查异常:grep -E “404|500|403” /var/log/nginx/error.log
  • 认证异常(与 JS 层 401/403 相互印证):
    • grep “Failed password” /var/log/auth.log
    • grep “Accepted” /var/log/auth.log
  • 暴力破解与扫描特征:
    • 统计失败来源 IP:cat /var/log/auth.log | grep ‘Invalid’ | awk ‘{print $8}’ | sort | uniq -c | sort -nr | head
  • 可疑 URL 与参数(SQL 注入、路径遍历、XSS 线索):
    • grep -E “.php?.*(union|select|insert|update|delete|drop|alter|create|exec|script|alert|onerror|onload)” /var/log/nginx/access.log
    • grep -E “../|..\|%2e%2e|%252e%252e” /var/log/nginx/access.log
  • 异常 UA 与爬虫:
    • grep -i “curl|wget|python-requests|scanner|bot” /var/log/nginx/access.log | sort | uniq -c | sort -nr
  • 突发流量与 DoS 迹象:
    • 统计某 IP 的请求数:awk ‘{print $1}’ /var/log/nginx/access.log | sort | uniq -c | sort -nr | head
  • 将 JS 应用日志与系统日志关联:
    • 例如用 grep/awk/sedELK/SplunkrequestId/traceId 跨日志串联,验证异常是否从前端到后端一致出现。

三 常见攻击特征与日志表现

攻击类型 常见日志特征 排查要点
暴力破解 SSH /var/log/auth.log 出现大量 “Failed password”,随后出现 “Accepted” 关注来源 IP、用户名、时间窗口与频率
Web 扫描与探测 大量 404/403,URL 含 /admin、/wp-login.php、/.env、/phpmyadmin 结合 UA 与 referer 判断自动化工具
SQL 注入 参数含 union select、sleep、benchmark、’ or 1=1 查看后端错误日志是否出现语法错误或延时
XSS 与恶意载荷 参数或 UA 含