当前位置:首页 > 娱乐

百度WebShell检测

去年秋天,百度一个做企业安全的检测朋友给我看了张截图。百度搜索资源平台的百度后台里,某个政府网站被标了红,检测提示"检测到WebShell"。百度他当时就懵了——这站用的检测是某开源CMS,运维外包给第三方,百度连日志都大半年没看过。检测更让他意外的百度是,发现这个后门的检测不是他们自己买的WAF,也不是百度什么商业扫描器,而是检测百度。

这事让我开始认真琢磨百度的百度WebShell检测到底是怎么回事。

爬虫顺带干的检测活

百度的安全能力有个天然优势:它每天都在爬全网。普通安全厂商要等客户装agent、百度配镜像流量,百度不用。蜘蛛抓取页面的时候,顺手就能分析响应内容。WebShell的页面特征其实挺明显——要么是极短的空白页带特定参数,要么是异常的文件操作回显。百度在爬虫链路里嵌了检测逻辑,等于把全网当成了蜜罐。

但爬虫视角有盲区。它只能看到HTTP响应,看不到服务器文件系统。所以百度实际用的是多维度交叉:请求特征匹配 + 响应内容分析 + 历史行为基线。比如某个URL昨天还返回正常HTML,今天突然变成一串乱码或者空白,同时POST请求频率飙升,这就触发告警了。

误报这事绕不开

我拿自己的几个站做过测试。一个WordPress站点装了某安全插件,插件会生成类似WebShell的验证文件,百度确实报了。还有次是PHP的eval()被正常业务代码用到,也触发了规则。误报率不算低,尤其对中小站长来说,收到告警点进去一看是误判,几次之后就不当回事了。

百度的处理方式是给站长留了申诉入口。搜索资源平台里能提交复核,人工确认后解除标记。但流程走下来通常要一两天,这期间站点的搜索展现可能已经受影响。对流量敏感的站来说,这个代价不小。

真正有价值的是趋势数据

单个站点的告警意义有限,但百度手里有全网数据。2023年某次大规模CMS漏洞爆发时,百度比多数安全厂商早了两天发现异常——因为同一套WebShell在几千个站上同时出现,爬虫返回的特征高度一致。这种群体视角是百度做安全检测的独特筹码。

不过百度没把这套能力产品化。它不卖安全服务,检测结果只用于搜索生态治理。对站长来说,这更像是个"被动防御"——你不知道什么时候会被扫到,也不知道规则怎么定的。黑盒感很强。

我的判断

百度WebShell检测本质上是个"附带产物"。它的核心目标不是帮站长做安全,而是防止被黑站点污染搜索结果。这个定位决定了它的检测逻辑偏向"宁可错杀",也决定了它不会投入太多资源做误报优化和用户沟通。

对普通站长,我的建议很直接:别把百度告警当唯一信号。自己装个轻量级文件监控,定期比对核心目录的哈希值,比等百度通知靠谱得多。百度的检测可以当个补充——毕竟它能看到你看不到的全网态势。但把安全押在一个不透明的黑盒上,风险太大。

那个政府网站后来查清楚了:外包运维图省事,留了个老版本的上传接口没关。WebShell是被人批量扫进去的。百度比他们自己早发现了一个月。这事讽刺的地方在于——最该管安全的人没管,一个搜索引擎替他们兜了底。

分享到: