标题：主机入侵防御系统
简介
HIPS是一种能监控你电脑中文件的运行和文件运用了其他的文件以及文件对注册表的修改，并向你报告请求允许的软件。如果你阻止了，那么它将无法运行或者更改。比如你双击了一个病毒程序，HIPS软件跳出来报告而你阻止了，那么病毒还是没有运行的。引用一句话：“病毒天天变种天天出新，使得杀软可能跟不上病毒的脚步，而HIPS能解决这些问题”。 HIPS是以后系统安全发展的一种趋势，只要你有足够的专业水平，你可以只用HIPS而不需杀毒软件。但是HIPS并不能称为防火墙，最多只能叫做系统防火墙，它不能阻止网络上其他计算机对你计算机的攻击行为。
因为病毒天天变种天天出新，使得杀软可能跟不上病毒的脚步，而HIPS能解决这些问题。
我们个人用的HIPS可以分为3D： AD(Application Defend)--应用程序防御体系、RD(Registry Defend)注册表防御体系、FD(File Defend)文件防御体系。它通过可定制的规则对本地的运行程序、注册表的读写操作、以及文件读写操作进行判断并允许或禁止。
主机入侵防火墙系统
堆栈溢出防范这种类型的攻击赫赫有名，频频出现在CERT、SANS、CSI等国际网络安全组织的最具威胁的攻击类型名单内。据统计，通过缓冲区溢出进行的攻击占所有系统攻击总数的80%以上。这是一种渗透到系统中的攻击技术，其基本理是当来自某个程序的输入数据超出程序缓冲区能够处理的长度时会产生溢出，结果不受程序员的控制。当入侵者巧妙地安排代码后，被攻击的服务器还可能执行入侵者指定的程序代码，从而导致攻击者甚至可以获得系统中超级用户的权限。比如80年代的Morris"蠕虫"事件导致了当时Internet上1/3的计算机瘫痪，这种入侵方式就是采用了UNIX的Finger服务的一个缓存区溢出的漏洞；2001年的红色代码病毒在短短几个小时内传遍了全球，造成了数十亿美元的损失，也是采用了Windows服务器平台上的IIS服务的一个缓存区溢出漏洞。2003年的SQL Slammer蠕虫、2004年的震荡波等同样也是利用了这种漏洞。为什么这种攻击这么多呢？主要原因在于（单不仅限于）目前广泛用于系统编程的语言-- C语言本身的某些函数就存在着一些漏洞，造成了这种漏洞的广泛存在和难以彻底清查。 
目前对这种攻击方式的防范方式主要有以下几种：第一，对存在溢出漏洞的程序打补丁。这是最常见的防范方式，需要依靠程序的厂商提供相应的补丁程序才能生效。但是随着网络攻击的频度不断加快，一个漏洞从被发现到运用在大规模的攻击中的时间大大缩短。往往程序厂商还没有发布相应的补丁程序，攻击就已经发生了。所以这种方式是非常被动的，无法防范新出现的漏洞入侵。第二，通过操作系统的设置使得缓冲区不可执行，从而阻止攻击者植入攻击代码。这种方式的主要问题在于首先可能和现有的应用程序存在冲突，其次对溢出攻击的防范不全面。因为有些攻击不需要进行攻击代码的植入过程。第三，采用专用的防范溢出的编译器对程序进行编译检查。这是一个比较完整的保护措施，但是却需要付出非常高昂的时间和费用的代价。 
所有上述的办法都无法在现实的业务系统中顺利使用。主机入侵防御系统则提供了另一种切实可行、易于实施的防止"堆栈溢出攻击"的方法。主机入侵防御系统中具有一种STOP (STack Overflow Protection，堆栈溢出保护)技术，可以阻止这种入侵，防止用户或程序获得超级用户权限。
所有的缓冲区漏洞挖掘程序都基于以下一个假设，即：程序在每次运行时有问题的参数压入栈内的数据地址空间偏移量是一定的（或者相差较小）。如果在程序运行时由操作系统定义并且分配一个随机化的偏移给该应用程序，那么则专为此有缺陷的程序设计的溢出程序在溢出时就会返回一个错误的ret地址，而不能跳转到恶意构造的shellcode下。虽然大部分的缓冲区溢出程序也能提供可调整的offset变量，但由于每次有缺陷的程序运行时都将拥有一个随机化的偏移，因此通过上次不成功的溢出猜测所得到的地址空间和内容并不能来指导修正下次调整的offset。主机入侵防御系统提供了STOP技术在不改变操作系统内核下同级工作，能帮助定义并且分配一个随机化的偏移量，在不修改的系统内核的情况动态实现上述功能。 
通过这种防范措施，用户不仅仅能够对所有已知和未知推栈溢出类型的攻击进行高强度防范，而且还不需要修改任何现有的操作系统和应用程序，保证原有系统的持续运行，保护了投资。信息篡改保护信息篡改破坏了信息的完整性，是入侵者攻击目的的一种。信息篡改主要有两种形式：信息传输中的篡改和信息存储时的篡改。信息传输中的篡改主要发生在在线的交易过程中对交易信息的篡改，将导致交易双方的严重经济损失；网络设备控制信息的篡改，可能导致网络工作异常、甚至导致信息传输途径的更改以至于失密。这种攻击行为的防范主要依靠信息交换双方对信息的加密和数字签名以及强验证方式来实现。信息存储时的篡改是最为常见的攻击方式，往往表现在对关键业务服务器上数据的更改，导致业务无法正常运行；对一些关键文件的篡改，比如针对网站主页的篡改，会导致被攻击者形象的损失和潜在的经济损失。比如一家在线交易单位如果网页被篡改，其后果可能会导致大量客户的流失，即使入侵行为没有危及到关键的交易数据。另外一种最具威胁的攻击手段是对可执行程序的篡改。入侵者通过对系统原有的可执行文件的篡改能够达到很多破坏目的。比如通过非法修改证券交易系统或者银行业务系统的程序以获取暴利；通过篡改某些关键应用程序导致系统无法正常运行。但是最常见的篡改目的是：通过篡改一些管理员或者用户经常使用的应用程序，使其在运行的时候除了执行正常的操作之外，同时运行一个入侵者放置的木马程序。这样，对管理员或者用户来说好像系统运行一切正常，但是却在不知不觉中运行了木马程序，导致后门洞开。这种入侵的后果是非常严重的，将可能导致严重的信息泄密。
主机入侵防御系统的解决方法就是从根本入手，大大细化了对资源的控制粒度。不管是UNIX还是Windows服务器操作系统，对文件和目录的安全许可权限都是非常有限的。但是通过主机入侵防御系统就能够使文件和目录的许可控制大大增强。如图所示，许可类型除了读、写、执行外，还额外添加了删除、重命名、模式更改、属主更改、时间更新、ACL更改、创建、更改目录等8项许可，为管理员提供了充分的授权空间，能够按照最贴切的方式对各个账户进行资源的授权，防止授权过大造成的内部安全隐患。同时，同样一个账户采用不同的应用程序访问资源也有可能获得不同级别的访问许可，这给某些行业的特殊需求提供了极大的便利。 
有了文件许可的细化控制能够极大地减少由于授权原因造成的信息篡改事件。但是为了彻底杜绝对关键信息的篡改，主机入侵防御系统还提供了数字签名的功能，能够对普通文件、数据文件以及可执行文件特别是入侵者攻击的首要目标--UNIX中的suid和sgid类型的程序进行完整性校验。如果普通文件和数据文件发生了意外更改，主机入侵防御系统将会报警；如果可执行文件发生了意外更改，主机入侵防御系统将会自动拒绝这个可执行文件的执行，并且同时报警。这样，即使非法入侵者对目标文件进行了篡改，其目的也很难得逞。当然，如果实现利用主机入侵防御系统的文件保护功能对这些关键的文件进行了保护，入侵者是无法达到非法篡改的目的的。木马后门防范特洛伊木马（以下简称木马），英文叫做"Trojan horse"，其名称取自古希腊的特洛伊木马攻城故事，相信大家都已经耳熟能详了。正是这种古老的攻城方式却成为了现在令人色变的网络入侵方式。  
首先，主机入侵防御系统具有的程序访问控制列表(PACL)功能使得同样一个用户访问同样的资源的时候，如果采用不同的应用程序访问，将会得到不同的权限。也就是说，对于一些重要的资源，我们可以采用主机入侵防御系统这种功能限定不同应用程序的访问权限，只允许已知的合法的应用程序访问这些资源。这样，即使入侵者在被攻击的服务器上运行了木马程序，但是木马程序需要窃取关键信息的时候必须要经过主机入侵防御系统的安全验证。由于PACL中没有定义木马程序的访问权限，按照默认权限是不能够访问的，由此就起到了对木马信息窃取的防范。 
另外，计算机一旦连结上了网络就融入了一个整体，需要对整体的安全性负责任。通过上文的分析我们已经发现，木马不仅仅会窃取本地信息，更严重的是入侵者能够通过本地计算机对网络中的其它计算机发起入侵，如DDoS攻击行为。美国G0vernment法律规定由于某台计算机的安全问题直接导致的其它联网计算机的入侵事件，这台具有安全问题的计算机的所有人是需要负责任的。目前其它国家也正在陆续出台相关的规定。所以，在网络上仅仅采取明哲保身的自保策略是不够的。为了避免被植入木马的服务器成为入侵者的跳板和傀儡，主机入侵防御系统还具备了网络访问控制的作用。网络访问控制规则不仅仅能够定义哪些人能够在什么时间从哪里访问本机的哪些服务，而且更为重要的是，它还能够定义从本机能够发出什么类型的网络连接。这样，凡是不符合规则的连结将不能够从本机发出。举例来说，在红色代码泛滥的时候，许多运行IIS服务的服务器感染病毒后会在网络中进行大范围的扫描，发现TCP 80端口开放的潜在受攻击者。但是Web服务器的这种行为明显地是非常异常的行为。所以通过在主机入侵防御系统中定义外出连结的类型，能够从根本上避免由木马发起的外部攻击行为，特别是避免成为DDoS攻击的傀儡。进程中止保护在很多关键业务环境中，肯定都会有几种比较重要的服务在运行。比如一个电子商务交易Web站点，服务器上的HTTP服务或者守护进程就是非常关键的。而在后台的支撑环境中运行的数据库服务器上，数据库的守护进程就是这台服务器的灵魂。同样地，对于一个刚刚兴起的收费邮箱服务提供商来说，如果后台邮件服务器上的SMTP服务忽然停顿，势必会更加难以招徕用户。所以，信息化的社会的基石就是在关键服务器上运行的种种服务。一旦服务中止，上层的应用就会没有了根基。而在操作系统中，这些关键服务是以后台进程的方式存在。
目前，受到攻击最多的服务就是HTTP、SMTP以及数据库进程，当然也有其它的关键服务进程。入侵者对于这些进程的中止方式一般有两种：一种是利用这些服务本身存在的某些漏洞进行入侵，而另外一种则是首先获得操作系统中能够中止进程的权限，一般是超级用户的权限，然后再中止进程。
进程的安全性完全依赖于操作系统提供的安全级别。一般来说，进行进程中止的防止主要是采用Watchdog的技术。所谓Watchdog就是看门狗的意思，其主要功能是对进程进行看护，防止进程的意外中止。如果由于某些意外因素，进程非正常中断，Watchdog能够在很短时间内快速重新启动被看护的进程。
主机入侵防御系统就具备了这种Watchdog的功能。事实上，主机入侵防御系统本身提供的服务就是基于三个进程的。主机入侵防御系统要对操作系统进行安全保护，需要首先进行自身的保护，防止自己进程的意外中止。在实际运行当中，这三个进程出了各自完成自己的职能外，还存在一种互相看守的关系。就是进程一是进程二的Watchdog，而进程二又是进程三的Watchdog，进程三则是进程一的Watchdog。这样，如果其中一个进程意外中止了，总有一个进程会将其重新启动。即使在非常情况之下两个进程同时意外中断，剩下的一个进程依然能够将另一个进程启动，然后启动最后一个进程。所以，主机入侵防御系统的这种安全机制是非常严密的，不仅仅用来保护自己，而且还能够很好地应用于对关键服务进程的安全防护。超级权限分割超级用户的存在为管理者带来了极大的方便，登录一次，就能够完成所有的管理工作，执行所有的命令，进行所有的系统维护。但是，同时正是因为有了超级用户无所不能的超级权限，也造成了很多的麻烦。 
首先抛开入侵者的攻击不谈，仅仅管理员在执行正常的操作时，超级权限就带来了不少的问题。一旦使用超级用户登录，管理员在作各种操作的时候必须慎之又慎。系统中的很多动作是不可逆的，一旦管理员因为人为失误做出不当的操作，往往会造成不可挽回的损失。特别在关键的业务服务器系统上经常会出现这种类似的损失惨重的失误，我们经常能够在媒体上看到相关的一些报道。据统计，管理员的人为失误是对整个网络系统最大的安全威胁之一。实际上有一些操作是远远不需要超级用户的权限就能够完成的，但是绝大多数的人还是会选择采用超级用户的账户进行登录，究其原因，恐怕最根本的就是为了图方便，从而酿成大错。 
其次，在操作系统中设置超级用户有其不合理的一面。一般来说，管理员的职责是维护系统的正常运行，建立和维护各种账户，对资源的访问权限进行分配等等，他们一般不应该具有读取甚至修改、删除某些存放在服务器上的机密信息的权利。但是在现实中，具有超级用户的权限者就能够任意地对这些数据进行处理，即使经过加密的数据他们也能够轻而易举地破坏甚至删除。这是不合乎正常的安全策略的，需要通过某种措施进行控制。 
最后，在入侵者的世界里，恐怕再没有获取一个新的重要系统的超级用户的身份更加美好的事情了。几乎所有的攻击手段的终极目标就是要获得被攻击系统的完全控制权，而这一切基本上同于获得系统的超级用户的账户名称和密码。口令破解、堆栈溢出、网络窃听…等等，目的无不于此。一旦获得超级用户的权限，入侵者不仅仅能够完成上面所说的一系列行为，而且还能够任意地切换到其他人的身份，甚至不需要任何密码验证；能够随意地抹去对自己动作的一切审计记录，让审计人员无据可查。当然，超级用户的存在同样也使网络安全人员陷入了一种尴尬的境地。不管采用的防火墙是如何的牢不可破、IDS是如何地明察秋毫、加密算法是如何的先进，只要入侵者获得了超级用户的权限，这一切都形同虚设。
为了对于上述的种种情况，主机入侵防御系统在操作系统的层次对超级用户的特权进行了再分配，并且将所有的用户都同等对待，使得系统中不再有超级用户的概念存在。经过分权后，每一个管理员自能够在自己的职责范围内工作，而不具备其它的特权。比如安全管理员能够对资源进行许可的分配，但是不能够随意删除日志；安全审计员的职责就是分析日志，发现所有用户的可疑行为，但是却不具备其它所有的系统权利。这样就好像给一个保险箱加了三把锁一样，仅仅拿到一把钥匙是没有办法获得保险箱里面的东西的。为了用户能够按照自己的意愿进行分权，主机入侵防御系统还提供了权限分配（task delegation）的接口，以供更加细化的配置，让普通的用户具有某些超级用户才能够执行的权利。经过权力分配和细化后，可以大幅度避免管理员的人为误操作，并且防止入侵者一旦获得一个账户的所有权后就能够横行无阻的状况发生。 
为了更加细致准确地跟踪系统上的活动，主机入侵防御系统提供了根据原始登录ID进行审计的功能。也就是说不论登录者后来通过su切换到哪一个登录ID号，在日志中始终以其原始的登录ID进行活动的跟踪和记录，而且入侵者即使获得了root的口令也无法对日志进行破坏。另外，主机入侵防御系统将ID的使用权限也作为一种资源进行管理，也就是说如果一个账号需要su到另外一个账号，必须经过主机入侵防御系统的授权，否则就不能成功。哪怕是root用户想要su到其它账户也是如此。这样就大大降低了通过切换 ID实现的假冒攻击行为。 
主机入侵防御系统基于稳固的安全体系和全新的安全设计理念，具有稳固的运行特性和强大的安全性，为各种 UNIX平台以及Windows服务器平台提供了极大的安全保障，并且同大型机的安全机制兼容。该系统是对关键服务器资源进行重点保护的重要安全工具，正在越来越受到用户的重视。
当然，主机入侵防御系统提供的保护措施主要是集中在对服务器资源和行为的保护，不能替代所有的安全产品。防火墙、防病毒、网络入侵检测系统、VPN等都是对主机入侵防御系统的有益补充。只有将关键服务器的保护和整体的网络架构保护合理地结合在一起，才能够为我们的网络空间提供最为完善的保障。针对当前的病毒、蠕虫、入侵等种种威胁构成的混合型威胁，主机入侵防御系统无疑会给我们的关键资源提供更加主动的防御方式。
与传统防火墙区别
区别所谓hips(主机入侵防御体系)，也就是现在大家所说的系统防火墙，它有别于传统意义上的网络防火墙nips.
二者虽然都是防火墙，但是在功能上其实还是有很大差别的：传统的nips网络防火墙说白了就是只有在你使用网络的时候能够用上，通过特定的tcp/ip协议来限定用户访问某一ip地址，或者也可以限制互联网用户访问个人用户和服务器终端，在不联网的情况下是没有什么用处的；而hips系统防火墙就是限制诸如a进程调用b进程，或者禁止更改或者添加注册表文件--打个比方说，也就是当某进程或者程序试图偷偷运行的时候总是会调用系统的一些其他的资源，这个行为就会被hips检测到然后弹出警告询问用户是否允许运行，用户根据自己的经验来判断该行为是否正确安全，是则放行允许运行，否就不使之运行，一般来说，在用户拥有足够进程相关方面知识的情况下，装上一个hips软件能非常有效的防止木马或者病毒的偷偷运行，这样对于个人用户来说，中毒插马的可能性就基本上很低很低了.但是，只是装上个hips也不是最安全的，毕竟--用户穿上的只是个全透明防弹衣也还是会被某些别有用心的人偷窥去用户的个人隐私的，所以，选用一款功能强大而小巧的防火墙也是很重要的--起码有防止DDOS攻击和防arp欺骗攻击功能(对内网用户尤为重要)！对比上面是对hips和防火墙作个区别，因为杀软和这两类软件差别比较大，就不拿到这里来说了，下面我具体介绍一下hips以及常见的几款hips安全软件，希望对各位有所裨益！
我们个人用的HIPS可以分为3D：
AD(Application Defend)应用程序防御体系
RD(Registry Defend)注册表防御体系
FD(File Defend)文件防御体系
它通过可定制的规则对本地的运行程序、注册表的读写操作、以及文件读写操作进行判断并允许或禁止。
常用的HIPS软件有：
SNS(Safe'n'Sec Personal)--AD+FD+RD，
SSM(System Safety Monitor)，
PG(ProcessGuard和Port Explorer)--AD+RD，
GSS(Ghost Security Suite)--AD+RD，
SS(SafeSystem 2006)--FD.
EQSecure(国产的E盾)--AD+FD+RD
其实我觉得这些hips软件在功能上也大多差不多，更多的我们其实也就是比较一下谁的生命力更顽强(不容易被其他进程干掉)，谁更适合国人所需，谁更简单易操作，下面我就这些方面做个相对比较简单的介绍吧！介绍首先是SSM(System Safety Monitor） --因为我比较喜欢这款： 商业版免费版 注册表监视： 高级 基本过程监视： 高级 基本底层磁盘访问控制：有 无底层键盘访问控制： 有 无 NT服务监视： 高级 基本 IE设置跟踪：高级 基本用户程序友好对话： 有 无优先支持： 高 低开发优先： 高 低 Win9x支持： 无 有
SSM在声誉上面是相当不错的，而且也相对很稳定--虽然能被ICEword干掉，不过其他的hips类好像也都是能被干掉的，这个不是重点，因为在冰刃要干掉他们之前，hips软件已经会报警询问是否允许该项操作，虽然说确了个FD功能，不过我觉得对个人用户来说已经相当足够，起码我已经有半年时间未中毒插马了--当然，如果你还是不放心，再装上个SS补足3D功能也是可以的，最关键的是SSM商业版已经被成功破解了(该软件有简体中文版)，唯一觉得不爽的可能就是早期使用比较繁琐，毕竟什么东西的运行都要选择允许还是禁止也是一件头疼事，所以一般在刚装上的时候，我个人建议还是先全部运行一遍所有的你要经常用到的东西就可以了，占用资源也还可以，一般是一个进程10M左右，cpu基本没感觉.我给SSM打90分
其次是SNS(Safe'n'Sec Personal) --他是唯一3D的哦，它建立在行为分析的基础上，有最先进的预先侦查系统，可以防止病毒渗透计算机，破坏信息，对计算机多了一层保护，在计算机保护方面实现重大突破。同时，快速安装，易于操作的界面，和反病毒软件和个人防火墙极好的兼容性，智能的决策技术，最强的保护和对系统运行的最小影响等特点更增加了Safe'n'sec的魅力--汗，这个是官方介绍，我自己觉得是相当的牛了，不过我自己还没有用过--这是全英文版本英语太菜，而且没有破解(专业加密公司出品，想破解难度好大的)，在网上看过测评，据说是比GSS+SS还要牛的.我给SNS打95分
再下来就是GSS(Ghost Security Suite) ，其实用的时间并不是很长，可能没有多大发言权，不过我个人不是很喜欢这款，因为貌似不太稳定，在运行大型游戏的时候，似乎CPU容易飙升，这个不少人如此，不知道是不是此软件本来就是如此，但是GSS还是相当不错的--简单明了，有自己的操作模式，不如SSM来的细致繁琐，但是也是相当安全，特别是在配合SS使用之下.不过最不爽的是容易被任务管理器干掉，我昏，而且长时间没有更新了，不知道搞什么！不过话说回来，现在网路广泛流传的GSS亚尔迪破解版还是很不错的.我给GSS打88分，GSS+SS打92分
最后简单说下PG和SS，SS规则完善但不够稳定，PG简单稳定，大致上PG感觉和SSM以及GSS差不多，就看用户个人喜好了~~~
最后还提一款hips软件--Winpooch(因为没有用过，所以就只能借用别人的话来说了)，相对GSS而言，无疑，GSS的稳定性比Winpooch略强，但是GSS的规则添加到500条左右的时候就会变得很慢，而且GSS只能监控注册表，但是，Winpooch不只可以监控注册表，还可以监控文件的读取、写入，还可以监控网络连接，而且目前Winpooch已经有600多条规则了，对系统的影响还是很小，软件推荐给你了，好不好用还得你自己测试才最实际。
用了hips软件，基本上，杀软可以卸载了，呵呵，但是防火墙还是一定得要的. 至于每款软件的具体教程，网上有很多，我这里也就不一一赘述了，感兴趣的人，我们倒是可以一起探讨，呵呵！另外说句，这类hips软件和杀软以及防火墙的选用一样，没有所谓的最好，只有对你个人而言的更好，所以，怎么选择，全看你自己。