Web应用何时成了金融行业的安全噩梦?

  2016年7月25日,第十一届(ISC)²亚太信息安全峰会在泰国曼谷召开。大会第一天的热点主题之一可以总结为:

  “安全从业者们聚众讨论Web开发者”。

  Verizon的2016 DBIR安全报告指出,在2015年造成数据泄露的2260次安全事件中,由Web应用攻击造成的比例显著上升:

2016 DBIR报告截图

  尤其是在金融领域确认造成数据泄露的795件安全事故当中,有82%都是由于Web应用所致(这一比例在2014年为31%)。虽然该报告将该变化的主要原因归结于Dridex僵尸网络的陷落,然而报告也指出Web应用已经成为攻击者们的主要目标之一(尤其集中在金融和零售领域)。

  Web应用为何会越来越多的被攻击者们盯上?

  云安全联盟(CSA)亚太区市场战略总监Anthony Lim认为该趋势与云计算的普及密切相关。由于云计算的普及,各种数据都进入了公网,从而无法对其进行有效的控制。越来越多的数据——尤其是个人隐私以及涉及金钱交易的数据——通过HTTP传输,因此越来越多的重要数据有可能通过HTTP泄露。

  大部分攻击者的策略是广撒网式的尝试。在最新的SDN上他们会尝试找漏洞(比如针对Controller的攻击,即使没有成功入侵,也可能会导致Controller挂掉而带来严重的影响),在老掉牙的操作系统上(比如Windows XP、老版本的Android等)他们也会尝试找漏洞。相比操作系统层面,Web应用更加容易被暴露在攻击者面前,因为它无法受到防火墙的保护(Anthony Lim表示现在市面上的“应用防火墙”跟传统意义上的防火墙并不能算是同一个概念)。

  大部分Web应用都是脆弱的

  在Anthony Lim看来,大部分企业/组织并没有建立起足够坚固的软件安全策略。首先,今天的软件越来越庞大,动辄上千行代码,要检查其中的漏洞原本就越来越困难。其次,大部分开发者并没有接受过安全方面的训练,很多在线上运行的网站甚至连debug功能都没关掉,成了很多攻击者们获取系统信息的渠道。最后,随着“唯快不破”的理念趋于流行,开发者更加没时间检查自己的代码了。

  “看看从2004年到2013年的OWASP Top 10,很多都是那时候就有的错误,今天的开发者还在不停的踩坑。”Anthony Lim举例说,“比如2004年的‘错误处理方法不规范’,在2007年还在重复;‘注入漏洞’,九年来一直名列前茅;还有未验证的输入、未验证的转发等等,这些都是反复出现的。”

  Web应用的“持续安全防护”

  Anthony Lim认为“Web应用必须能够自己保护自己”,防火墙的思路是靠不住的,必须从写代码的开发者入手。现在业内人士已经做了很多努力,比如证书方面有CSA STAR,规范方面有专门针对云计算应用安全的ISO 27017,教育培训方面有CSA和(ISC)²联合推出的CSSLP,还有各种安全规范指南和白皮书等等(如Security in the Skies白皮书)。不过他也坦然说,这些安全规范指南之类的基本上不会有人自觉遵守,需要有更加强制性的手段才能实现好的效果。

  Qualys产品VP Jason Kent则在主题演讲上提出了“用保护服务器的思路保护Web应用”的观点,他认为我们现在在基础架构的持续防护方面要做的相对成熟,因此可以从中借鉴。优秀的基础架构防护基本上可以总结为如下四点:

  1. 对所有的服务器建立完整的档案目录(inventory),定期维护。

  2. 持续的扫描所有的服务器。持续扫描有三个目标:针对每天新出现的已知漏洞进行比对;检查今天新开通的服务是否成为了攻击点;检查是否有用于测试的临时端口或服务忘记关闭。

  3. 明确的补丁策略。谁负责维护系统?谁负责维护应用堆栈?补丁的更新流程是怎样的?如何做打补丁的历史记录?这些策略都需要明确。

  4. 定期检查补丁情况。将及时应用的补丁和未能及时应用的补丁记录在案。

  Web应用运行在服务器OS层面之上,在Web应用和OS层面之间还有一层Web服务器,而Web应用和Web服务器都可能成为攻击者的目标。一套Web应用从开发到上线会经历四个环境:开发环境(Development)、测试环境(Testing)、预备环境(Staging)和生产环境(Production)。攻击者的目标是生产环境,而保护工作必须将四个环境都涵盖在内。如果能够在开发环境移除潜在的问题,这是最有效率的,总之是越早越好。根据“IBM | Ponemon Cost of Data Breach 2016”报告提供的数据,在生产环境发现问题所带来的损失平均来说是在测试环境的14倍。

  操作系统级别的漏洞大约需要30/60天完成补丁的应用和应用后的测试。应用层面的漏洞则需要90/120天来完成从开发环境到生产环境的周期。要想及时发现漏洞,有两个关键的事情要做好,那就是资源档案目录和持续测试。

  1. 应用的档案目录:你的系统中一共有多少个应用?应用由谁开发?开发环境、测试环境、预备环境和生产环境各自在什么位置?资产档案保存在哪里?应用的所有者是谁?这不仅包括你自己开发的应用,还应该把你租用的外部应用考虑在内,比如以SaaS方式提供的客户管理、人力管理或者票据报销管理等服务。

  2. 持续的扫描测试,捉漏洞。目标是100%全面覆盖式的扫描。当然,这意味着必须实现自动化扫描。

  3. 在正确的位置进行修复。如上所述,在生产环境的Web应用或Web服务器中发现的代码漏洞,比如XSS,要从开发环境开始修复。如果是在Web服务器中出现XSS,意味着开发工作需要暂停,直到Web服务器完成补丁修复。原来的Web应用代码在升级后的Web服务器上可能无法正常工作,需要对代码进行相应的调整。

  4. 定期检查补丁情况。将及时应用的补丁和未能及时应用的补丁记录在案。

  赛门铁克亚太和日本区CTO Michael Counsel也强调了持续安全防护的重要性,他认为我们需要用“流程即服务”的方式来实现这一目标,而不是通过把软件藏在家里的on-premise方式来保护,因为on-premise越来越无法满足今天业务的需要了。

  大会第一天其他关注点

  安全人才现状:(ISC)² CEO David Shearer表示安全人才有趋于短缺的趋势,需要吸引更多年轻人加入。女性从业者在安全领域的比例有所上升,尤其是在政府相关业务中更加明显。

  赞助商展示:本次各赞助商展示的demo,大部分都是基于Web界面提供操作入口的产品。On-premise部署仍然是主流,然而多少都有以在线方式提供服务的尝试(区别只在于是打算自己提供服务还是找合作的第三方提供服务)。方向主要涉及设备管理(IBM MaaS360),Web扫描(HP WebInspect、Qualys),APT防护(FireEye),源代码安全检测(HP Fortify),SSH密钥管理以及加密会话审计(SSH Communications Security)等。

热门新闻

最新新闻