渗透测试分为几类
渗透测试的渗透分类,最直接的测试分法就是看测试人员手里掌握多少目标信息。黑盒、渗透白盒、测试灰盒,渗透这三种叫法在行业里用了很多年,测试基本能覆盖大多数项目场景。渗透
黑盒测试最像真实攻击。测试测试人员拿到的渗透只有一个域名或者一个IP,剩下的测试全靠自己摸。去年我参与过一个电商平台的渗透授权测试,客户只给了一个主站地址,测试连用了什么技术栈都没说。渗透第一步就是测试信息收集,用子域名爆破工具跑了一遍,渗透发现几个测试环境没关外网访问,其中一个还挂着默认口令。这种路径在黑盒测试里很常见,靠的就是对外部暴露面的逐步探测。缺点是耗时,而且如果目标防护到位,可能几天都找不到有效入口。客户如果预算有限、时间紧,黑盒往往不是最优选。
白盒测试反过来,测试人员能拿到源码、架构图、甚至数据库账号。这种模式效率高得多。我见过一个金融类项目,客户直接给了Git仓库权限和一套测试环境的部署文档。半天时间就能定位到几个明显的越权漏洞,因为代码里权限校验逻辑写得很随意,有些接口干脆没做校验。白盒测试的强项在于能深入业务逻辑层,发现那些从外部很难触发的漏洞,比如条件竞争、反序列化链。但问题也明显——它模拟不了真实攻击者的视角。内部人员能看到的代码,外部攻击者看不到,所以白盒测出来的漏洞,优先级需要重新评估。
灰盒测试介于两者之间。客户会给一部分信息,比如一个低权限账号、或者部分API文档。这种模式在Web应用测试里用得最多。举个例子,测试一个SaaS后台,客户给了一个普通用户账号。登录进去之后,可以顺着这个账号的权限边界去试探横向和纵向越权。因为有了合法身份,很多从前端看不到的接口和参数就能直接接触。灰盒的性价比通常最高,既不像黑盒那样盲目,也不像白盒那样脱离真实攻击场景。
除了按信息量分,还有一种常见的分类维度是按测试目标。主机层、网络层、应用层,这三个层面的测试方法和工具差别很大。主机层渗透测试关注操作系统本身的漏洞,比如没打补丁的Windows Server、配置错误的SSH服务。网络层更侧重协议和架构,比如VLAN跳跃、ARP欺骗、防火墙规则绕过。应用层就是Web和移动端那些事,SQL注入、XSS、逻辑漏洞。实际项目里,这三层往往交叉进行。一个外网Web漏洞可能只是跳板,最终目标是打进内网主机。
另外还有一种分法,按是否告知防御方来区分。对抗性测试和常规测试。对抗性测试会提前通知蓝队,甚至设定规则,比如禁止使用某些攻击手法。这种更接近实战演练,目的是检验检测和响应能力。常规测试则是不打招呼,直接模拟真实攻击者的行为。我个人的经验是,对抗性测试对蓝队成长帮助更大,但组织成本高,需要双方都有一定成熟度。
分类本身不是目的。选哪种测试方式,取决于客户想解决什么问题。想摸清外部暴露面,黑盒加应用层测试比较合适。想快速修复代码里的隐患,白盒更直接。想检验安全团队的响应能力,那就上对抗性测试。没有哪种分类是万能的,关键是测试目标和测试方法要对齐。我见过一些项目,客户花了钱做黑盒,结果测出来的都是低危信息泄露,真正危险的内部逻辑漏洞一个没碰着。这就是分类没选对,钱花在了刀刃的反面。