您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > 网络攻击和防火墙详解
网络攻击和防火墙详解题记接到这个稿约后,笔者感到战战兢兢,因为笔者很清楚,计算机安全就像一个快速进化的野兽,新的威胁不断出现,老的威胁变得过时(但看起来永远不会“死亡”)。而入侵者的手段比较隐秘,不大为外人所知晓,特别是穿越防火墙实施网络犯罪的活动。限于笔者的水平和经验所限,实在难以完美展现入侵真相的全部,因为企业的实际网络环境远比实验环境要复杂,而且防火墙的种类多种多样,既有硬件的,也有软件的,断然不是一篇短短的文章所能包容,但万法归宗,它们的原理是一样的。笔者斗胆写下这篇文章,只希望能起到抛砖引玉的作用,那笔者的目的也就达到了。前言信息和网络安全技术历经十多年的发展,无论在广度,还是在深度上,都有了很大的进步,其中一个重要的研究趋势就是注重攻防结合,追求最大化的动态安全。网络的攻与防,即为矛与盾。然而,与此相关的信息安全方面的文章大多数却是从盾来入手的,也就是说从防御的角度来论述。作为网管员来说,他要学习信息安全知识的话,不仅需要了解防护方面的技术,也需要了解检测和相应环节的技术(就是矛)。无数实践表明,最大的不安全,恰恰就是自以为安全!因为,信息安全具有很强的对抗性,威胁时刻存在,各种各样的安全问题常会掩盖在表面的平静之下。有太多的古训,诸如“隐患险于明火”、“知己知彼,百战不殆”……对于今天的网络信息安全防御依然有借鉴意义。对于实施攻击的黑客手法的洞悉,对于自身脆弱性的意识,都是自身安全的前提。为帮助广大网管员了解网络攻击和防火墙的方方面面,本文作者将从攻防兼备的角度,尽可能将纷繁复杂、是似而非的攻防思路整理清晰,以飨广大网管员。防火墙的基础知识防火墙是由楔和门两类功能部件构成,典型的防火墙包括一外一内两个楔和夹在中间的一个门。楔通常由路由器承担,而门通常由相当简化了操作系统的主机承担。换言之,楔强制内部网络和外部网络之间的通信通过门进行,门则执行安全措施并代理网络服务;门与内外楔之间分别链接一个独立的子网,其中,外楔和门之间的子网可以有一个非军事区,这块可部署对外的网络服务如、ftp、dns等等。内外楔应阻塞不希望船员防火墙的所有网络服务的分组,目前有两类主导性的防火墙:应用代理和分组过滤网关,这同防火墙概念中的门和楔功能部件相对应,但实际上,完善的防火墙需要这两个部件的有机结合,而不是孤立的发挥作用。防火墙一般有两个以上的网卡,一个连到外部(router),另一个是连到内部网络。当打开主机网络转发功能时,两个网卡间的网络通讯能直接通过。当有防火墙时,他好比插在网卡之间,对所有的网络通讯进行控制,示意图如下:││---路由器-----网卡│防火墙│网卡│----------内部网络││防火墙主要通过一个访问控制表来判断的,它的形式一般是一连串的如下规则:1acceptfrom+源地址,端口to+目的地址,端口+采取的动作2deny...........(deny是拒绝)3nat............(nat是地址转换)防火墙在网络层(包括以下的链路层)接收到网络数据包后,就从上面的规则连表一条一条地匹配,如果符合就执行预先安排的动作,如丢弃包等。矛与盾的较量几千年前的孙子兵法就写道:不知彼而知己,一胜一负;不知彼,不知己,每战必殆。我们作为网络管理员,要做到能够检测并预防相应的攻击,就必须了解入侵者的手段,这样,我们才能有针对性的防范。我们知道,盗窃者在开始犯罪之前,必须完成三个基本的步骤:踩点、查点、行动。比如,有一个盗窃团伙决定抢银行的时候,他们会事先花大量时间去收集这家银行的信息,如武装押运车的路线和押送时间,摄像头的位置和范围,出纳员人数,逃跑路线一起其他任何有助于避免发生意外情况的信息。对于网络入侵者而言,也是一样的。他要入侵某个网络,事先也必须收集大量的信息──关于该机构的网络安全情况的各个方面的信息,如果不进行踩点就贸然攻击,这个行为简直就是愚蠢的,就好比径直走进银行开始要钱。只要想查,任何人都可以获取有关你的网络安全情况──其可用信息数量之多往往会超出你的想像!入侵防火墙的第一步就是查找和判断防火墙。然后就是进行攻击防火墙。踩点之直接扫描查找防火墙矛有些防火墙会在简单的端口扫描下原形毕露──防火墙有特定端口在监听──你只需要知道哪些端口应该去扫描,比如,CheckPoint的Firewall-1防火墙在256、257、258号的TCP端口监听,MicrosoftProxyServer2.0防火墙在1080、1745号TCP端口监听……只要知道每个防火墙监听的缺省端口,就可以用端口扫描软件来对特定缺省端口进行扫描来查找防火墙,如使用nmap[S1]程序来扫描:nmap-n-vv-P0-p256,1080,174510.152.1.1-60.254因为大多数防火墙不会对ICMP应答,所以上述命令加上了-P0选项来禁止ICMPping。其他端口扫描软件要视其说明文件来设置禁止ICMPping。不过,如果该机构部署了入侵检测系统(IDS)的话,用这种方式对目标网络执行大范围的扫描,显然有些愚蠢和鲁莽,所以,水平比较高的入侵者不会这样明目张胆的踩点,他们可能使用多种技巧以避免对方的注意,如对Ping探测分组、目标端口、目标地址和源端口进行随机顺序扫描,执行欺骗性源主机执行分布式源扫描等等。盾要彻底防止入侵者对你的网络发起端口扫描这样的探测,很难。但可以通过将防火墙监听着的端口数缩减到正常运行必需的范围,这要查阅相应的用户手册,也就是在防火墙前面的路由器上阻塞这些端口,若这些路由器是ISP管理的话,就得同ISP联系以阻塞这些端口;如果路由器是自己管理的话,以Cisco路由器为例,可以使用ACL规则显式地阻塞刚才提到的端口:access-list101denytcpanyanyeq256log!BlockFirewall-1scansaccess-list101denytcpanyanyeq257log!BlockFirewall-1scansaccess-list101denytcpanyanyeq258log!BlockFirewall-1scansaccess-list101denytcpanyanyeq1080log!BlockSocksscansaccess-list101denytcpanyanyeq1745log!BlockWinsockscans请参考所使用的路由器的文档,以达到阻塞针对这些特定端口的扫描。踩点之路径追踪查找防火墙矛上面已经说过,对目标网络执行大范围的扫描是愚蠢和鲁莽的做法,高明的入侵者经常会采用Traceroute──路径追踪。我们知道,在网络中,信息的传送是通过网中许多段的传输介质和设备(路由器,交换机,服务器,网关等等)从一端到达另一端。每一个连接在Internet上的设备,如主机、路由器、接入服务器等一般情况下都会有一个独立的IP地址。通过Traceroute我们可以知道信息从你的计算机到互联网另一端的主机是走的什么路径。当然每次数据包由某一同样的出发点到达某一同样的目的地走的路径可能会不一样,但基本上来说大部分时候所走的路由是相同的。Traceroute通过发送小的数据包到目的设备直到其返回,来测量其需要多长时间。一条路径上的每个设备Traceroute要测3次。输出结果中包括每次测试的时间(ms)和设备的名称(如有的话)及其IP地址。Traceroute在UNIX/Linux中为traceroute,而在Windows则为tracert。例如在Linux中:lzy@Liuzhiyong:~$sudotraceroute-Imail.sinopec.comtraceroutetomail.sinopec.com(10.1.28.4),30hopsmax,40bytepackets110.152.16.3(10.152.16.3)0.345ms0.338ms*210.152.1.1(10.152.1.1)5.801ms5.668ms5.106ms……12gw1.sinopec.com(10.0.202.1)42.439ms**1310.1.28.4(10.1.28.4)106.813ms**我们从中可以推测,达到mail.sinopec.com前最后一跳(10.0.202.1)是防火墙的可能性非常大。但事实是否如此,还需要进一步判断。如果本地计算机到目标服务器之间的路由器对TTL已过期分组做出响应,那么刚才的例子是没有问题的,但如果路由器和防火墙设置成不返回ICMPTTL已过期分组,那么,做出上述的结论就不够科学,这时能做的就是运行traceroute,查看最后响应的是哪一跳,由此推断是否真正的防火墙,或者至少是路径上开始阻塞路径追踪分组的第一个路由器。例如:110.152.16.3(10.152.16.3)0.345ms0.338ms*210.152.1.1(10.152.1.1)5.801ms5.668ms5.106ms……17atm6.lax2.sinopec.com(10.50.2.1)205.006ms391.682ms18atm8.lax2.sinopec.com(10.50.2.5)226.669ms366.211ms19client-gw.sinopec.com(10.50.3.250)266.223ms!X**……在上述例子中,我们可以看出,ICMP探测分组被阻塞到达目的地之前,client-gw.sinopec.com之后没有响应,就可以知道结论。盾知道了路径追踪是怎么回事后,自然就知道这个盾如何打造:限制尽可能多的防火墙和路由器对TTL已过期分组做出响应,但是,通常有一些路由器是由你的ISP控制,你需要跟他们联系。将边界路由器配置成接受到TTL值为0或1的分组时,不响应以TTLEXPIRED的ICMP消息。当然,也可以在边界路由器上阻塞所有不必要的UDP分组。例如,在Cisco路由器上可以应用如下ACL规策:access-list101denyicmpanyany110!ttl-exceeded查点之攫取旗标查找防火墙矛旗标就是显示应用程序名和版本号,用来宣告自身的存在,防火墙也与此类似。攫取旗标的思路很有用,因为大多数防火墙并不像CheckPoint那样在缺省的端口监听,这时,攫取旗标就可以检测出防火墙。这里有一个例子:C:\DocumentsandSettings\Administrator\nc[S2]-v-n10.152.4.1221(UNKNOWN)[10.152.4.12]21(?)open220SecureGatewayFTPserverready.看到什么了?嗯,再链接到23号端口看看:C:\DocumentsandSettings\Administrator\nc-v-n10.152.4.1223(UNKNOWN)[10.152.4.12]21(?)openEagleSecureGateway.Hostname:还不太肯定这是防火墙吗?那我们继续链接到25号端口看看:C:\DocumentsandSettings\Administrator\nc-v-n10.152.4.1225(UNKNOWN)[10.152.4.12]21(?)open421fw4.pfcc.sinopec.com.cnSorry,thefirewalldoesnotprovidemailservicetiyou.至此,获取的信息还不够多吗?由此可见,攫取旗标可以查找出代理性质的防火墙,很多流行的防火墙只要被连接就会声明自己的存在,甚至包括自己的类型和版本,这恰恰对入侵者提供了有价值的信息,依靠这些信息,入侵者就可以找到网上已公开的薄弱点或者常见的错误配置从而达到入侵目的。盾要防住这个“矛”,就是经常变更防火墙的旗标配置文件,但具体的修改方法要取决于所使用的防火墙产品,需要查阅产品说明书或者直接与厂家联系。通常旗标最好被修改为包含警告信息,而不是宣告程序名和版本号等信息。如果上述几支矛都不够锋利,无法穿透盾的话,入侵者就会使用更为锋利的矛。
本文标题:网络攻击和防火墙详解
链接地址:https://www.777doc.com/doc-3096660 .html