没有哪个网络是无懈可击的:恶意软件不断潜入,无论是通过移动员工、访客或者承包商的笔记本电脑,还是通过下载可疑内容的最终用户。处或者桌面电脑上的反软件有助于你控制计算机,但访客和没有得到管理的仍然问题重重。咱们还是实话实说吧:有时候,攻击者就是比我们聪明。可不,连遵循最佳实践的公司同样遭到袭击。
我们所指的不仅仅需要安全方面的最佳实践。保护网络远离恶意主机最终是一项桌面管理功能。NAC的作用就是强制实施你的安全策略,提供一种执行机制,有助于确保计算机配置合理。如果IT人员权衡了众多因素,比如用户是否登录、他所用计算机的补丁级别;反恶意软件或者桌面软件是否安装、运行、版本最新,就能确定要不要根据情况来限制对网络资源的访问。如果某主机没有符合你定义的策略,就被引导到补救服务器,或者放到访客虚拟(VLAN)上。
还记得Slammer病毒吗?假若采取如下策略——一旦发现运行MSDE 2000的主机未打上补丁,就拒绝其访问网络,那么Slammer病毒带来的可怕后果就会小得多。
虽然NAC大有希望,但它并非灵丹妙药。解决Slammer病毒的是要么给易受攻击的系统及时打上补丁,要么从网络上移除访问MSDE的权限。但如果你的NAC系统没有检查MSDE等应用系统及其补丁级别,就无法阻止易受攻击的节点访问网络。
总体架构
所有NAC产品都有三个基本部分:访问请求者(AR)、策略决策点(PDP)和策略执行点(PEP)。请参阅下面的“总体NAC框架”图。厂商们对这些部分使用各自的名称,但我们使用可信计算组织(Trusted Computing Group)下属可信网络连接(Trusted Network Connect)工作组定义的术语,因为它们相当清楚。
框架总结
网络准入控制
的网络准入保护(NAP)
可信计算组织的可信网络连接(TNC)
主机评估
思科可信代理( Trust Agent)将用于Longhorn之前的Windows和Vista以及Red Hat企业版3/4
微软的NAP代理和802.1X请求者是Windows Longhorn和Vista的一个部分。其他厂商可以使用微软的应用编程接口(API)来创建系统健康代理(SHA),并集成到NAP框架。该厂商负责SHA与NAP客户端如何进行通信、传送什么。举例说,不需要自我评估和实时变更通知。
TNC规范可处理AR和PDP之间的通信,还能处理软件与TNC AR如何通信。另一个系统负责进行评估。
验证
证书和评估数据发送到访问控制服务器(ACS)以便验证。ACS把它们发送到微软的网络策略服务器。ACS根据来自网络策略服务器(NPS)的响应来选择策略。
NPS与外部策略服务器(如反病毒和补丁管理系统)进行集成,评估主机的健康状况。
TNC开发的协议和API指定了各组件如何通信。
执行
思科硬件负责执行访问控制服务器发送的访问策略。
允许或者拒绝主机访问虚拟专有网(),或者与外部系统进行集成,可能同时会有隔离机制。
TNC开发的协议和API指定了各组件如何通信。
合作伙伴计划
思科有庞大的合作伙伴计划,许多知名的产品厂商参与其中。思科和微软都声称,除了NAC/NAP计划外,它们还将支持各自的合作伙伴计划。微软计划让合作伙伴迁移到Longhorn和Vista的新API。
微软有庞大的合作伙伴计划;与思科不同,它还拉拢了许多基础设施厂商。微软还似乎是思科和可信网络连接工作组的强大合作伙伴。
规范现在可供下载。TCG的成员可以参与该工作组。微软发布了面向TNC规范的健康状况(Statement of Health)协议。
互操作性测试
思科的NAC计划借助收购了KeyLabs的AppLabs进行互操作性测试。预计NAC合作伙伴会开发及测试各自的产品。
微软还没有互操作性测试计划方面的打算。
TNC正在规划将来的兼容计划,但它在这个问题上却保持了沉默。
PDP和PEP的单独功能可包含在一台服务器上,也可分散在多台服务器之间,这取决于厂商的实施方案;不过一般而言,AR负责请求访问,PDP负责指定策略,而PEP负责执行策略。
AR是试图访问网络的节点,它可以是由NAC系统管理的任何设备,包括工作站、服务器、打印机、照相机及具有IP功能的其他设备。 arm可能自行执行主机评估,也有可能由另外某个系统来评估主机。不管在什么情况下,AR的评估结果发送到PDP。PDP是核心部分。根据AR的状况和公司定义的策略,PDP确定应当授予哪种访问权。在许多情况下,NAC产品管理系统可能充当PDP。PDP常常依赖后端系统(包括反病毒、补丁管理或者用户目录),以便帮助确定主机的条件。举例说,反病毒软件管理器会确定主机的反病毒软件和特征版本是不是最新,然后通知PDP。
一旦PDP确定运用哪个策略,就会把访问控制决策传送给PEP以便执行。PEP可能是网络设备,比如、防火墙或者;可能是管理动态主机配置协议(DHCP)或者地址解析协议()的带外设备;也可能是AR上的代理本身。
NAC的周期
主机试图连接到具有NAC功能的网络时,通常经历三个阶段:准入前后的评估、策略选择和策略执行。负责管理每个步骤的标准取决于贵公司的策略和NAC系统具有的功能。
你在选择产品之前,要明确贵公司的目标到底是什么。举例说,补丁或者反病毒软件的特征过期多久后,主机再也不能访问网络?访客主机的什么条件是可以接受的、从而授予访问权?你是不是希望根据用户ID来授予访问权?
评估
NAC周期从评估开始,到评估结束。授予主机完全访问网络之前进行准入前评估。授予访问权后,准入后评估能够定期重新评估主机,确保它从来没有构成威胁。主机评估可以收集一些信息,比如主机的、补丁级别、运行或者安装的应用程序、安全状况、系统配置、用户登录以及更多信息,然后传送给PDP。收集哪些信息取决于你定义的策略和NAC产品具有的功能。
NAC评估方法:主机评估是确定主机状态和它应该得到哪种访问权的一个根本方面。以下是如今使用的一些常见评估方法。许多NAC厂商至少支持其中的两种方法。
方法
工作原理
优点
缺点
持久性代理
安装后,执行评估。代理可能是更大程序包(如桌面)的一部分,也可能是类似可信代理的代理者。
只要在计算机上安装一次。一旦软件安装完毕,用户根本不必再理会它。提供了深度检测主机的功能。
不是所有系统、尤其是访客系统都能安装代理。代理需要合理的权限才能评估主机。代理必须支持你的所有操作系统和应用程序。
一次性代理
类似持久性代理,一次性代理用Java或者ActiveX等移动语言来编写,下载后即可执行。评估一般由代理来执行,而不是卸载到其他源处。
可安装到任何主机上,移动代码更可能在多种操作系统上得到支持。这种代理通常很简短,大小不到1MB,所以可以在慢速连接上传送。
不是所有系统都支持移动代码。用户需要合适的许可权才可运行代码;在Windows中,这往往是需要本地管理员或者高级用户。
远程过程调用(RPC)
网络上的使用目标计算机上的RPC或者WMI来进行扫描。除了可以访问主机外,服务器还需要主机的管理员证书才能进行扫描。
不需要安装代理,却仍有望比较深入地分析主机。
不是所有用户都有本地管理员访问权,而最小用户权限概念会进一步限制这种访问权。访客很难得到支持。检查也不如代理来得全面。
漏洞扫描
服务器对主机执行漏洞评估扫描。反软件扫描试图识别操作系统、运行中的服务以及任何漏洞。
不需要安装代理;而且常常不需要证书,从而使得扫描很简单。提供了主机上攻击点的详细信息。
如果没有管理员证书,有关主机的信息很有限。扫描要用很长时间,还有可能导致服务崩溃。主机防火墙会干扰扫描功能。误报或者漏报是潜在问题。
被动监控
不是评估主机的条件,而是监控主机从而查找不良行为,比如扫描或者感染。可以执行检测,并监控验证请求和响应。
可检测恶意行为,不管主机的条件如何。被动监控可能使用基于特征或者异常的检测。提供了实时检测不符合策略的活动的功能。
有关主机状态的惟一数据就是传回到网络上的数据。操作系统和服务检测可能不准确。需要了解网络流量,而这很难实现。
评估可以使用持久安装的代理,这在基于主机的NAC中很常见;更有可能使用一次性代理(dissolvable agent),之所以这么叫,是因为这种代理基于Java或者ActiveX;使用后就消失。一次性代理有时又叫无代理NAC,不过这种方法实际上需要使用下载及安装到主机计算机上的代理。
问题在于,Windows、 X和中的安全模型往往需要代理(持久性代理或者一次性代理)拥有本地管理员权限才可以运行。对不允许笔记本电脑和桌面电脑以本地管理员权限来运行(明智做法)的公司而言,这就成了问题。在有些情况下,代理在第一次安装时才可能需要管理员权限;这让IT人员得以避开这个局限性。
但如果你无法把代理安装到系统上,那该如何是好?这种情况下,就可以通过远程扫描方法来进行无代理评估,比如运行漏洞扫描;或者使用远程过程调用(RPC)或Windows管理工具(WMI)来查询主机。另外,使用入侵检测和网络异常检测技术的被动扫描会根据实际流量来寻找恶意主机。甚至可以这样定义评估:迫使用户签署“可接受使用政策”,之后才授予网络访问权。
主机获得访问权后进行连接后评估。如果忽视了这一步,后果自负,这是由于主机的条件在处于连接时也会变化。蠕虫可能被激活,或者恶意用户可能开始攻击。连接后评估可以在指定的一段时间后自动启动;需要时由管理员来启动;或者根据主机出现的变化来启动,比如桌面防火墙或者反病毒软件被禁用。新的评估与当前策略进行比较,然后采取规定的动作。连接后评估方面值得关注的是,有些产品使用被动网络监控,或者在NAC系统里面;或者与现有的入侵检测或者网络异常检测系统进行集成,报告可疑活动。这些外部监控系统可以报告网络流量,还能检测出基于主机的评估没有发现的问题。
管理
又叫“ARP欺骗”或“中间人攻击”管理。地址解析协议(ARP)用来告诉其他主机哪些IP地址分配给了某个地址。这种地址分配保存在每个主机上的ARP表,可动态更新。这种方法通过把ARP表连同不同的IP到MAC映射一起发送,以此管理主机的ARP表。
ARP可用于任何IP主机;始终不用对主机的配置进行任何改动,即可使用。
与DHCP管理很相似,静态分配ARP表条目会使这种方法失效。另外,中旨在防止恶意ARP欺骗的新的安全功能可能会导致该方法不稳定。
通配符DNS
ARP把IP地址映射成MAC地址。同样,DNS把主机名称映射成IP地址。通配符DNS利用IP地址来响应任何DNS查询,实际上把主机重定向至特定的。
与DHCP和ARP管理一样,这种方法可与使用DNS的任何主机协同工作。用户最后常常出现在网页上,他必须在此验证身份或者接受协议。依赖这个事实:用户最终会使用Web,因而被重定向至网页。
与DHCP和ARP管理一样,如果主机从来不使用DNS,那么这种方法就失效。另外,计算机也会有静态的主机条目。
“围墙花园”
“围墙花园”迫使用户进入到专有网络上,那样他们就能访问有限的资源,比如接受协议、更新系统及执行其他功能的网页。一旦主机获得通过,就允许他们连接到另一个网络上。
如果主机被拒绝访问网络,它们如何得到更新?“围墙花园”常常结合另一种执行方法使用。
你不得不维护“围墙花园”里面的更新服务器及其他设备。
嵌入式阻塞
嵌入式阻塞类似网络,只不过访问控制是针对每台主机,而且动态分配。另外,嵌入式系统可以监控网络流量,并对恶意活动采取行动。
嵌入式阻塞的粒度一般相当细,因为可以控制端口;在某些情况下,甚至还可以控制流量有效载荷。其他方法主要单单基于主机。
嵌入式阻塞常常出现在交换层之间,这意味着恶意主机有可能攻击能访问得到的其他主机,而不必透过嵌入式设备。必须在每个阻塞点部署嵌入式设备。
TCP重置/ICMP消息
NAC系统可以通过向客户机和服务器发送TCP重置命令,来终止TCP连接。一旦主机接到TCP重置命令,TCP连接就被关闭。可使用ICMP消息来管理非TCP协议。
类似其他被动执行方法,TCP重置可与具有TCP功能的任何计算机协同工作,可透过任何防火墙或者安全。非TCP协议使用ICMP消息,但不能保证两边的主机都认可ICMP消息。
非TCP协议很难得到支持。使用UDP的单一数据包攻击如SQL Slammer完全可以长驱直入。
补丁、更新及配置变更
也结合其他执行方法使用,可以自动或者人工给主机打补丁,从而使它符合策略、准备重新评估。
对公司拥有的计算机而言,这是很好的措施,可确保主机得到更新及合理配置。
你不能总是迫使外部用户(如承包商)更新他们的计算机或者安装软件。另外,网络访问之前迫使进行更新会影响工作效率。
执行方面比较棘手的是处理异常情况。无法使用任何一种定义的方法来评估的主机仍需要某种执行。想想在网络上无法安装软件上去的所有设备,从打印机、网络摄像头、电话到应用设备,等等。惟一的执行方法通常是把这些设备的MAC地址加入白名单。不过,因为MAC地址容易受到欺骗,应当把基于MAC的安全功能实施到访问交换机上,以便防止这些攻击,或者至少降低这种攻击的可能性。
部署方式
NAC系统添加到网络上有四种基本方式,各有其优缺点。许多NAC产品提供不止一种的部署方式。
带内NAC把设备插入到网络连接上,通常介于访问交换机和分布交换机之间。确定把设备放在何处时,别忘了这点:离主机越远,被攻击者盯上的潜在目标就越多。
带内NAC产品可以封阻流量,就像网络防火墙那样,但它的访问控制列表(ACL)却是针对每台主机定制的。还提供其他执行方法,如VLAN转向。带内NAC的优点在于,如果没法其他执行方法可以使用,嵌入式封阻仍是一种选择。缺点在于,增加了另一个潜在的故障点(确定设备是不是没有开启或者关闭),每个执行点都需要这样一个设备。
带外NAC比带内NAC更常使用,它包括属于PDP、但使用其他方法(如802.1X、DHCP和ARP管理或者VLAN转向)来执行策略的产品。一旦主机访问网络,NAC产品就会干预,执行某种评估,然后在适当时候授予访问权。带外NAC的优点在于,对网络性能影响很小;所需的设备也比较少。带外NAC的效果取决于发现及执行机制。举例说,如果主机有静态IP地址,很容易绕过DHCP控制机制。
基于交换机的NAC类似带内NAC,但不是在访问交换机和分布交换机之间进行执行,而在交换机本身上面执行。基于交换机的NAC与单单使用802.1X来控制端口有何区别?基于交换机的NAC产品不需要802.1X就能与访问请求者进行通信。
一旦主机请求访问,就使用代理或者无代理的扫描来进行评估,然后PDP为交换机端口设定策略。基于交换机的NAC产品还提供针对每个端口的内部检测和异常检测功能,所以不需要集成外部系统。与带内NAC一样,基于交换机的NAC也能把访问控制应用于网络应用端口,并且根据流量类型来应用。理想情况下,为了获得粒度最细的控制,应当在端口层执行NAC;所以如果你打算升级交换机,就要购买交换机的高级功能。
基于主机的NAC依赖已安装的主机代理来评估及执行访问策略。已安装的代理进行集中管理,访问策略跟踪主机,哪怕未连接网络的时候。与基于网络的执行机制不同,基于主机的NAC不但能控制哪些流量进出网络,还能控制哪些应用可以使用网络。举例说,工作站上的程序没有理由连接到邮件端口上。主机代理的细粒度控制以及与用户的有限交互是基于主机的NAC很吸引人的理由。当然,需要管理另一个,访客和承包商访问常常得不到很好的支持。另外,非Windows主机也未得到支持。