底层管理程序和虚拟机
如果RBAC和TE事实证明太难以使用不能很好地在操作系统层区分安全破坏,底层管理程序和虚拟机(vm)可能在一个更高层次实现这个目标,我们已经熟悉虚拟机处于两个不同的上下文中:运行时虚拟环境(就象那些使用java的程序)和虚拟平台(如Vmware、plex86和 VirtualPC,它运行你在一个虚拟的硬件环境中运行整个操作系统)。
java虚拟机被设计成有特殊的安全特征,最值得注意的就是java沙箱,通常,java安全来自于java小程序运行时与真实的操作系统资源是隔开的,每一个事情都是通过java虚拟机完成的,除了一个好的安全模型之外,对于程序员和最终用户在使用上也相对简单安全些,正是因为这些原因 java已经受到普遍应用。
底层管理程序隔离运行在相同硬件上的虚拟机,限制它们交互和防止安全破坏,IBM已经为底层管理程序创建了一个叫做sHype的安全架构,一个开源的底层管理程序/虚拟机项目—叫做Xen—到现在也是可用的了。
底层管理程序的目的是为了防止一个虚拟机与其他运行在同一硬件上的虚拟机发生冲突,例如:独占共享资源,有一些智能管理系统在这个层次已经做得很强大了,或许还有一些潜在的隐患,至少,增加了传统的入侵检测系统(IDS)检查系统泄密的复杂性。
强制访问控制和底层管理程序/虚拟机不是相互排斥的,一方面,我的主张是,强化朋友和伙伴对安全分析的重视,底层管理程序比MAC在linux 安全未来的发展更具有潜力,但是另一方面,这两者可以结合起来使用,设想一下一个大型的、强大的服务器系统运行几个由底层管理程序控制的虚拟机的情景,一个VM能运行在一个通用的操作系统上,如linux,提供web服务,另一个VM为敏感信息提供数据库服务,它们都能运行在一个基于MAC的操作系统上,如SELinux,两个VM都能从强制安全控制受益,使用SELinux能提供一层额外的安全保护。
基于异常的入侵检测和防病毒系统
如MAC和底层管理程序目前已经生根发芽了,但是将来可能还会出现更大的影响力的技术:如基于异常的入侵检测系统。基于不规则的IDS很简单:它包括创建一个正常网络或系统活动的基线,以及在任何突发意外或有反常活动被检查到时发送警告。
基于特征的系统的致命弱点是如果攻击方式是最新的,那么在你的IDS的特征数据库中就要有与之对应的特征,如果没有就检测不到。
使用基于异常的IDS,与之相反,任何新的攻击方式只要不是正常行为都能被检查到,IDS管理员必须训练和周期地重新训练IDS系统,目的是创建一个正常行为的基线,这会导致一段时间内频繁地出现虚报现象,直到这个基线被调试好为止。
1999年我出席了由Marcus Ranum主持的一个讲座,他提到了基于异常的系统是IDS未来的发展方向,象这样的产品已经可用,如来自Lancope和Arbor Network的产品,但是我仍然希望有人能想出如何才能开发出便宜的易用的东西,这可能导致一类网络底层管理程序增加同样的智能到网络上,无论是虚拟还是真实机器的构成,底层管理需都要借用虚拟平台。
顺便说一下,病毒扫描程序也需要从异常检测技术(如IDS一样)受益,这个观点现在已经被大多数病毒扫描程序证实,它们主要依赖于病毒特征的匹配,尽管如此还是要遭受大量的病毒/木马/蠕虫的爆发,目前基于病毒特征匹配的杀毒工具很明显基本上没什么效果了。
结论
前面这些就是我想到的linux安全的未来,同时,继续保持使用这个专栏中提到的技术:防火墙、病毒扫描程序、自动补丁/升级工具、VPN和特殊应用程序安全控制如chroot以及审核跟踪。
那么,再见了,本专栏的文章全部结束,我将集中精力在其他新鲜事物上,我将继续我安全编辑的角色,将一如既往地支持Linux journal,给大家带来一些安全领域的内容。
声明:LUPA开源社区刊登此文只为传递信息,并不表示赞同或者反对。


