您的位置:首页 >Ubuntu JS日志中如何识别潜在的安全威胁
发布于2026-05-02 阅读(0)
扫一扫,手机访问

日志排查,听起来像是大海捞针?其实不然。只要你知道去哪里看、看什么,那些隐藏在日志行间的安全威胁就会自己“跳”出来。这份指南,就是帮你快速定位并解读这些关键信号。
排查的第一步,是搞清楚日志都藏在哪儿。不同的日志,讲述着系统不同层面的故事。
console.error或console.info信息、未捕获的异常堆栈、以及服务启动关闭的记录。如果应用通过PM2管理或在Docker容器中运行,别忘了检查对应的PM2日志和容器标准输出。/var/log/nginx/access.log(访问记录)和 /var/log/nginx/error.log(错误信息)。/var/log/apache2/access.log 和 /var/log/apache2/error.log。/var/log/auth.log(认证相关)、/var/log/syslog(系统综合日志)和 /var/log/kern.log(内核日志)。/var/log/mysql/error.log。当JS应用报数据库连接错误或查询异常时,这里能找到根本原因。logrotate进行日志轮转,或者将日志统一接入rsyslog进行集中管理。知道了日志位置,接下来就是用一些“组合拳”命令,快速过滤出可疑信息。记住,关联分析往往比单点查看更有力。
grep -i “error|failed|unauthorized|attack” /var/log/sysloggrep -E “404|500|403” /var/log/nginx/error.loggrep “Failed password” /var/log/auth.loggrep “Accepted” /var/log/auth.logcat /var/log/auth.log | grep ‘Invalid’ | awk ‘{print $8}’ | sort | uniq -c | sort -nr | headgrep -E “.php?.*(union|select|insert|update|delete|drop|alter|create|exec|script|alert|onerror|onload)” /var/log/nginx/access.loggrep -E “../|..\|%2e%2e|%252e%252e” /var/log/nginx/access.loggrep -i “curl|wget|python-requests|scanner|bot” /var/log/nginx/access.log | sort | uniq -c | sort -nrawk ‘{print $1}’ /var/log/nginx/access.log | sort | uniq -c | sort -nr | headgrep、awk、sed,或者更专业的ELK、Splunk工具,通过requestId、traceId等唯一标识,把一次用户请求从前端JS错误到后端API调用再到数据库查询的完整链路日志串联起来,能极大提升问题定位的准确性。知道攻击长什么样,才能更快地发现它。下表梳理了几种常见攻击在日志中的“指纹”。
| 攻击类型 | 常见日志特征 | 排查要点 |
|---|---|---|
| 暴力破解 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 含 |