关于网络漏洞,还没有一个全面、准确统一的定义。一般可以理解为在
硬件、
软件和
协议等的具体实现或系统
安全策略上存在的缺陷,从而可以使攻击者能够在未授权的情况下访问或破坏系统。通俗描述性定义是存在于
计算机网络系统中的、可能对系统中的组成和数据等造成损害的一切因素。具体举例来说:比如在IntelPentium芯片中存在的
逻辑错误,在Sendmail早期版本中的编程错误,在
NFS协议中认证方式上的弱点,在Unix
系统管理员设置匿名
Ftp服务时配置不当的问题都可能被攻击者使用,威胁到系统的安全。这些都可以认为是系统中存在的
安全漏洞。
简介
关于网络漏洞,还没有一个准确统一的定义。有学者从
访问控制的角度出发,认为:当对系统的各种操作与系统的安全策略发生冲突时,就产生了
安全漏洞。
也有专家认为:
计算机系统是由若干描述实体配置的当前状态所组成,可分为授权状态和非授权状态、易受攻击状态和不易受攻击状态,漏洞就是状态转变过程中能导致系统受损的易受攻击状态的特征。
以上两种观点,都是从各自的专业角度对网络漏洞进行描述,并没有给出一个全面的准确的定义。
相关特性
网络漏洞会影响到很大范围的软硬件设备,包括作系统本身及其
支撑软件,网络客户和
服务器软件,网络
路由器和安全
防火墙等。换而言之,在这些不同的软硬件设备中都可能存在不同的
安全漏洞问题。在不同种类的软、硬件设备,同种设备的不同版本之间,由不同设备构成的不同系统之间,以及同种系统在不同的设置条件下,都会存在各自不同的安全漏洞问题。
漏洞问题是与时间紧密相关的。一个系统从发布的那一天起,随着用户的深入使用,系统中存在的漏洞会被不断暴露出来,这些早先被发现的漏洞也会不断被系统供应商发布的补丁软件修补,或在以后发布的新版系统中得以纠正。而在新版系统纠正了旧版本中具有漏洞的同时,也会引入一些新的漏洞和错误。因而随着时间的推移,旧的漏洞会不断消失,新的漏洞会不断出现。漏洞问题也会长期存在。
因而脱离具体的时间和具体的系统环境来讨论漏洞问题是毫无意义的。只能针对目标系统的操作系统版本、其上运行的
软件版本以及服务运行设置等实际环境来具体谈论其中可能存在的
漏洞及其可行的解决办法。
同时应该看到,对漏洞问题的研究必须要跟踪当前最新的计算机系统及其安全问题的最新发展动态。这一点如同对
计算机病毒发展问题的研究相似。如果在工作中不能保持对新技术的跟踪,就没有谈论
系统安全漏洞问题的发言权,即使是以前所作的工作也会逐渐失去价值。
相关关系
计算机系统安全的分级标准一般都是依据“橘皮书”中的定义。橘皮书正式名称是“受信任计算机系统评量基准”(Trusted ComputerSystem EvaluationCriteria)。
橘皮书中对
可信任系统的定义是这样的:一个由完整的
硬件及
软件所组成的系统,在不违反访问
权限的情况下,它能同时服务于不限定个数的用户,并处理从一般机密到最高机密等不同范围的信息。
橘皮书将一个计算机系统可接受的信任程度加以分级,凡符合某些安全条件、基准规则的系统即可归类为某种安全等级。橘皮书将计算机系统的安全性能由高而低划分为A、B、C、D四大等级。其中:
D级——最低保护(Minimal Protection),凡没有通过其他安全等级测试项目的系统即属于该级,如
Dos,
Windows个人计算机系统。
C级——
自主访问控制(DiscretionaryProtection),该等级的安全特点在于系统的客体(如文件、目录)可由该系统主体(如
系统管理员、用户、应用程序)自主定义访问权。例如:管理员可以决定系统中任意文件的权限。当前
Unix、
Linux、
Windows NT等作系统都为此安全等级。
B级——
强制访问控制(MandatoryProtection),该等级的安全特点在于由系统强制对客体进行安全保护,在该级安全系统中,每个系统客体(如文件、目录等资源)及主体(如系统管理员、用户、应用程序)都有自己的
安全标签(Security Label),系统依据用户的安全等级赋予其对各个对象的访问权限。
A级——可验证访问控制(Verified Protection),而其特点在于该等级的系统拥有正式的分析及数学式方法可完全证明该系统的
安全策略及安全规格的完整性与一致性。 '
可见,根据定义,系统的安全级别越高,理论上该系统也越安全。可以说,系统安全级别是一种理论上的安全保证机制。是指在正常情况下,在某个系统根据理论得以正确实现时,系统应该可以达到的安全程度。
系统安全漏洞是指可以用来对系统安全造成危害,系统本身具有的,或设置上存在的缺陷。总之,漏洞是系统在具体实现中的错误。比如在建立安全机制中规划考虑上的缺陷,作系统和其他软件编程中的错误,以及在使用该系统提供的安全机制时人为的配置错误等。
安全漏洞的出现,是因为人们在对安全机制理论的具体实现中发生了错误,是意外出现的非正常情况。而在一切由人类实现的系统中都会不同程度的存在实现和设置上的各种潜在错误。因而在所有系统中必定存在某些安全漏洞,无论这些漏洞是否已被发现,也无论该系统的理论安全级别如何。
出现
在商业世界,漏洞主要是因为设计和实施中出现错误所致,造成信息完整性、可获得性和保密性受损。错误通常在软件中,也存在于各个信息系统层,从协议规格到设计到物理硬件。网络漏洞还可能是恶意用户或自动
恶意代码故意为之。重要系统或网络中单个漏洞可能会严重破坏一个机构的安全态势。
美国国防部对“漏洞”一词的定义是易受攻击性或“利用信息安全
系统设计、程序、实施或内部控制中的弱点不经授权获得信息或进入信息系统。”这里的关键词是“弱点”。任何系统或网络中的弱点都是可防的。
但是,系统或网络中的弱点表明解决方案是已知的,能够实施的。有许多系统和网络漏洞分析器,包括自动漏洞检测系统和TIGER系统。
网络攻击向量是对某一或多个具体目标实施攻击的明确的路径。自动漏洞检测系统和TIGER系统利用模拟网络攻击分析网络的整个态势,常规失败概率很低。
网络专家利用的其他类似工具有安全管理员网络集成工具(SAINT)和网络映射器(NMAP)——基于漏洞的评估工具,既快又可靠。由于NMAP携带方便、操作简单,
黑客也常常使用。它有用于Linux, UniX和微软Windows平台的多种版本,能轻松扫描包含成百上千个系统和
服务器的巨型网络。SAINT和NMAP能对网络的端口或服务系统进行扫描,显然也能被恶意和非恶意者利用。攻击特征和地址性质决定了新的攻击或攻击向量能躲过大多数漏洞评估工具。
例如,如果端口21——
文件传输协议(FTP)的默认端口正在运行的话,对
网络服务器进行快速漏洞检查能发现潜在的问题。传统的FTP程序不提供
数据加密,
用户认证级别很低,因此传输中相对容易窃取未加密数据。由于用户认证系统功能不强,黑客如果能诱骗系统认为他是FTP
服务器的合法用户,就能进入系统,这就出现了另外一个问题。解决这些漏洞就是应用
加密技术。Secure-shell (SSH)FTP或SFTP通过加密保证数据的完整性和保密性。SFTP利用SSH进行可靠的
数据连接保证远程
文档安全传输。该协议使用端口22,
系统管理员不用传统的FTP服务器,因此不需要使用端口21.令人惊讶的是,当他们运行SFTP时,有几个管理员错误地忘记关掉FTP,这样为黑客留下可利用的后门。
漏洞评估工具是双向的。尽管它们提供管理员评估系统和网络状态非常需要的能力,但这些工具也为恶意黑客提供了扫描能力。任何端口扫面工具能远程刺探
网络服务器,决定哪个端口是对外部开发的。黑客还能发现这些开发的端口是否可以利用。
类型
网络漏洞的种类数不胜数,人们多根据其产生的原因、存在的位置和利用漏洞攻击的原理来进行分类。分类情况可见表:
网络中有许多的漏洞都是由于设计人员和程序员的疏忽或失误及对网络环境的不熟悉造成的。进行网络开发时,许多设计开发者并不重视网络的安全情况,也不完全了解程序的内部工作机理,致使程序不能适应所有的网络环境,造成网络功能与安全策略发生冲突,最终导致漏洞的产生。另有一部分漏洞则是网络用户刻意为之的。网络管理员为了更好地监管和控制网络,往往预留秘密通道,以保证对网络的绝对控制。而部分网络用户或黑客也许会出于好奇而在网络中秘密种下木马、
逻辑炸弹或是
陷门。网络中的漏洞可以存在于硬件和软件中,但更多还是以软件漏洞的形式存在。无论是网络应用软件,还是单机应用软件,都广泛隐藏有漏洞。网络中的聊天软件如QQ,文件传输软件如FlashFXP、CuteFTP,浏览器软件如
IE,单机中的
办公软件如MSWord,这些应用软件中都存在着可导致泄密和招致网络攻击的漏洞。在各种操作系统中也同样存在着大量漏洞,如:Windows系统中存在RPC远程任意代码执行漏洞等,RedHat中存在可通过远程溢出获得
root权限的漏洞等,各种版本的Unix系统中同样存在着大量可导致缓冲器溢出的漏洞等。在Internet中提供服务的各种
服务器中,漏洞存在的情况和招致的危害更是严重。无论是Web服务器、FTP服务器、
邮件服务器,还是
数据库服务器和
流媒体服务器都存在着可导致网络攻击的安全漏洞。脚本语言的设计缺陷和使用不规范,更是令因特网的安全状况雪上加霜。
解析
网络漏洞的广泛存为网络攻击提供了机会,但在一般情况下,普通的网络用户不易受到恶意攻击。相比而言,由于网络服务器在网络中的重要作用,而且其安装的软件和开放的端口更多,也就更容易招致网络攻击。但无论对于接受服务的个人用户还是提供服务的
服务器用户,都不能对网络中的漏洞掉以轻心,必须充分认识网络漏洞的危害,并对利用漏洞发动网络攻击的原理有一定的了解。下面将从网络攻击原理来对网络漏洞进行更深入的分析。
拒绝服务攻击原理
拒绝服务攻击(DoS:Denail ofService)是一种针对
TCP/IP协议漏洞的一种网络攻击手段,其原理是利用DoS工具向目标主机发送海量的数据包,消耗网络的带宽和目标主机的资源,造成目标主机网段阻塞,致使网络或系统负荷过载而停止向用户提供服务。常见的拒绝服务攻击方法有SYNFlood攻击、Smurf、
UDP洪水、Land攻击、死亡之Ping、电子邮件炸弹等。影响最大、危害最深的是分布式DoS攻击。它利用多台已被攻击者控制的计算机对某一台计算机进行攻击,很容易导致被攻击主机系统瘫痪。对DoS攻击的防护措施主要是设置
防火墙,关闭外部
路由器和防火墙的广播地址,利用防火墙过滤掉UDP应答消息和丢弃ICMP包,尽量关闭不必要的TCP/IP服务。
缓冲区溢出攻击原理
简单地说,缓冲区溢出的原因是向一个有限的缓冲区复制了超长的字符串,结果覆盖了相邻的存储单元。这种覆盖往往会导致程序运行的失败,甚至是死机或是系统的重启。另外,黑客利用这样的漏洞可以执行任意的指令,掌握系统的操作权。
缓冲区溢出漏洞广泛存在于应用软件和操作系统中,其危害是非常巨大的,但一直以来并没有引起系统和软件开发者足够的重视。要防止缓冲区溢出攻击,首要的是堵住漏洞的源头,在程序设计和测试时对程序进行缓冲区边界检查和溢出检测。而对于网络管理员,必须做到及时发现漏洞,并对系统进行补丁修补。有条件的话,还应对系统进行定期的升级。
欺骗类攻击的原理
欺骗类攻击主要是利用TCP/IP协议自身的缺陷发动攻击。在网络中,如果使用伪装的身份和地址与被攻击的主机进行通信,向其发送假报文,往往会导致主机出现错误操作,甚至对攻击主机做出信任判断。这时,攻击者可冒充被信任的主机进入系统,并有机会预留后门供以后使用。根据假冒方式的不同,这种攻击可分为:IP欺骗、
DNS欺骗、
电子邮件欺骗、原路由欺骗等。下面以IP欺骗攻击为例分析欺骗攻击的过程。在这种攻击中,发动攻击的计算机使用一个伪装的IP地址向目标计算机主机发送网络请求;当主机收到请求后,会使用系统资源提供网络连接服务,并回复确认信息;但由于IP地址是假的,主机不可能得到回应,这种情况下,主机将会继续重复发送确认信息。尽管操作系统规定了回复的次数和超时的时间,但完成多次回复仍要占用主机资源较长时间,严重降低主机的工作效率。例如WindowsNT系统在缺省回复次数下,从建立连接到资源的释放大约用时190秒。对于解决欺骗类攻击的方法,最好是充分了解主机的系统状况,只启用必用的应用程序和只开放提供服务所用到的端口。
程序错误攻击原理
在网络的主机中存在着许多服务程序错误和网络协议错误。换句话说就是,服务程序和网络协议无法处理所有的网络通信中所面临的问题。人们利用这些错误,故意向主机发送一些错误的数据包。对于主机来说,往往不能正确处理这些数据包,这会导致主机的CPU资源全部被占用或是死机。服务程序存在错误的情况很多,多种操作系统的服务程序都存在。例如WinNT系统中的RPC服务就存在着多种漏洞,其中危害最大的要数RPC接口远程任意代码可执行漏洞,非常流行的冲击波病毒就是利用这个漏洞编制的。对付这类漏洞的方法是尽快安装漏洞的补丁程序,在没有找到补丁之前,应先安装
防火墙,视情况切断主机应用层服务,即禁止从主机的所有端口发出和接收数据包。
后门攻击原理
通常网络攻击者在获得一台主机的控制权后,会在主机上建立后门,以便下一次入侵时使用。后门的种类很多,有登陆后门、服务后门、库后门、口令破解后门等。这些后门多数存在于Unix系统中。建立后门常用的方法是在主机中安装木马程序。攻击者利用欺骗的手段,通过向主机发送电子邮件或是文件,并诱使主机的操作员打开或运行藏有木马程序的邮件或文件;或者是攻击者获得控制权后,自己安装木马程序。对付后门攻击的方法是经常检测系统的程序运行情况,及时发现在运行中的不明程序,并用木马专杀工具进行查杀木马。
但
网络攻击的方法千变万化,尽管可以对网络攻击从原理上进行分类,但在网络攻击的具体实例中,有时又很难简单地将其归于某一类的攻击。例如,利用ping命令向一台
主机发送超过65535的EchoRequest
数据包,目标主机就会因
缓冲区溢出而拒绝继续提供服务,既可以将这种攻击看作是
拒绝服务攻击,也可以视为
缓冲区溢出攻击。正是由于网络漏洞种类繁多,攻击方法也多种多样,很难对
网络攻击的具体实例进行一一分析,所以下面将以DoS攻击为例,对网络攻击的步骤和方法作进一步的介绍。
解析与防护
Dos攻击是
网络攻击中常见的,也是危害比较大的一种,其攻击的手法多样。在
拒绝服务攻击中,利用Windows操作系统中的RPC服务漏洞进行攻击是一种常见的拒绝服务攻击。漏洞存在于Windows系统的DCE-RPC
堆栈中,远程攻击者可以连接TCP135端口,向其发送畸形数据,可导致RPC服务的关闭,进而引起系统停止对新的RPC请求进行响应,产生拒绝服务。由于系统的许多服务都依赖于RPC服务,这就使得系统变得极不稳定,许多正常的操作无法进行,甚至造成系统的频繁重新启动。实现这种攻击的方法较为容易,也不需要太多的专业知识,但造成的危害却不小。一般情况下,攻击者会利用stan、nMap、
X-scan等工具扫描网络中的计算机,获得被攻击
主机的IP地址和相关端口信息,有的攻击者甚至不利用扫描工具,直接猜测一个IP地址发动攻击。获得相应信息后,攻击者会利用dcom.exe程序进行攻击。在DOS状态下,输入dcom.exeIP地址,然后确认。这时攻击主机没有任何提示,但被攻击主机如果存在这一漏洞,将出现一个系统对话框提示svchost.exe
程序错误,继而出现关机对话框,关机消息为Remote ProcedureCal(RPC)服务意外终止,60秒后系统重新启动。这样对方主机只要利用RPC服务,系统就会重新启动,也就无法使用网络资源。
若遭受RPC服务DoS攻击,应首先断开网络并采用手工的防范措施。依次打开计算机“控制面板”—“管理工具”—“
计算机管理”图标,展开管理界面左侧的“服务和应用程序”项中的“服务”选项,从界面右侧找到Remote ProcedureCall(RPC)服务,单击鼠标右键,选择“属性”,打开属性面板,选择其中的“恢复”标签,将失败后计算机反应选项全部改为“不操作”,如图1所示。虽然经过手工设置之后,计算机不再重新启动,但主机的一些正常功能也被破坏,因此还需要给系统打上微软提供的安全补丁才行。
通过对RPC服务DoS攻击的分析,可大体了解
网络攻击的步骤。事实上,尽管网络攻击的方法和原理各不相同,但其发动攻击的步骤是基本一致的,通常都是采用以下4个步骤: (1) 确定攻击目标的位置;
(2)利用公开协议和工具通过
端口扫描、
网络监听收集目标的系统类型、提供的服务等信息;
(3)利用自编入侵程序或公开的工具扫描分析系统的安全漏洞;
(4)针对发现的网络漏洞展开攻击。
一般防护
通过对网络漏洞攻击原理和攻击步骤的分析,可以知道:要防止或减少网络漏洞的攻击,最好的方法是尽力避免
主机端口被扫描和监听,先于攻击者发现网络漏洞,并采取有效措施。提高网络系统安全的方法主要有:
(1)在安装操作系统和应用软件之后及时安装补丁程序,并密切关注国内外著名的安全站点,及时获得最新的网络漏洞信息。在使用网络系统时,要设置和保管好账号、密码和系统中的日志文件,并尽可能的做好备份工作。
(2)及时安装
防火墙,建立安全屏障。防火墙可以尽可能屏蔽内部网络的信息和结构,降低来自外部网络的攻击。对个人用户而言,
个人防火墙还有
探测扫描、攻击,并自动防御和追踪的功能。例如
金山毒霸和
瑞星防火墙就具有扫描网络漏洞的功能,而蓝盾防火墙则设计了自动反扫描的机制,外部的扫描将找不到任何端口。
(3)利用系统工具和专用工具防止
端口扫描。要利用网络漏洞攻击,必须通过
主机开放的端口。因此,黑客常利用Satan、Netbrute、SuperScan等工具进行端口扫描。防止端口扫描的方法:一是在系统中将特定的端口关闭,如利用Win系统中的TCP/IP属性设置功能,在“高级TCP/IP设置”的“选项”面板中,关闭TCP/IP协议使用的端口;二是利用PortMapping等专用软件,对端口进行限制或是转向。
(4)通过加密、
网络分段、划分
虚拟局域网等技术防止
网络监听。
(5)利用密罐技术,使
网络攻击的目标转移到预设的虚假对象,从而保护系统的安全。
随着计算机和网络技术在各个领域的迅速普及与广泛应用,网络漏洞的种类越来越层出不穷。
修补漏洞
步骤一:设置捕获点
企业安全专家可能尝试的方法是,通过启用Wireshark捕获网络中两个不同点,来验证防火墙性能效率。首先,在直通模式设备的非军事区中,开启混合模式,并启动Wireshark进行抓包。这样能获取到所有试图通过网络的未过滤数据包。接着,立即在在防火墙后的某台设备上开启Wireshark。根据实际网络拓扑,可能需要配置一个监控点。在数据获取到一定量后,保存数据并开始分析。
步骤二:检查是否有入侵
对比步骤一中收集的两个数据包,对比依据为
防火墙上设置的过滤规则,检查数据是否存在差异。例如,许多防火墙默认屏蔽所有TCP 23端口的Telnet流量。可以尝试从外部网络发起针对内部网络设备的telnet登录。检查Wireshark获取的数据内容,验证数据包是否有发往防火墙。接下来,需要见证防火墙后的Wireshark数据,通过过滤器塞选Telent流量,如果发现有任何Telnet记录,则说明防火墙配置存在严重问题了。
警觉的安全专家需要时刻意识到上述Telnet测试是最最基本的,对生产环境并不会有任何影响,因为当今最复杂的防火墙已经可以轻松拒绝传统非安全协议,如Telnet和FTP。尽管如此,既然已经着手测试,上述内容是一个不错的开始。所以,通过Wireshark捕捉两台网络设备的数据包后,可以开始着手更深入的包检测方法。
步骤三:限制网络端口
在开启Wireshark一段时间后,停止捕捉并将文件保存为PCAP文件格式。如果两个捕捉点之间有任何互联网信息数据传输,那么数据包的数量将很快达到上千个。
大多数企业需要某种类型的网站展示,主要有两种可能性:业务需要Web服务器,而且服务器通常要开放TCP 80端口。由于通过80端口的HTTP流量无须任何验证,许多攻击者操作HTTP报文作为通过防火墙的方法,并以此窃取重要数据。简单来说。HTTP是大多数防火墙允许通过并直接放行的报文,所以攻击者会将攻击信息捎带在正常的数据报文中,作为获得某些授权的方式。