阿卡迈(Akamai)最近的《互联网安全状况》报告中写道:“绝大部分Web应用攻击都是没有特定目标的大范围漏洞扫描,但少数攻击确实是为入侵特定目标而进行的针对性尝试。无论哪种情况,攻击都非常频繁而‘嘈杂’,难以准确检测,以致许多公司企业都无法保证其Web应用防火墙(WAF)能够有效运行,也没有空余时间来担心其系统可能漏掉了什么。”
公司企业至少应加强代码安全,减少自身层面上的风险。那么,在Web应用方面,公司企业往往又会犯下哪些“致命”的安全错误呢?
1. 依然存在SQL注入漏洞
或许难以置信,但SQL注入漏洞今年12月份就该过20周岁生日了。而即便到了现在,SQL注入依然活跃在大量网站和Web应用中。安全监控公司 Alert Logic 的研究显示,SQL注入攻击长期以来一直都是最普遍的Web攻击方式,占该公司客户报告事件的55%。
2. 不安全的反序列化
反序列化过程就是应用接受序列化对象(序列化是将对象以某种形式编码以便于存储或传输)并将其还原的过程。如果反序列化过程不安全,可能会出现大问题。
即便开发人员知道不能信任用户输入,但序列化对象总被高看一眼,在处理序列化对象的时候安全意识往往会松懈。这种情况下,不安全的反序列化过程不过是发送攻击载荷的另一种方式而已。
Imperva Incapsula 报告称,不安全反序列化攻击近期快速抬头,2017年最后3个月里增长了300%,可能是受非法加密货币挖矿活动的驱动。
其中最大的担忧就是,该不安全性可轻易导致Web应用暴露在远程代码执行的威胁之下——攻击者战术手册中排名第二的攻击技术。开放Web应用安全计划(OWASP)去年将不安全反序列化纳入其十大漏洞列表的原因之一正在于此。不安全反序列化可造成什么后果呢?最鲜明的例子就是Equifax大规模数据泄露事件——据称就是应用不安全反序列化漏洞发起的。
3. 依赖开源组件
说到Equifax数据泄露事件,攻击者利用的反序列化漏洞并没有包含在底层软件代码本身当中,而是存在于嵌入该软件的开源 Apache Struts 组件里。
这就引出了Web应用安全中的另一个致命因素——依赖未打补丁的风险性开源组件。软件开发中开源组件的应用越来越广,开发小组往往并没有跟踪都有哪些组件应用到了哪个位置,更别说跟踪所用版本和组件依赖关系了。
开发人员喜欢根据组件的流行程度来假定其安全性,总觉得越多人用的组件就越安全。然而,组件或库可能会依赖其他库,产生复杂的依赖链。依赖链深层可能会有安全防护很弱的库,甚至可能会出现多种恶意行为,让用了这些组件的软件面临所谓的供应链攻击风险。
4. 未使用内容安全策略阻止跨站脚本
XSS是往带漏洞Web应用中插入恶意代码的常见手段。与其他类型的Web攻击不同,XSS的目标不是Web应用,而是使用Web应用的用户,最终伤害的是公司企业的声誉及其客户。
与SQL注入类似,XSS诞生已久,但仍对公司企业造成伤害和威胁。阻止XSS攻击的最有效方式是使用内容安全策略(CSP)——发展良好但仍未被大多数网站采纳的技术。
Mozilla Observatory 扫描Alexa排名前100万的网站发现,当前仅0.022%的网站使用了CSP。使用CSP但忽略了内联样式表(CSS)的站点则占0.112%,稍微多一点点。
5. 信息泄露
White Hat Security 表示,50%的应用都有某种信息泄露漏洞。Veracode标定的信息泄露漏洞存在比率更高——65.8%。这些漏洞会将有关应用本身、应用所处环境或应用用户的信息暴露给黑客,供黑客进行进一步的攻击。
信息泄露可以是用户名/口令泄露的严重程度,也可以是软件版本号暴露这种“无害”的程度。通常重新配置一下就能堵上漏洞,但缓解过程却往往视泄露数据的种类而定——敏感数据就及时解决,其他数据则不然。
然而,问题在于,即便是软件版本号这种“无害”的泄露,都能给黑客带来攻击上的优势,为其将来的攻击铺平道路。
6. API漏洞
去年Web应用顶级威胁还包括防护不周的API。
API在最近几年很是火爆,开发人员在打造应用的时候经常用到API——作为向其他应用提供服务或数据的一种方式。但不幸的是,这些API在Web应用中实现时往往没怎么考虑过安全问题,而且这些防护不周的API还通常没纳入到传统应用安全测试过程中。
OWASP去年的十大安全漏洞榜单中也因此而将防护不周的API包含了进来。随着越来越多的公司企业将API用作当今开发运维团队钟爱的轻量级快速部署软件间的润滑剂,API漏洞威胁也随之增大了。
Imperva几个月前的一项研究表明,公司企业平均管理着363个API,其中2/3都对公众和合作伙伴开放。
7. 忽视传输层保护
公司企业在部署HTTPS上做得越来越好了,但距离理想程度还有很长一段路要走。
上个月 Mozilla Observatory 扫描的结果显示,Alexa 排名前100万的网站中54.3%已使用HTTPS,比去年夏天的扫描结果高出19%,很不错的进步。但这一结果也反映出,还有接近一半的顶级网站依然落后于时代。
不仅如此,当前状态距离绝大多数站点禁用HTTP也还很远。禁用HTTP通过应用 HTTP 严格传输安全协议(HSTS)实现,Mozilla表示,Alexa 前100万顶级网站中用了HSTS的仅占6%。