文档介绍:网络协议与入侵和防御之间的关系
网络攻击和防御所涉及的问题非常复杂。本文从网络协议入手,分析攻击和防御的•般 原理,以及攻击防御和协议之间的联系。之所以这样做,是因为任何攻击和防御总可以与网 络协议联系的一起,因为网络上的任何攻击或入侵,都是通过网络上流动的数据包来实现的。 所以我们这里要讨论的问题处处都离不开网络协议。这里所谈及的攻击入侵和防御,只是简 单的入侵和防御,与网络的底层协议密切相关,所以重点讨论传输层以下的协议层。
后面要讨论的攻击有数据包检测、端口扫描、漏洞扫描等。可以看到,这些只是攻击的 基础或者只是攻击的准备,这些攻击渗透与底层协议密切相关。防御方面主要讨论入侵检测、 防火墙和一些加密方面的问题(这里并不去讨论具体的密码算法)。系统中所涉及的内容可以 用图2-1:
被动侦察
主动侦察
攻击渗透
防御
h漏洞测试
入侵检测
图2-1:系统涉及的攻击防御内容
攻防技术基础
后面主要针对图2-1中列出的具体内容来讨论其各自的实现原理,这些原理将作为网络 实验的指导。网络攻击和防御与网络协议密不可分,网络上的正常数据和非正常数据都是通 过遵循网络协议的数据包来传输的。在攻击前,一般要了解被攻击对象的信息,这样就需要 从网络上抓取数据包进行分析,获取发送数据方的信息。同样,在防御的时候,也需要从网 络上抓取数据包,对抓取的数据包进行分析,区分优劣,做出防御决策。所以,抓取数据是
攻击和防御必须实现的前提。在真实网络上,抓取数据有多种方式,在我们的系统中米用开 源代码1 ibpcap (pcap就是packet capture的缩写,即抓取数据包),这些代码及其帮助文 件,可以在www. tcpdump. org处获得。
攻击如果只是通过捕获的数据包来窥探一些实验者信息,不去主动发起,那只是被动攻 击,是没有多少破坏力的。如果要主动攻击,就要向被攻击者发送数据,欺骗或者破坏他们 的正常活动。这样,我们必须有发送数据包的工具。只要有了这个工具,我们就可以随意发 送数据包,当然可以伪造数据包,来欺骗被攻击者的计算机系统,从而达到攻击的目的。发 送数据包也有多种途径,这里采用的是libnet, libnet可以很方便地构建网络上传输的各 协议层上的数据包,可以将构建好的数据包发送到网络上。libnet的代码及其帮助文件可 以在 http: //www. Packetfactory. net/projects/Libnet 处获取。
在真实网络环境下,有了 libpcap和libnet,我们就可以很容易实现网络上数据 包的收发。网络数据包收发是实现网络攻击和防御的基础。后面的一切工作都是在网络数据 包收发的基础上进行的。下图给出了 libcap、libnet和网络攻击防御的关系,我们通过图 2-2可以很直观的理解攻击和防御是建立在数据包的收发基础之上的。
数据包扫描| |脆弱性扫描
'TCP流重组;,Ip终了 ]IP分片董矗]■ …
入侵检测
防火墙
I包抓取J
包构造
包发送
SSL/TLS
bpcap
1ibnet
openssl
图2-2:组件关系图
从图2-2可以看到,对于简单的数据包扫描,IP分片重组,TCP流重组,我们只需
要通过libpcap抓取数据包后,