上周我们发布了Microsoft Endpoint Protection (MEP) for Windows Azure的客户技术预览版,该插件允许开发人员和管理员在Windows Azure VMs中植入反恶意软件保护。它是作为Windows Azure SDK上的扩展包来安装的。安装MEP for Windows Azure CTP之后,你可以简单的通过将MEP反恶意软件模块导入到角色定义中来启用反恶意软件保护。
从这里下载安装MEP for Windows Azure。安装之前请确认已经安装了Windows Azure SDK 1.6或更高的版本。
功能更新
当你将反恶意软件解决方案作为Windows Azure服务的一部分部署时启用了以下的核心功能:
- 实时保护监控系统上的活动以检测和阻止恶意软件的执行。
- 计划扫描定期地执行定向扫描以检测系统上的恶意软件,包括正在运行的恶意程序。
- 恶意软件修复针对检测到的恶意软件资源采取行动,例如删除或隔离恶意文件和清除恶意的注册表项。
- 签名更新安装最新的保护签名(又叫做“病毒定义”)以确保最新的保护。
- 积极防护向微软公司报告监测到的威胁和可疑资源的元数据以确保快速响应不断变化的威胁,以及通过动态签名服务(DSS)实现实时签名交付。
微软公司的反恶意软件终端解决方案旨在在后台运行而不需要人为干预。即使检测到恶意软件,终端保护代理将自动采取行动删除检测到的威胁。请参阅文档“Monitoring Microsoft Endpoint Protection for Windows Azure”以了解监测恶意软件相关事件或VMs进入“坏的状态”的更多信息。
提供反馈
发布Microsoft Endpoint Protection for Windows Azure技术预览版的目的是希望您对为Windows Azure VMs提供反恶意软件保护做一个评估并提供相关的反馈信息。我们期望听到您的意见!请将任何反馈信息发至eppazurefb@microsoft.com。
它的工作原理
Microsoft Endpoint Protection for Windows Azure包含Windows Azure Tools for Visual Studio 的SDK扩展,为在特定的role中植入终端保护配置Windows Azure服务提供了方法。当你部署服务时,终端保护安装启动任务就被包括进来了,它作为给定实例的虚拟机运行的一部分来运行。该启动任务为服务配置(.cscfg)文件中指定的地理区域从Windows Azure Storage获取到整个终端保护包平台组件并安装它,应用其他指定的配置选项。
安装完成并运行,端点保护客户端从互联网下载最新的保护引擎和签名,并加载他们。这时候,虚拟机器启动并启用了反恶意软件保护。诸如日志和反恶意软件事件之类的诊断信息可以在Windows Azure Storage中永久存储以作监测之用。下面的关系图展示了将所有部分结合在一起后的“大图片”。
先决条件
在开始之前,你应当已经配置了一个Windows Azure账户并对怎样在Windows Azure环境中部署服务有所了解。此外,还需要安装Microsoft Visual Studio 2010。如果你已经安装了Visual Studio 2010、Windows Azure Tools for Visual Studio,并且写入并部署了Windows Azure服务,你就可以开始了。
否则,先做到以下几点:
部署
一旦安装好Visual Studio 2010和Windows Azure Tools,你就可以开始植入反恶意软件保护并在Azure VM中运行。为此,请执行以下步骤:
- 安装Microsoft Endpoint Protection for Windows Azure
- 启用Windows Azure服务的反恶意软件
- 选择地自定义反恶意配置选项
- 配置Azure诊断程序来捕获反恶意软件相关信息
- 将你的服务发布到Windows Azure上
安装Microsoft Endpoint Protection for Windows Azure
运行Microsoft Endpoint Protection for Windows Azure安装程序包。你可以从这里下载该安装包。
按照安装向导中的步骤安装端点保护组件。所需要的文件被安装在Windows Azure SDK 插件文件夹中。例如:
C:\Program Files\Windows Azure SDK\v1.6\bin\plugins\Antimalware
一旦完成了这些组件的安装,你就可以启用Windows Azure role中的反恶意软件了。
启用Windows Azure服务的反恶意软件
为了使得你的服务在role VM中包含端点保护,只需在定义role的时候添加“Antimalware”插件。
- 在Visual Studio 2010中打开服务定义文件(ServiceDefinition.csdef)。
- 为服务定义中的每个role(例如worker role和web role)更改<imports>部分,通过添加下列代码来引入“Antimalware”插件:
<Import moduleName="Antimalware" />
重要说明: Diagnostics模块是MEP的直接依赖项。当创建一个新项目时它默认(<Import moduleName="Diagnostics" />)被包含在ServiceDefinition.csdef文件中。不一定要以特定的方式来配置它(e.x.向存储中写log),但如果不存在此模块Windows Azure服务将无法成功地部署。
下图展示了向worker role“WorkerRole1”中而不是项目的Web role中添加反恶意软件的一个示例(注意Diagnostics模块中包含的内容):
3. 保存服务定义文件。
在该例中,项目的worker role实例现在在每个虚拟机中将包含终端保护。但是web role实例不包含反恶意软件保护,因为antimalware import只是针对worker role。当服务再次被部署到Windows Azure中时,端点保护启动任务将在worker role实例中运行并从Windows Azure Storage安装完整的端点保护客户端,然后Windows Azure Storage从互联网上安装防护引擎和签名。此时虚拟机将会启动积极防护。
选择地自定义反恶意配置选项
当启用了一个role的反恶意软件保护时,反恶意软件插件的配置将自动地被添加到你的服务配置文件(ServiceConfiguration.cscfg)中。为在Windows Azure环境中运行,该配置已被预先优化。你不需要再更改这些设置。然而,你可以根据需要为特定的部署自定义这些设置。
添加到服务配置的默认反恶意软件配置
下表总结了可用来作为服务配置的一部分的可用设置:
部署了的服务的配置
WindowsAzure提供了将服务配置“on the fly”地更新到已经运行在Windows Azure上的服务的能力。例如在Windows Azure Portal上你可以选择“Configure”选项来上传新的配置文件或手动编辑现有部署的配置。
Microsoft Endpoint Protection for Windows Azure支持将更改应用到已经部署的服务上。如果你在服务配置文件中改变了反恶意软件的设置,你可以将新的配置部署到正在运行的服务上,反恶意软件相关的设置将自动更新。
Microsoft Endpoint Protection for Windows Azure必须已经作为服务部署的一部分部署了。你不能通过配置更新部署或删除终端保护。
配置Azure诊断程序来捕获反恶意软件相关信息
为了检测反恶意软件部署的健康,你需要配置Windows Azure将反恶意软件有用的事件和日志放进Windows Azure存储中。从那里任何数量的Windows Azure监控解决方案可用于反恶意软件的监控和提醒。
参考 Windows Azure Diagnostics的MSDN文档 以获取一般信息。
Antimalware events
对于反恶意事件,你需要配置diagnostics来从source是”Microsoft Antimalware”的系统事件日志中来获取事件。一般来说,你需要找出Error 和 Warning事件。请参阅 “Monitoring Microsoft Endpoint Protection for Windows Azure”文档了解需要监视哪些事件的更多信息。
下面是可能要为服务添加到entry point的示例代码:
//add antimalware diagnostics
var config = DiagnosticMonitor.GetDefaultInitialConfiguration();
//exclude informational and verbose event log entries
config.WindowsEventLog.DataSources.Add("System!*[System[Provider[@Name='Microsoft Antimalware'] and (Level=1 or Level=2 or Level=3)]]");
//write to persisted storage every 1 minute
config.WindowsEventLog.ScheduledTransferPeriod = System.TimeSpan.FromMinutes(1.0);
DiagnosticMonitor.Start("Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString", config);
在这种情况下,来自系统事件日志的任何反恶意软件errors 或 warnings将每隔1分钟就会被写到Windows Azure Storage中。根据检测需求适当地设置时间间隔。
你可以通过以Windows Azure Diagnostics的方式查看你所配置的存储账户中的WADWindowsEventLogsTable表来查看原始事件。这对验证反恶意软件事件收集有没有在正常工作很有用。例如从包含信息事件(Level=4)开始验证端到端的配置,然后通过配置更新关闭它们。
Antimalware logs
此外,反恶意组件启动并运行在Windows Azure VMs里,当遇到问题时下面的位置中的日志可能对你很有帮助:
- %programdata%\Microsoft Endpoint Protection包含与Windows Azure服务一起部署的启动任务的日志
- %programdata%\Microsoft\Microsoft Security Client包含终端保护平台组件的安装日志
你可以通过配置Windows Azure diagnostics来获取这些日志也可以通过实现自定义记录将这些日志移到blob存储中。从 MSDN文档 上阅读更多相关信息。
将服务发布到Windows Azure上
一旦你完成了Visual Studio 2010里的一切配置,最后一步就是将服务发布到Windows Azure上。具有反恶意软件配置的role将包括额外的启动任务来安装和启动端点保护客户端(作为服务部署的一部分)。与任何Windows Azure服务一样,你可以为了通过Windows Azure portal部署来打包服务,或者可以从Visual Studio 2010里发布。这两种选择都可以使用Microsoft Endpoint Protection for Windows Azure。
一旦发布完服务,启用反恶意软件的任何role的虚拟机中将运行Microsoft Endpoint Protection客户端。