本节书摘来自异步社区《网络安全体系结构》一书中的第1章,第1.1节,作者【美】Sean Convery,更多章节内容可以访问云栖社区“异步社区”公众号查看
1.1 网络安全是一个系统
网络安全体系结构
网络安全是一个系统。它不是防火墙,不是入侵检测,不是虚拟专用网,也不是认证、授权以及审计(AAA)。安全不是Cisco公司及其任何合作伙伴或竞争对手能够卖给你的任何东西。尽管这些产品与技术在其中扮演了重要角色,但是网络安全的概念更为宽泛。所有网络安全都起始于安全策略,这已经几乎成为了行业标准。此后,它还涵盖了必须遵循这些安全策略的人,以及必须实施这些策略的人。于是,它最终会使当前的网络基础设施发生变化。
我们来回忆一下始于2001年、并且没有任何减慢迹象的网络蠕虫爆发。网络蠕虫的问题可以追溯到1988年的Robert Morris Internet蠕虫,当年这些蠕虫曾经造成了巨大的损失。例如红色代码在它出现的24小时内就感染了超过34万台主机(来源:http://www.caida.org)。由于被感染的主机中,大多数正在受到防火墙的保护,因此这个情况尤其值得重视。不幸的是,大部分防火墙不会进行深度数据包检测,即使这些防火墙具备这个功能,它们也不知道碰上红色代码时要检测什么内容。当时,防火墙只能简单地识别出数据包的目的端口号是80,因此允许它们通过。鉴于内部网络往往没有部署任何网络安全控制技术,因此一旦红色代码进入内部网络,就可以轻易感染整个内部网络。红色代码带来的不良影响可以通过一个系统得到缓解,但依靠一台防火墙是无能为力的。
那么对于网络安全来说什么是系统呢?网络安全系统可以从广义上定义为:
通过相互协作的方式为信息资产提供安全保障的全体网络设备、技术以及最佳做法的集合。
上述定义中的关键词是协作_。实施基本路由器访问控制列表(ACL)、状态化防火墙ACL和基于主机的防火墙ACL能实现许多基本的访问控制,但这些称不上是一个系统。对于一个真正的网络安全系统,必须是将可以协同运作的技术应用于一种特定的威胁模式。信息安全产业中的某些人将其称为“纵深防御”。有一种实用的方法可以判断系统质量优劣,这种方法是拆分各类缓解威胁技术的数量与组成,这些技术包括保护、检测、阻止、恢复和传输。这种评价方法在网络安全系统发展早期阶段是有用的。在进入到实施阶段之后,则必须更进一步。最简单方法是逆向思维,也就是想想怎么通过自己部署的系统来缓解不同类型的网络威胁。
为了举例说清这个问题,让我们回到刚才讨论的端口80的蠕虫问题。有哪些系统元素能够缓解HTTP蠕虫对公共Web服务器制造的威胁呢?下述列表对这些系统元素进行了总结,这些内容将在第3章中进行具体的介绍。
如果对防火墙进行适当的配置,它可以防止一台遭到入侵的Web服务器继续感染不同网络中的其他系统。
私有VLAN(PVLAN,不是通常的VLAN,在第6章中会进行具体介绍)有助于防止Web服务器感染同一个网络中的其他系统。
网络IDS(NIDS)可以检测和阻止对Web服务器的感染企图。
主机IDS(HIDS)能够执行与NIDS一样的功能,但它们比后者更接近主机,这也就意味着它们能够读取更多与特定攻击有关的内容数据。
更新特征数据库可以使防病毒软件具备检测特定蠕虫和其他恶意代码的功能。
最后,虽然优秀系统管理员(sysadmin)的操作不是本书的重点,但是有许多操作行为(例如及时打补丁、定期漏洞扫描、为操作系统设置密码锁定,以及实施Web服务器最佳做法)确实能够在防止系统威胁中起到重要作用。
上面所有系统元素的协同工作可以起到缓解威胁的作用。尽管其中的任何一项技术都无法100%有效地防止基于HTTP的蠕虫攻击,但是基本的数学概率表明,针对特定威胁部署的协同技术越多,压制威胁的可能性也就越大。
如果网络遭受的是已知攻击而不是未知攻击时,那么测试网络安全系统是否完善就显得意义不大。虽然脚本小子(script kiddie)缺乏创造力,因此他们进行的攻击是可以进行预判的,但那些具有明确目的与技术的攻击者则可能拥有一些隐蔽的独特技术。
在过去的安全事件中,一定有一些给你留下过深刻的印象,比如1988年的莫里斯蠕虫、后门(root kit)、20世纪90年代的IP欺骗(第3章将进行详细介绍)、2000年的分布式拒绝服务攻击(Distributed Denial of Service,DDoS)、2001年的HTTP蠕虫或2003年的蠕虫王(SQL Slammer)和冲击波(MS Blaster)蠕虫。只要你的系统遭到了该攻击的感染,你就可以轻松地指出该系统在安全性方面的不足。正是通过这种“吃一堑长一智”的学习过程,许多表面上不起眼的安全问题才会猛然凸显出来。
亡羊补牢的学习方式是不可避免的,但是通过设计,可以使安全系统有能力抵御大量不同类型的攻击,而不是只能防御一些特定的攻击方式,这样的设计方式可以将损失降到最低。实际上,衡量安全系统是否成功的方法之一就是计算你为了应付最新威胁而不得不进行重要修改的次数。在理想情况下,必须修改系统的频率应该非常低。
网络安全是一个系统。如果你在读完本书之后什么都没有记住,这无疑说明我的写作是失败的。但是哪怕你能记得一丁点内容,我希望这就是前面这个简单的句子。