上个月,渗透一家年营收过亿的测试电商平台在渗透测试报告里发现了十七个漏洞,其中三个可以直接拿到服务器权限。服务甲方技术总监盯着报告看了半天,渗透说了一句:你们要是测试黑客就好了,省得我花钱请你们来证明我的服务系统是纸糊的。这话听着像玩笑,渗透但真实情况比这更讽刺——他们之前刚通过等保三级测评。测试
渗透测试的服务本质,就是渗透雇一群“合法黑客”来攻击你自己的系统。不是测试扫描器跑一遍输出个PDF那种,是服务真刀真枪地尝试绕过WAF、利用逻辑漏洞、渗透甚至物理渗透。测试我见过最狠的服务测试团队,直接蹲在客户办公楼外的垃圾桶旁边翻废弃文档,就为了找写着密码的便利贴。结果还真让他们找到了。
很多人觉得渗透测试就是“漏洞扫描的高级版”,这误会大了。扫描器只能告诉你哪里可能有门没锁,渗透测试是直接试着把门踹开,看看门后面到底藏着什么。去年有个金融机构找我做测试,他们的核心交易系统装了五层防火墙,扫描报告显示“低风险”。但我们的测试人员发现,系统里有个不起眼的API接口,居然没做速率限制——用脚本暴力枚举了四个小时,硬生生把另一个用户的会话令牌给撞出来了。这要是真被攻击者拿到,转账权限就完全沦陷。
真正的渗透测试报告,读起来像侦探小说。每个漏洞都要写清楚“怎么进来的”“能做什么”“怎么修复”。但很多企业拿到报告只看最后的“风险等级”,然后压着修复排期。我见过最离谱的案例,一个漏洞从发现到修复拖了八个月,期间系统被真实攻击者用同样手法入侵了三次。测试团队都快成驻场运维了。
做这行越久,越觉得渗透测试不是技术活,是人性活。百分之六十的突破口都来自同一个地方——人的惯性。测试人员最常干的事,是拿着默认密码表挨个试,什么admin/admin、test/test123。别笑,去年某市政府门户网站就是这么被拿下来的。运维人员图省事,把后台密码设成了公司名的拼音加123,三个月没改。
有些甲方会问:你们能不能保证测出所有漏洞?说实话,不能。任何测试都有边界,就像你请保安来巡逻,他不可能保证每个角落都绝对安全。但好的渗透测试能告诉你最容易被攻击的路径在哪,以及被攻破后最坏的情况是什么。这比买一堆安全设备堆在那儿有用得多。
最后说个让人哭笑不得的事。有次测试完写报告,客户非要我们把“漏洞”改成“风险点”,说这样上报给董事会好看点。我们改了,但附了一行小字:风险点不修,明年就变成事故点。后来他们系统真被勒索病毒打穿了,那次的报告,是警察来调的。