去年秋天,明确我帮一家电商平台做渗透测试复盘。人工他们的渗透安全负责人老周拍着桌子说:“我们花了四十万买渗透测试服务,结果报告里全是测试'建议加强输入验证'这种废话。”我翻完那份报告,对象发现问题出在最开始——他们没搞清楚到底要测什么。明确测试对象清单上写着“Web应用、人工API接口、渗透移动端App”,测试就没了。对象这就像让装修队去装修,明确只告诉人家“把房子弄好看点”。人工
明确渗透测试对象,渗透不是测试列个资产清单就完事。老周后来跟我一起重新梳理,对象光一个用户登录功能就拆出七个测试对象:登录页面的表单、短信验证码接口、密码找回流程、第三方OAuth回调、会话管理机制、失败次数限制逻辑、以及登录后的权限跳转。每个对象的测试策略都不一样。表单要测SQL注入和XSS,短信接口要测频率绕过和验证码爆破,OAuth回调要测重定向劫持。这些细节不写清楚,测试人员只能凭经验猜,猜漏了算谁的?
我见过太多团队把“渗透测试对象”等同于“服务器IP列表”。这中间差着十万八千里。IP只是入口,真正的对象是跑在上面的业务逻辑。比如一个电商促销接口,测试对象应该包括:优惠券叠加规则、库存扣减时序、并发请求下的超卖风险、以及退款流程中的金额篡改。这些不是扫端口能扫出来的。有次我让团队测一个“满减”功能,他们用Burp Suite跑了一遍没发现问题。后来我手动构造了一个请求,把优惠券ID换成已过期的,系统居然照样打折。这个漏洞在资产清单里根本看不见,因为它藏在业务规则里。
确定对象的时候,得有人拍板。谁最懂业务?产品经理。谁最懂技术实现?开发。谁最懂攻击面?安全工程师。这三个人得坐在一起,把每个功能模块过一遍。我习惯用一张表格,左边列功能点,右边列“这个功能如果被攻破,最坏结果是什么”。支付功能被攻破,钱没了;用户资料被攻破,数据泄露;后台管理被攻破,整个系统沦陷。按后果严重程度排优先级,资源有限的时候先测高价值的。别想着一次全测完,那是理想主义。
还有一点,测试对象要动态更新。上线新功能、改架构、换第三方组件,都得重新评估。我见过一个案例,开发团队把用户头像上传从本地存储改成了云存储,安全团队不知道。渗透测试的时候还在测本地路径遍历,结果云存储的签名URL有效期设成了永久。这个漏洞漏了三个月,直到有人把头像链接发到外部论坛。所以每次迭代,安全负责人得跟开发对齐:这次改了什么?有没有引入新的接口、新的依赖、新的数据流?
最后说个实在的。明确测试对象这件事,别指望用工具自动化完成。工具能扫出资产,扫不出业务逻辑的边界。你得跟开发聊,跟产品聊,甚至跟客服聊——客服最清楚用户怎么绕过限制。有次客服跟我说,用户经常把收货地址填成“测试地址123”,系统照样发货。我一听就知道地址校验有问题。这种信息,资产扫描器给不了你。渗透测试的对象,说到底是一张业务地图,不是一份服务器清单。画这张地图的人,得懂技术,更得懂业务。
顶: 84踩: 7






评论专区