posted

2 Comments

传统的应用安全防护机制都是被动式的,要及时发现对于应用的恶意攻击的放在,首先要了解攻击手段的特征,例如防病毒软件都有一个“病毒特征库”, 利用特征码来扫描和发现病毒代码。这种方法的最大问题在于无法防范未知的攻击手段,防护机制具有滞后性。近年来,随着人工智能技术的发展,机器学习也被应用于检测未知的攻击手段,通过对计算环境中的数据进行收集和分析,从中找出有异于寻常的行为,这可能就是潜在的攻击行为。这种方法的挑战在于如何处理海量的环境噪声,如何从噪声中过滤出我们想要的结果,实际运用中经常造成误判。

 

VMware 的创新产品 AppDefense 独辟蹊径,创造了一种全新的安全保护机制,它内嵌在 vSphere Hypervisor 中,对虚机实现全面的安全保护。AppDefense 的创新性主要体现在以下三个方面:

主动式的安全保护:通过了解虚机“好”的状态来检测出“坏”的攻击,不再像传统的安全机制那样被动地响应恶意攻击,而是主动地定义系统正常运行应该具有的状态,当检测到跟正常行为的偏差时就有可能是恶意攻击。因为 AppDefense 存在于虚拟化层之中,有着得天独厚的优势来了解 每个虚机或应用的正常行为,也能够在第一时间知道虚机中发生的任何变化。这种优势大大提高了 AppDefense 的智能,不再需要去猜测哪些变动是正常的,而哪些行为是潜在的威胁。AppDefense 并不是孤立地监视某一个特定的虚机,而是从整个数据中心的角度来全盘考虑安全,这让 AppDefense 能够很好地理解虚机间复杂的交互行为模式。

自动精准的威胁响应:在恰当的时间点对安全威胁作出自动响应,每当检测到恶意攻击时,AppDefense 能够自动调用 vSphere 和 NSX 的功能来自动采取应对的安全措施:

  • 阻断进程通讯
  • 抓取虚机快像以备进一步的分析
  • 把受感染的虚机挂起
  • 把受感染的虚机关机

跟攻击表面相隔离:大部分恶意软件首先攻击的都是安全保护系统,例如禁止防病毒软件,或者是瘫痪安全保护代理等,为进一步的攻击创造条件。AppDefense 存在于 Hypervisor 中,这个位置使得它远离攻击表面,具有天然的安全性,这是任何运行在虚机上的安全软件所无法比拟的。

 

我们来看一下 AppDefense 的系统架构,AppDefense 是以云端 SaaS 形式提供的服务,用户登录进云端的 AppDefense Manager 以后,就可以下载以下三种模块:

  • AppDefense Appliance:用户需要在数据中心内部署这样一个虚机,负责数据中心内 AppDefense 所有的管理功能,并负责跟云端 AppDefense Manager 之间的通讯工作。
  • Host Module:以 VIB (VMware Installable Bundles) 形式提供,安装在每一台物理服务器的 ESXi Hypervisor 中。
  • Guest Module:是一个可执行安装包,安装于每一个虚机上,Guest Module 和 Host Module 一起协作来完成对于虚机行为的监控。

图中几个黄色的组件是 vSphere 集群中传统的模块,vCenter 负责管理集群中所有的主机和虚机,AppDefense 就是通过 vCenter 来获得关于集群的这些信息的,用于规划对于集群的保护方案。vRA (vRealize Automation) 和 vRO (vRealize Ochestrator) 中含有应用自动调配的蓝图,AppDefense 通过这些信息来更好地了解应用的行为。AppDefense 也通过调用这些组件的功能来实现一些自动的响应动作,例如检测到安全威胁时通过 vCenter 把受感染的虚机挂起,通过 NSX 的虚拟防火墙功能来隔离某个安全威胁等等。

 

AppDefense 的工作流程主要包括以下几步:

  1. 指定保护范围 (Security Scope):指定要保护的应用及其相关的服务,这些就是 AppDefense 的监控范围。
  2. 学习什么是”好“的行为:AppDefense 花一到两周的时间来学习受保护的应用在正常情况下的行为表现,这段时间内受保护应用的状态为“学习模式”;学习结束之后状态转为“保护模式”,表明开始受 AppDefense 的保护了。
  3. 定义自动响应规则:AppDefense 可以检测到虚机的操作系统是否被非法窜改、不应该发生的网络通信请求、AppDefense 模块自身是否被窜改等行为偏差,可以针对各种行为偏差定义自动响应规则。
  4. 检测并产生警告: 当受保护的应用被恶意软件攻击时,因为这些攻击行为是应用正常运行时不会发生的,AppDefense 可以检测到这些行为偏差,产生警告并根据预定义的响应规则来自动处理。

 

幕后花絮:AppDefense 的项目代号叫作 Goldilocks (刚刚好的意思),关于 Goldilocks 的原义可以参见百度百科词条,这篇博文的封面就是 Goldilocks。虚拟化层位于物理硬件和虚机之间,在这一层上对于应用虚机进行监控“刚刚好”,因为它既跟受攻击的虚机相隔离,又能够对虚机进行全面的检测,所以是一个理想的 “Goldilocks zone”。