用 Webgoat 撬动地球,看安全测试的引路石!
测试工程师是很多人迈进软件行业的起点。从负责很小的局部到把握整个产品的质量,每个人花费的时间长短不一——从功能到性能、可用性到容错性、从兼容性到扩展性、稳定性到健壮性……方方面面逐渐做广做深。
不过,大家逐渐发现,质量这条路的上升空间有层天花板,如果仅限于上面列举的内容但不够深入,固守着手工或半自动测试,则很难突破。很多处于这种状态的人会选择转型,去做产品经理、质量管理、配置管理等方向,甚至去做开发工作,以期获得更大的升职加薪空间。其实,测试的所谓出路未必,也绝不止上面种种,例如我在很多论坛上见到的各路性能优化大师们,在性能测试的方向上做得足够精深,是很受青睐和赏识的,收入自然也是丰厚的。而另一个方向,也是我今天要重点介绍的,则是安全测试。
如果说性能是伴随着互联网起步和电商等在线业务的爆发而崛起的刚性需求,那么安全则是在线业务成熟并进化路上欠下的最大债务,亟待解决。每天都有各式各样的网络欺诈、诱骗、盗窃,安全的互联网生活难道不应该成为每个网民的最低需求么?因此,市场决定了安全测试是一片蓝海,大有前途。
相信很多测试工程师和我有过同样的迷茫,想做自动化、想做性能、想做安全……但是入道无门。一方面企业在安全测试方面投入较少,除非进入圈内的企业,否则难以找到学习和积累的机会;另一方面可能是感觉安全测试有一定门槛,身边又没有资深的人给予指点,在繁重的测试工作压力下作罢。我时常庆幸这个时代入行的人,因为这个时代知识无所不在,只要利用好两样东西——一个是网络,而搜索引擎就是最好的导师;另一个则是圈子,多在业余参加论坛活动和技术分享会议,会很容易结识圈内的朋友,而这些技术大拿是乐于分享他们的经验和学习技巧的。
本人有幸加入了一款安全产品的初创团队,开始了安全测试的学习和摸索,正是源自一次技术分享活动。这个团队聘请了数位圈内资深的安全专家做顾问,在他们的指点下,我先了解了简单的网络攻防的概念和 OWASP 组织收集并整理的 TOP 10 安全漏洞,并复习了 Http 协议,以便于理解各种漏洞和攻击的原理。接下来,我便认识了一个词—— WebGoat。
这是一款由 OWASP 组织研发的开源安全测试和教学 web 应用,顾名思义,她包含所有最重要的安全漏洞,如 SQL 注入和 XSS 跨站脚本攻击等,每个漏洞类型作为一堂课程免费提供给所有人学习、尝试,如代罪羔羊一样任由人们折腾。她还提供提示和解决方案,以帮助同学们理解并收获成功的喜悦。下图就是 Webgoat 的主界面。
可以看到,左侧是课程的列表,以安全漏洞的首字母排序;右侧是对应的课程内容,包括:
- 对攻击的描述和对漏洞成因的分析
- 对漏洞的影响和后果的分析
- 对漏洞的防护方式
- 一个可以尝试的带漏洞的应用环境,攻击的目标说明,提示、最终解决方案以及 Java 源码。
下图是成功达成攻击目的后的课程页面:
看到这个形象且略带刺激的画面,你是否开始对直觉中冰冷黑暗的安全测试有了兴趣呢?通过这样的学习和尝试,有基础的测试人员可以很快掌握基本的渗透测试手段,以作为进一步学习的基础。
需要注意的是,使用 WebGoat 学习有以下要求:
- WebGoat 暂时似乎只有英文版,可见软件这一行缺不了基本的语言能力的;
- 部分课程需要使用源码自己编译再部署才能学习,这要求会基本的编译;
- 相当一部分课程需要使用 http 代理工具配合完成,需要对代理工具的原理有基本的理解,并且熟悉浏览器的代理配置;
- 由于很多漏洞是真对数据的窃取和篡改,所以要具备基础的数据库知识;
此外,利用好浏览器提供的 debug 工具也是提高学习效率的捷径。如在 Chrome 里打开开发者工具抓取网络请求和响应并分析其请求 header 和 body,可以更真实地看到网络应用是如何被攻击的。
说到这里,不能不提一下我们所做的安全产品—— OneRASP 。或许你们想象不到,这款产品在我学习使用 WebGoat 的过程中还发挥了不小的作用呢!RASP 即运行时应用自我保护,属于主动安全防护的概念,理解起来或许比较抽象。那么,到底 OneRASP 能怎样帮到学习安全测试的我们呢?
原来,WebGoat 固然提供了每种漏洞的攻击方法,并把效果展现了出来,但是攻击发生的具体位置还是看不到的。如前面的示例,数字类型的 SQL 注入可以使所有城市的天气信息一览无遗,那么具体是在源码的什么位置泄漏出去的呢?WebGoat 无法告诉我们,但是 OneRASP 可以——因为我们开发的安全探针可以植入 WebGoat 所在的容器 Tomcat,并在恶意请求访问数据库时发现并上报到可视化的 Web 控制台,使得攻击的手段和位置信息也一览无遗!如下图所示:
可见,OneRASP可以帮助我们理解攻击发生时的很多细节,并且可以定位到源代码的具体文件和具体行上。当然,这款产品的真正目的是帮助企业在不必立刻修复漏洞的情况下实现安全生产,用在学习上则是有点大材小用了,但毕竟锦上添花,何乐不为呢?
本文系 OneASP 质量架构工程师王新泉原创文章。如今,多样化的攻击手段层出不穷,传统安全解决方案越来越难以应对网络安全攻击。OneRASP 实时应用自我保护技术,可以为软件产品提供精准的实时保护,使其免受漏洞所累。想阅读更多技术文章,请访问 OneAPM 官方技术博客
本文转自 OneAPM 官方博客