本节书摘来自异步社区《CCNP安全Secure 642-637认证考试指南》一书中的第2章,第2.2节安全漏洞,作者【美】Sean Wilkins , Trey Smith,更多章节内容可以访问云栖社区“异步社区”公众号查看
2.2 安全漏洞
CCNP安全Secure 642-637认证考试指南
在学习各种网络攻击之前,请读者首先了解以下事实:无论计算机的先进程度如何,它都是一台根据预定义指令集运行的机器。操作系统与软件包均为经过编译的指令集,计算机通过指令集将输入转换为输出。计算机本身无法区分授权输入与未授权输入,这项工作只能由特定的过滤软件和检测引擎完成。漏洞(vulnerability)是软件包中存在的缺陷,这种缺陷会导致非法的软件修改或系统接入。攻击者经常利用安全漏洞入侵网络或计算机,我们将在“安全威胁”一节对此作详细介绍。对基于TCP/IP协议的计算机而言,攻击者可以连接到65535个可用端口中的任何一个。随着软硬件技术的不断发展,网络攻击的种类也在不断增加,攻击者时刻都在寻找潜在的安全漏洞。有鉴于此,大部分软件厂商都会在发现安全漏洞之后发布相应的补丁程序。
2.2.1 网络自身原因造成的安全漏洞
一般而言,计算机网络既储存公共数据,也储存私有数据。一套有效的安全机制不仅能保护所有数据的安全,也给予外部实体访问某些数据的权限,但访客无法对这些数据进行操作(例如,用户可以浏览企业网站,但无法修改网站的内容)。而工资信息等私有数据不应对外界开放,必须确保只有企业或组织内部的特定用户才能接触到这些信息。实施合适的网络安全解决方案既能有效保护企业数据的安全,也可以降低黑客入侵的风险,还能确保系统按既定的设计要求运行。对向公众开放的网络而言,必须采取相应的安全措施以保证信息的机密性、完整性与可用性。此外,部署合适的安全解决方案还能避免攻击者将网络资源作为入侵其他网络的跳板。
导致网络遭到攻击的主要原因包括:
缺乏有效的网络安全策略;
网络配置存在问题;
技术存在缺陷。
1.缺乏有效的网络安全策略
网络安全策略为管理员与工程师提供了一套完备的通信指导机制,它是所有安全解决方案的基础。但是,不少因素都会导致安全策略存在缺陷,下面列出了常见的一些因素。
争斗倾轧:企业或组织内部的争斗倾轧可能导致安全策略缺乏连续性,甚至根本无法形成统一的安全策略。请注意,安全策略面前应做到人人平等。如果安全策略不能约束所有人,它就失去了存在的意义。
缺乏成文的安全策略:缺乏成文的安全策略与没有安全策略并无二致。为避免在实施安全策略的过程中出现混乱,应制定一份书面的安全策略并公之于众。条件允许的话,应在企业或组织内部开展深入的安全培训。
缺乏连续性:如果企业或组织内部的人事变动过于频繁,员工对安全策略的执行将大打折扣。例如,当一名系统管理员离职时,他使用过的所有密码都要更换。如果该管理员的职位频繁变动,员工自然对更改密码比较抵触。因为他们知道,当新的管理员开始工作时,密码又要更换。
缺乏灾难恢复计划:一份完备的灾难恢复计划必须同时考虑物理与虚拟两个方面的安全突发事件。如果没有制定相应的灾难恢复计划,则事故发生之后的混乱可能会妨碍调查和取证工作。
缺乏补丁管理:安全策略中应包括对软硬件进行定期升级的规定。制定详细的实施规程可以确保升级时不会遗漏安全。
缺乏监控:如果不对所有可用设备的日志进行监控,企业或组织将无法在第一时间对网络攻击做出响应。设备日志记录了从简单操作到安全漏洞在内的各种事件,管理员必须认真监控设备日志,以便及时做出响应。
缺乏正确的访问控制:糟糕的访问控制机制会在一定程度上降低攻击者入侵网络的难度。密码长度过短、密码长期不变、将密码记在便条上并贴在显示器上、与其他用户共享密码等行为都可能危害网络的安全。应对员工进行深入的安全培训,以最大限度降低这种风险。
上述这些漏洞促使Cisco开发了SAFE架构,遵循该架构提出的建议对于保证网络的安全至关重要。早期的网络设计人员将主要精力放在如何实现各种功能上,安全问题并没有引起足够的重视。而今天的网络环境与过去已大不相同,严峻的安全形势使得在设计阶段就必须将安全问题考虑在内。
2.网络配置存在问题
网络设备日趋复杂化对管理员的系统配置水平提出了更高的要求,这一点在小型企业中尤为突出,因为一名管理员可能负责局域网、广域网、服务器、工作站等所有组件和设备的运维工作。企业或组织应考虑制订一套标准化的配置方针并严格加以执行,以减少网络与系统配置中可能出现的问题。配置方面的缺陷大致可以归为以下几类。
关键
设备配置不当:无论是缺乏对系统的了解还是不注重细节,任何一个不起眼的配置错误都可能对安全造成严重威胁。最容易出现配置错误的设置包括防火墙设置、访问列表、入侵防御系统(IPS)与入侵检测系统(IDS)规则、简单网络管理协议(SNMP)设置以及路由协议。
密码强度不高或密码外泄:密码过短、容易猜出、由常用词汇构成都会降低密码的安全性,从而危害到企业资源、网络与数据的安全。高强度密码必须由至少8个字母(区分大小写)、数字以及特殊字符构成。此外,未更改管理员账户的默认密码将造成极大的安全隐患。虽然密码过于简单无法达到保护网络的目的,但是密码过于复杂同样不利于网络安全。为记忆这些复杂的密码,用户往往将密码写在便条上并贴到显示器上,这实际上抵消了设置密码的意义。“个性化车牌法”是创建与记忆密码时常用的一种方法:首先选择一个单词或词组,并将其转换为个性化车牌中的字符,然后改变一两个字母的大小写,再用数字替代其中几个字母。我们通过下面的例子加以说明。弗吉尼亚州一辆本田车主的车牌号码是IH8 MAYO,显然,这位车主对蛋黄酱并不感冒1。如果在车牌号码中插入下划线和惊叹号,则可以得到如下密码:IH8_Mayo!。通过这种方法创建的密码既不花哨,也不难记。此外,如果多个用户共享一个账户密码,则无法精确跟踪每个用户的具体行为,这也可能影响到系统和网络的安全。
互联网服务配置不当:HTTP、FTP、Telnet等一些服务的安全性较差。管理员应准确了解所需以及正在运行的互联网服务,确保它们不会对网络安全构成威胁。
不更改默认设置:默认设置通常在设备配置与生产环境中使用,最常见的一种默认设置是默认密码(或不存在默认密码)。下面列出了默认设置的一些例子。
在初始配置阶段,无法限制通过Telnet登录Cisco路由器。这种情况下,必须确保只有来自授权源地址(管理网络)的用户才能登录路由器。
Cisco Linksys系列路由器的默认密码为“admin”,无线设备的默认SSID为“linksys”。虽然保持默认设置不变有助于简化设备的配置和访问,但也会为攻击者大开方便之门。
上述两种默认设置可能危害到网络的安全,因此,管理员应避免在生产环境中使用默认设置。
3.技术存在缺陷
每种技术都有其固有的缺陷,这些缺陷存在于操作系统、协议或网络设备中。接下来,我们将详细讨论这些技术缺陷。
关键
操作系统缺陷:我们在“安全漏洞”一节中已经介绍过这种缺陷。操作系统是一种复杂的编码指令集,计算机必须依赖操作系统才能运行。如果攻击者利用操作系统自身的漏洞向系统注入恶意指令,则可能影响操作系统的正常运行。企业或组织需要耗费大量的时间和精力寻找并修补操作系统存在的安全漏洞。某些操作系统的安全性较高,这对黑客、骇客以及脚本小子具有特殊的吸引力。操作系统开发人员将大量资源投入到寻找安全漏洞的工作中,并及时发布软件补丁以解决可能存在的问题。不少厂商都有补丁与更新的自动发布机制,如Windows Update、Linux up2date、Fedora YUM以及Debian apt-get。目前,企业内部可以通过这些自动发布机制在第一时间对操作系统进行更新,以确保网络能及时应对形形色色的安全威胁。但是从另一方面讲,某些已经或即将发布的安全补丁并没有经过严格的前期测试,系统在安装这些补丁之后反而会出现问题。有鉴于此,应在安全策略中规定,仅为操作系统安装经过全面测试的补丁与更新。
协议缺陷:某些协议集(如TCP/IP)的安全性不高。下面列出了协议存在的几种安全缺陷。
如前所述,某些特定厂商会吸引黑客更多的注意力。Microsoft在这方面已成为众矢之的,Windows操作系统、Windows产品以及Microsoft网络均存在大量已知的安全漏洞。常见的一种方法是通过外围防火墙隔断所有Microsoft网络使用的端口,以降低安全漏洞造成的危害。
TCP/IP协议集由ICMP、UDP、TCP等协议构成,它存在某些固有的安全缺陷。例如,攻击者可以在用户不知情的情况下拦截并修改IP数据包的头部和尾部。此外,攻击者通常利用ICMP数据包实施拒绝服务攻击(DoS attack),“网络攻击类型”一节将对这种攻击进行介绍。
早期的路由协议将注意力放在如何实现各种功能与通信特性上,而对安全问题重视不够。一旦攻击者向路由协议内注入错误的信息,就可能导致网络瘫痪。随着人们越来越重视网络安全,路由协议的安全性也在逐步提高。
应用缺陷:许多应用在开发时并没有考虑安全问题,这可能是因为缺乏编程经验,也可能是因为开发时间有限。由于应用开发必须首先保证实现既定的功能,因此安全有时难免沦为陪太子读书的角色。开发人员通常会在确定安全漏洞之后发布相应的服务包、更新和补丁。不过随着技术的发展,安全问题越来越受到人们的重视,目前的应用在开发阶段就会集成相应的安全技术。开发时间有限是影响应用安全的另一个因素。激烈的市场竞争迫使软件公司不得不缩短产品的开发周期,导致投放市场的应用没有经过严格的测试。这种情况下,产品测试可能不得不边发布边进行。
网络设备缺陷:虽然厂商都力图将最好的设备提供给用户,但是任何复杂的系统都难免存在设计和配置方面的错误或漏洞。需要注意的是,所有系统都有其各自的优点与不足。例如,设备在处理某种应用、流量或协议时可能较为高效与安全,而在处理另一种应用、流量或协议时则不太得心应手。管理员必须明确所要支持的流量类型,并确保在合适的位置部署合适的设备。为保证系统实现既定的功能,系统测试同样必不可少。如果管理员对设备的优点与不足了如指掌,则可以通过正确的部署和配置克服这些不足。
4.安全威胁
潜在的安全威胁可以被大致划分为以下两类,不过入侵者的动机却不限于这两类,下一节将对此进行详细介绍。
关键
结构化威胁:个人或群体针对特定目标有计划、有组织的攻击行为。由于结构化威胁的组织性和目的性很强,它对网络安全的危害也最大。
非结构化威胁:用户对互联网进行扫描以寻找攻击目标的行为,它是目前最常见的一种安全威胁。网上有不少扫描文件或脚本可供下载,攻击者可以利用它们搜索目标主机或网络的安全漏洞。发现漏洞之后,攻击者也可能采用其他方式实施攻击。
1 IH8 MAYO意为“I hate mayonnaise”,即“我讨厌蛋黄酱”。——译者注