云应用安全:预防安全漏洞云和虚拟化

2014-06-03    来源:TechTarget中国    编辑:皮红
目前,基于云的应用被广泛使用,并且以惊人的速度不断增长。 由于基于云的应用可以通过互联网访问,并且任何人,在任何地方都可以访问 – 因此,应用的安全性变得尤为重要。 这

  目前,基于云的应用被广泛使用,并且以惊人的速度不断增长。 由于基于云的应用可以通过互联网访问,并且任何人,在任何地方都可以访问 – 因此,应用的安全性变得尤为重要。 这就是为什么创建和管理基于云的应用的企业必须要保证:客户所信赖的应用基础架构的每一层都是安全的。

  想象一下,如果谷歌的Gmail遭到黑客攻击,黑客能够读取用户邮件的内容,会造成什么样的后果?不仅谷歌的声誉 会受到影响,谷歌的客户也将很快开始寻找其他电子邮件的替代者。 客户、资金不可避免地将大量流失。 假如结果发现:如果检查安全漏洞的话,该黑客所利用的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,从而迅速确定攻击的来源,找出背后的攻击者以及如何缓解这个问题。

  • 备份 。 出现任何问题,最好要有适当的备份系统。 因为创建工作备份系统很难 - 并且可能需要相当长一段时间,很多企业选择将备份过程外包。

  结论

  如果将数据保存在云中,就会带来一些新的安全性挑战 - 幸运的是,有很多方法可以解决这些问题。 与避免漏洞被成功利用相比,找出并修复应用漏洞也同样重要 ,具备适当的防御机制以阻止恶意攻击也很关键。

  本文提出了很多方法可以保护基于云的应用,但是,设置需要时间和精力。 正是由于这些约束条件,企业没有及时获得他们想要的投资回报,因此企业往往忽略安全的重要性。 在实践中,往往应用基础设施被破坏之后,安全性才会显得很重要。首先,采取适当的步骤确保应用的安全性,预防漏洞 ——其次,制定漏洞被利用时所采取的措施计划,对云应用环境的成功与安全性、组织的整体活力来说,都至关重要。

1
3