现如今,基于云计算的应用已经被广泛使用并保持着一个惊人的增长速度。而由于云应用是通过互联网访问,且无论何时何地,任何人都可以对其进行访问。因此,这一应用的安全性显得十分重要。这也是创建和管理云应用的企业必须作出保证——客户所信赖的这一应用无论哪一层的基础架构都必须安全——的原因所在。
试想,假如谷歌的Gmail也被黑客入侵,客户的所有邮件内容都被窃取,那会造成怎样的后果?谷歌将名誉扫地,而客户也会放弃谷歌转而投向其他的电邮企业。客户、资金将遭到无法估量的大损失。而相反的,倘若谷歌在安全检查时就发现了漏洞,然后迅速将其修复,阻止了黑客的入侵,那公众又会持一个什么样的态度呢?这只是一个很戏剧性的例子,但是其实现实中每天都在发生这样的情况。因此我们可以这么说:企业必须及时地采取有效措施,来预防安全漏洞,不要等到被攻击后才来想办法。
在本文中,我将讨论三种不同的策略,企业可以用这三种策略来最大限度地提高基于云的应用的安全性,预防可怕的安全漏洞。
发现并修复安全漏洞
确保基于云的应用的安全性,第一种方法是,尽可能多地去发现并处理所有可能的漏洞。 许多技术可以用来发现应用中的安全漏洞,如手动的或自动的源代码审查 ,污点分析,网络扫描, 模糊测试 ,故障注入或者符号执行。 然而,要想找出Web应用中的软件漏洞,并不是所有这些技术都同样适用。 对于基于云的应用来说,如操作系统或者虚拟机管理程序 ,则要考虑应用本身的漏洞以及较低层的漏洞。 因此,最好采用渗透测试服务来检查应用,并且针对发现的所有漏洞,做一份安全报告。
一定要记住:即使经过了安全审查,也有可能仍然存在零日攻击漏洞。 不过,审查过程可以消除最为关键的漏洞。
避免安全漏洞被成功利用
要想最大限度地提高云应用的安全性,第二个策略是:不处理新发现的应用漏洞,而是预防现有的漏洞被利用。 有多种技术和工具,可以预防漏洞被成功利用,包括:
• 防火墙 -防火墙可以用来阻止访问某些DMZ 边界的端口,并成功地阻止攻击者通过网络或者DMZ访问易受攻击的应用。
• 入侵检测 (IDS)/ 入侵防御 (IPS)系统 -通过使用IDS / IPS,企业可以在攻击有机会到达目标应用之前,找到已知的攻击模式并且阻止攻击。
• Web应用防火墙(WAF) -WAF可以用来查找应用层的恶意模式。 可以检测到漏洞,如SQL注入 ,跨站点脚本和路径遍历。 有两种类型的WAF软件方案可供选择:黑名单或者白名单。 黑名单WAF只能拦截已知的恶意请求,而白名单WAF默认拦截所有可疑的请求。 当使用黑名单时,很容易重新建立请求,因此,就算不出现在黑名单中,该请求也绝对不会绕过白名单。 尽管使用白名单更加安全,但是需要更多的时间来完成设置,因为必须手动将所有有效的请求编入白名单中。 如果组织愿意花费时间建立WAF,企业的安全性可能会提高。运行Nginx Web服务器的企业应该考虑开源Naxsi Web应用防火墙,使用白名单来保护应用。
• 内容分发网络(CDN)——CDN使用域名系统 (DNS)将内容分发到整个互联网的多个数据中心,使网页加载速度更快。 当用户发送DNS请求时,CDN返回一个最接近于用户位置的IP。 这不仅会使网页的加载速度更快,也可以使系统免受拒绝服务的攻击。 通常情况下,CDN还可以开启其他保护机制,如WAF,电子邮件保护,监测正常运行时间和性能,谷歌Analytics(分析)。
• 认证——应尽可能采用双因素身份验证机制。只使用用户名/密码组合登录到云应用, 对攻击者来说这是一个巨大漏洞,因为,通过社会工程攻击就可以收集到用户名/密码等信息。 另外,攻击者也可以通过猜测或者暴力破解密码。 单点登录不但可以提高效率,还能保证所有用户都能适当访问云应用,同时保证安全性。
控制漏洞被成功利用所造成的损失
提高云应用安全性,最后一种方案还包括:攻击者发现安全漏洞后绕过保护机制,进而利用漏洞访问系统,控制由此造成的损失。 有多个CSP方案,包括:
• 虚拟化 。 应用被攻破,其配套的基础设施可能遭受损失,尽管通过控制这种损失可以提高安全性,但是,在虚拟化环境中运行应用,意味着每个应用都要运行一种操作系统 – 这完全是浪费资源。 这就是为什么容器变得越来越受欢迎。 容器是一种软件组件,其中应用与系统的其余部分隔开,从而不需要完全成熟的虚拟化层。比较 流行的容器包括Linux容器(LXC)或者Docker。
• 沙盒。 即使黑客能够访问后端系统,但是应用的任何攻击都将被限制在沙箱环境下。 因此,攻击者只有绕过沙盒才能访问操作系统。 有几种不同的可利用的沙箱环境,包括LXC和Docker。
• 加密 。 一些重要的信息,如社会保障号或者信用卡号,必须存储在数据库中进行适当加密。 如果应用支持的话,企业应该将数据发送到已加密的云中。
• 日志监控/ 安全信息和事件监控 (SIEM)。 当发生攻击事件时,最好具备日志系统/ SIEM,从而迅速确定攻击的来源,找出背后的攻击者以及如何缓解这个问题。
• 备份 。 出现任何问题,最好要有适当的备份系统。 因为创建工作备份系统很难 - 并且可能需要相当长一段时间,很多企业选择将备份过程外包。
结论
如果将数据保存在云中,就会带来一些新的安全性挑战 - 幸运的是,有很多方法可以解决这些问题。 与避免漏洞被成功利用相比,找出并修复应用漏洞也同样重要 ,具备适当的防御机制以阻止恶意攻击也很关键。
本文提出了很多方法可以保护基于云的应用,但是,设置需要时间和精力。 正是由于这些约束条件,企业没有及时获得他们想要的投资回报,因此企业往往忽略安全的重要性。 在实践中,往往应用基础设施被破坏之后,安全性才会显得很重要。首先,采取适当的步骤确保应用的安全性,预防漏洞 ——其次,制定漏洞被利用时所采取的措施计划,对云应用环境的成功与安全性、组织的整体活力来说,都至关重要。