近几年,云、API等技术广泛应用,软件开发过程引入敏捷开发和DevOps实现开发运维工作自动化、版本快速迭代。迅速扩张的攻击面也伴随而来,攻击者总是能找到新的攻击面。在此背景下,时隔4年我们再次迎来OWASP Top 10更新。目前发布的release candidate版本,还处于公开征求意见阶段,预计今年7月或8月会正式发布。
OWASP Top 10历史变迁
自2003年发布首个版本以来,OWASP Top 10在14年间发布了6个版本(2003-2004-2007-2010-2013-2017RC1)。其中,历史上最重要一次更新当属2010版本,首次用风险管理看待web安全问题的根源以及管理,具体应用了安全风险评估方法得出Top排名。此后版本均延续了风险评估的方法。而在此之前,则是以漏洞统计方式形成Top排名。以2007为例,计算方法是根据 MITRE Vulnerability Trends for 2006,提取十大web应用安全问题。
从2003发展至2017,历年OWASP Top 10以及对应关系如下表所示。
OWASP Top 10 2017 RC1主要更新
2017 RC1这个版本最主要的更新在于新增两类问题,“A7-攻击防护不足”以及“A10-未受有效保护的API”。另外,考虑到不再有必要区分数据和功能层面的访问控制问题,对“2013-A4-不安全的直接对象引用”与“2013-A7-功能级访问控制缺失”进行了合并,形成了新的“2017-A4-失效的访问控制”。而2010版首次出现的“A10-未验证的重定向与转发”,在2013年保持在A10,发展至今,数据显示该问题并不如预期的普遍、严重性也逐渐降低,因此今年从Top 10中去掉了。
2017 RC1 与2013版本映射关系参见下图。相较2013版本,部分问题的风险因子也有一些变化。以XSS为例,漏洞的可检测性由2013的“容易”降低到“平均”,server端XSS漏洞通过代码分析或者测试会比较容易发现,而客户端的XSS漏洞则非常难以识别。
A7-攻击防护不足
针对这类问题的描述,在此引用OWASP Top 10中文翻译项目组的中文版译作(参见下图)。
需要防护的资产涉及应用以及API,面临的威胁有自动化以及手动攻击,解决措施包括有效的检测和响应能力、以及成熟的漏洞管理和应急响应机制。关于是否需要在今年的Top 10增加此类问题, 各方在Reddit 上展开了激烈的讨论,有人认为这不是脆弱性范畴的问题、而应该是主动防御范畴。也有人担忧会引起误导、夸大防护类产品对于应用安全的作用。
为便于理解,我们试图将web攻击拆解到三个层面,最基础的技术类攻击(如SQL注入、XSS等),这是传统web防护产品最为侧重的部分。我们发现近些年应用业务逻辑层面的攻击、业务欺诈层面的问题,也更为凸显、亟待解决。
回到2017-A7这类风险,从防护的角度,扫描防护、暴力破解防护、IP封禁、自学习白名单是需要考虑的必要措施,这是目前多数WAF产品或多或少已具备的能力。除了OWASP Top 10 2017 RC1中列举的攻击场景,在此延伸出当前危害较大的互联网恶意扫描场景。攻击者在互联网上部署有扫描节点,对全互联网资产进行持续扫描和监控,攻击者可能比企业客户自身掌握的资产和漏洞信息(如心脏滴血漏洞或者Apache Struts 2高危漏洞)更为全面。防护类产品通过应用IP情报,识别互联网上持续扫描的主机IP,进行检测和阻断,提供主动的防御。
另一方面,现实的攻击态势清楚告知我们,并不能过度依赖阻断和防御机制,提升检测和响应能力的必要性不言而喻。如OWASP Top 10中所建议的,基于用户行为的识别分析,“检测是否有合法用户不可能的输入,非典型输入、异常使用模式、重复请求等”,也给予我们较好的启迪。在此,从风险的视角,我们很容易理解并没有“银弹”存在,一个行之有效的方案,现实意义来说需要考虑提升安全分析能力。
关于应急响应和漏洞管理,我们乐于分享今年3月对Struts2-s2-045 (CVE-2017-5638)的应急响应闭环实战过程。漏洞披露后的12小时内,绿盟科技通过各种通道面向客户发送安全预警通告,配套检查建议以及WAF产品自定义策略配置建议,同时通过云端和本地技术资源帮助客户发现漏洞、识别受影响面。24小时内,产品紧急升级包正式发布,客户可以通过官网获取。在后续的一周内,web安全团队持续跟踪事件影响(受攻击网站行业分布、攻击源IP地理分布、攻击时间分布、每IP的攻击目标数等)、是否有绕过检测或者变种出现,并提供相应的防护能力更新。从云端的数据,我们看到不少客户已经在第一时间更新了WAF产品规则,应用“虚拟补丁”,并有效拦截漏洞利用攻击。
A10-未受有效保护的API
这类问题的分析和描述参见下图:
对于传统的API,我们习惯称为Web service,较新的称谓有REST接口、微服务等。使用API的好处在于快速开发、质量、可管理性、易集成等,但API和传统web应用一样易于遭受各类攻击。与传统应用漏洞一样,所有不同类型的注入问题、认证问题、访问控制问题、加密问题、配置问题等等都在API中存在。目前面临的主要挑战在于“API技术特性的广泛性和复杂性让自动化安全测试难以得到有效结果 ”。保护API的关键是全面理解威胁模型,了解所有可用的防御措施 ,确保安全分析和测试涵盖所有的API 。
从检测防护的角度,我们试图用下面这张图作为示例,可以看出通过支持JSON/XML或者更多自定义格式,以防止API的注入等攻击。目前WAF类产品通过web service防护特性具备这类能力。而权限和访问控制问题,则需要在开发阶段从设计、实现、测试等阶段重点考虑。
从来没有银弹!
OWASP Top 10项目对安全问题从威胁和脆弱性进行可能性分析,并结合技术和商业影响的分析,输出目前一致公认、最严重的十类web应用安全风险排名,并提出解决方案建议。Top 10是一个高度提炼的输出,现实的意义在于帮助和指导开发者、安全测试人员、web应用安全管理团队,提高风险意识。其对于安全厂商的产品能力提升也有指导意义。对于web安全风险管理以及企业安全建设,从来没有银弹,建议对照列表(需注意,OWASP历年来一直强调“不要停滞于OWASP Top 10”)结合自身环境、梳理影响自身应用安全的主要风险因素,并采取有重点的保护防范措施,在人员、流程以及技术层面进行提升。
上述对于本次更新浅尝辄止做了解读,希望能抛砖引玉,和业界朋友有更多探讨。
如果您需要了解更多内容,可以
加入QQ群:570982169
直接询问:010-68438880