加入收藏 | 设为首页 | 会员中心 | 我要投稿 站长网 (https://www.022zz.com.cn/)- 图像处理、建站、语音技术、云计算、AI行业应用!
当前位置: 首页 > 服务器 > 安全 > 正文

服务器安全审计:90%高危漏洞藏于日志盲区

发布时间:2026-10-29 11:11:08 所属栏目:安全 来源:DaWei
导读:  我越来越觉得“服务器安全审计:90%高危漏洞藏于日志盲区”是错的——不是比例不准,是靶子打歪了。  去年十一,我们盯死三台核心Web服务器,每台装了四套日志采集器:syslog-ng、rsyslog、journalctl重定向、还有那个叫

  我越来越觉得“服务器安全审计:90%高危漏洞藏于日志盲区”是错的——不是比例不准,是靶子打歪了。


  去年十一,我们盯死三台核心Web服务器,每台装了四套日志采集器:syslog-ng、rsyslog、journalctl重定向、还有那个叫Logstash的Java进程,连docker logs -f都手动挂了两个终端在tmux里轮播。王工说“再加个Fluent Bit试试”,我说“够了”,他点头时嚼着最后一口煎饼果子,葱花粘在右耳垂上,没擦。


  我原以为只要日志收全、解析准、告警阈值拉低,就能把所有可疑行为筛出来——结果十一假期第三天凌晨两点十七分,攻防演练红队从一个没写进任何日志配置的systemd服务单元文件里,启了一个带ptrace绕过机制的内存马。它根本不落盘,不碰/tmp,不调open(),连execve()都用的clone() + ptrace注入。日志里只有两行:systemd[1]: Started nginx-proxy.service. 和 sshd[2843]: Accepted publickey for ops from 10.2.15.7 port 56122 ssh2。就这。那IP地址是我们运维小张自己开的跳板机,他那天晚上十一点半改完ansible剧本,顺手把密钥配对脚本commit到内部GitLab——commit message写着“修了nginx.conf里的空格”,连冒号都没多打一个。


  优胜劣汰?没错。但淘汰的不是漏洞,是审计方式。日志不是漏洞的镜子,是系统呼吸的残影。你对着残影找病灶,不如去摸脉搏——比如看/proc/[pid]/maps有没有rwx段,看seccomp状态是不是全开,看perf_event_paranoid是不是还设成-1。可没人去看。监控平台大屏上跑着17个站的QPS曲线,底下滚动字幕似的刷着“日志采集率99.8%”,红底白字,闪得人眼晕。


  李主任前天还问:“你们日志归档做没做冷热分层?”我答“做了”,其实只是把/var/log/journal按月tar.gz打了个包,存NAS,连校验都没跑过。打包脚本里有一行注释写着“# 2023年七月以后的journal二进制格式变了,但解压脚本没更新”,我忘了删。昨天巡检发现那批包根本打不开,解压报错“File format not recognized”。我让它继续存着,等哪天有空再说。反正也没人查。


  所以别信“90%高危漏洞藏于日志盲区”这种话。盲区不是日志没覆盖到的地方,是日志本身就不该承担这个职能。就像用体温计查阑尾炎——它测得准,但它测错了器官。上周五测试环境崩了,rootkit用的是eBPF程序劫持bpf()系统调用,在kprobe上下文里直接篡改return值。日志里连一条tracepoint记录都没有。而我们的SIEM规则库里,“检测eBPF异常加载”的规则,条件是“匹配字符串‘bpf_load_program’出现在/var/log/messages中”——它永远匹配不到,因为内核根本不会往messages里吐这个。


  赵工在钉钉群里发了个截图:某云厂商的“智能日志威胁分析”产品界面,中间一栏赫然标着“已拦截0条攻击(基于日志语义识别)”。下面小字说明:“需配合Agent采集全量syscall流”。我回了句“你们agent装了吗”,没人接。后来他自己补了一句:“刚装完,发现host上缺libbpf.so.1,yum search半天,最后是从一台三年前的旧镜像里scp过来的。”


  这事我也可能就运气好。上个月我把一台老ESXi主机的ssh banner从OpenSSH_7.4p1改成OpenSSH_9.8p1——纯手改/etc/issue,没动sshd_config,连服务都没重启。就为了应付某次等保扫描。扫描器扫出来“banner泄露版本信息”,打了低危。我乐了。可它真没扫出那台机器上开着的vsphere web client端口(9443),那个服务早被挖矿木马替换了静态页面,但返回头里写着“X-Frame-Options: SAMEORIGIN”,跟原厂一模一样。日志里当然也干净——因为木马自己写了个mini httpd,压根不走apache或者nginx。


文章配图,仅供参考

  所以说90%这个数,要么是凑的,要么是统计口径窄得只算了那些“会打log”的攻击。而真正要命的,是那种打完log还给你主动删掉两行的;是那种先改auditctl规则再动手的;是那种在systemd-journald里把日志级别设成emerg然后专挑debug级事件干的。这些玩意儿,不在盲区里,它们就坐在你审计工具眼皮底下,吃着你的CPU,喝着你的内存,还给你鞠躬——因为journald每秒都在给它记一条“Started user slice of root.”


  我不再让团队做日志覆盖率报表了。上礼拜起,我把每周安全检查表第一项改成:“运行ls -l /proc//maps | grep rwx | wc -l”,第二项是“grep -r 'seccomp' /etc/systemd/system/ | wc -l”,第三项……算了,第三项还没想好。王工问我是不是该换成cgroup v2隔离策略验证,我说你先把这个grep跑通。他嗯了一声,又咬了一口煎饼果子——这次没掉葱花。

(编辑:站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!