3 第一层安全性:保护Web应用
本章内容包括
■在CI中对应用进行自动化安全测试
■识别并防正常见的Web应用攻击
■Web网站的身份验证技术
■及时更新Web应用及它们的依赖
我们在第2章中部署了发票应用,这是一个管理发票的小型Web应用。我们集中精力搭建了DevOps流水线,不过完全忽略了其安全性。这一章我们将回归到应用本身,专注于保护应用。这里我们关心的是应用本身,而我们会在后续章节中讨论基础设施和CI/CD流水线的安全性。
Web应用安全(WebAppSec,Web Application Security)在信息安全领域有着自己的独特性。WebAppSec聚焦于识别出Web应用(包括网站和API)和Web浏览器中的漏洞,并定义控制来保护它们。
WebAppSec的专家们花费了整个职业生涯将其精益求精。这一章的篇幅只能概要地介绍这个领域,所以我们会重点关注那些能将发票应用提升到可靠安全级别的基本控制,而对于那些超出本章范围的内容我们会给你一些指引。关于这个主题,你可以找到很多不错的资源。你应该密切关注下面这份简短的清单:
•OWASP(链接3.1)有许多关于保护Web应用的优秀资源。每隔几年,OWASP还会发布一份排名在前十的Web应用漏洞清单,这是一个能够提升组织安全意识的好工具(链接3.2)。
•Dafydd Stuttard和Marcus Pinto所著的 The Web Application Hacker’s Handbook:Finding and Exploiting Security Flaws(Wiley出版社于2011年出版)及Michal Zalewski所著的 The Tangled Web:A Guide to Securing Modern Web Applications(No Starch Press出版社于2011年出版)是两部关于Web应用攻击和保护的精彩著作。
•Mozilla开发者网络(MDN,Mozilla Developer Network,链接3.3)是互联网上关于Web开发技术、JavaScript及浏览器安全的最好信息来源之一(当然这份私心来自我和Mozilla的关系,但是MDN真的是非常棒的资源)。
在这一章里,你将为发票应用增加一层WebAppSec。我将首先介绍一种自动测试Web应用安全性的方法:在CI流水线中使用OWASP Zed Attack Proxy(ZAP)扫描器。在本章的第2部分你将学习如何防范ZAP发现的这些问题。接下来,我们将讨论身份验证技术,以保护对发票应用提供的数据的访问。最后,我们将介绍及时更新应用及其依赖的技术,作为本章内容的结束。