游客发表
凌晨两点十七分,应急响手机在床头柜上震了三下。应急响我摸黑抓起来,应急响屏幕上是应急响运维老周发来的消息:“核心交换机CPU飙到98%,业务侧开始报503了。应急响”没有“在吗”,应急响没有“抱歉打扰”,应急响干这行的应急响人都知道,这个点发消息只意味着一件事——出事了。应急响
我套上外套出门。应急响路上用手机连了VPN,应急响先看监控大盘。应急响流量曲线在半小时前突然拉成一条陡峭的应急响直线,像心电图室颤。应急响不是应急响缓慢爬升,是瞬间跳变。这种形态通常指向两种可能:要么有人把测试环境接进了生产网,要么被打穿了。
到公司时老周已经在了,屏幕光映着他发青的眼圈。他指着防火墙日志说:“你看这里,四十七个不同IP,全是境外,请求路径清一色是`/api/v1/user/export`。”那个接口是上个月新上的数据导出功能,当时评审会上我提过一句“要不要加频率限制”,后来排期紧,搁置了。
没时间后悔。我让老周先把那个接口的流量全量镜像到分析机,同时在WAF上加了一条临时规则——只放行公司出口IP的请求。业务先恢复,查案的事后面再说。这是应急响应的第一条铁律:止血优先于追凶。
三分钟后大盘流量回落,503消失。老周松了口气,但我没松。因为镜像下来的流量里,我看到了有意思的东西。攻击载荷里有一段Base64编码的字符串,解出来是个内网地址:`10.0.3.47:8080`。那是我们内部CI/CD的跳板机。
这意味着什么?意味着攻击者已经进来了,而且知道我们的内网结构。那个导出接口只是他们用来确认“哪些数据值得偷”的探针。真正的动作,可能早就在跳板机上开始了。
我叫醒了安全组的小陈,让他查跳板机的登录记录。十五分钟后他回消息:“三天前有一个来自VPN账号`zhang.wei`的登录,但张伟本人说他那周在休假,没连过VPN。”账号被盗了。再往下查,张伟的VPN密码去年在某个第三方论坛泄露过,他自己可能都忘了。
接下来是标准动作:冻结账号、重置所有特权凭据、排查跳板机上的操作痕迹。攻击者很干净,只留了一个定时任务,每六小时向那个导出接口发一次探测请求,看我们有没有把限制去掉。典型的“蹲守”策略——等你松懈。
天亮的时候,事情基本收拢了。没有数据泄露的实锤,因为攻击者还没来得及真正导出数据就被我们掐断了。但这不是胜利,是侥幸。那个接口没有频率限制,VPN账号没有强制MFA,跳板机的操作日志只保留七天——随便哪一条做好了,都不至于让人摸到内网来。
我坐在工位上吃冷掉的包子,想起去年看过的某份报告里写:“平均而言,攻击者从初始入侵到被发现的时间是204天。”我们这次不到三天就发现了,靠的不是什么高级威胁检测系统,是老周半夜起来上厕所时习惯性看了一眼手机告警。
应急响应这件事,工具和流程当然重要。但真正起作用的,往往是某个人的警觉,加上一点点运气。而你能做的,就是在运气来之前,把那些“当时觉得不重要”的漏洞一个个堵上。比如加个频率限制,比如强制MFA,比如把日志保留期从七天改成九十天。
这些事不酷,也不出彩。但凌晨两点十七分的那条消息,最好还是少来几条。
友情链接