1.TCP/IP概述
(1)TCP/IP基本结构
TCP/IP是一组Internet协议,不但包括TCP和IP两个关键协议,还包括其他协议,如UDP、ARP、ICMP、Telnet和FTP等。TCP/IP的设计目标是使不同的网络互相连接,即实现互联网。
IPv4的地址是32bit,目前正在推出IPv6,其地址为128bit。以太网MAC地址是48bit。
TCP/IP层次结构有两个重要原则:①在同一端点,每一层只和邻接层打交道,例如,应用程序根本不关心网络层是怎么转发包以及数据在哪些网络上传输;②不同端点之间的同一层有对等关系,对等层之间可以进行通信,如应用程序之间的通信,TCP模块之间的通信等。
(2)TCP/IP通信模型
通信模型是TCP/IP最基本的模型之一,它描述了端和端之间怎样传输数据。
TCP/IP提供两个主要的传输协议:TCP和UDP。TCP是一个面向连接的协议,它通过发送和确认机制,保证数据无错误传输。UDP是无连接的,它只管发送和接收所有的包,不保证数据是否到达。
2.TCP序列号预计
TCP序列号预计由莫里斯首先提出,是网络安全领域中最有名的缺陷之一。这种攻击的实质,是在不能接到目的主机应答确认时,通过预计序列号来建立连接。这样,入侵者可以伪装成信任主机与目的主机通话。
正常的TCP连接建立过程是一个三次握手的过程,客户方取一初始序列号ISNc并发出第一个SYN包,服务方确认这一包并设自己一方的初始序列号为ISNs,客户方确认后这一连接即建立。一旦连接建立成功,客户方和服务方之间即可以开始传输数据。连接建立过程可以被描述如下:
TCP连接建立过程
客户方 → 服务方:SYN(ISNc)
服务方 → 客户方:ACK(ISNc),SYN(ISNs)
客户方 → 服务方:ACK(ISNs)
客户方 → 服务方:数据
和/或者
服务方 → 客户方:数据
3.路由协议缺陷
(1)源路由选项的使用
在IP包头中的源路由选项用于该IP包的路由选择,这样,一个IP包可以按照预告指定的路由到达目的主机。
但这样也给入侵者创造了良机,当预先知道某一主机有一个信任主机时,即可利用源路由选项伪装成受信任主机,从而攻击系统,这相当于使主机可能遭到来自所有其他主机的攻击。
(2)伪造ARP包
伪造ARP包是一种很复杂的技术,涉及到TCP/IP及以太网特性的很多方面,在此归入ARP的安全问题不是很合适。伪造ARP包的主要过程是,以目的主机的IP地址和以太网地址为源地址发一ARP包,这样即可造成另一种IP spoof。
这种攻击主要见于交换式以太网中,在交换式以太网中,交换集线器在收到每一ARP包时更新Cache。不停发spoof ARP包可使送往目的主机的包均送到入侵者处,这样,交换式以太网也可被监听。
解决上述问题的方法是:将交换集线器设为静态绑定。另一可行的方法是当发现主机运行不正常时(网速慢,IP包丢失率较高),反映给网络管理员。
(3)RIP的攻击
RIP(Routing Information Protocol)是用于自治系统(Autonomous System,AS)内部的一种内部路由协议(Internal Gateway Protocol,IGP)。RIP用于在自治系统内部的路由器之间交换路由信息。RIP使用的路由算法是距离向量算法。该算法的主要思想就是每个路由器给相邻路由器宣布可以通过它达到的路由器及其距离。一个入侵者有可能向目的主机以及沿途的各网关发出伪造的路由信息。
(4)OSPF的攻击
OSPF(Open Shortest Path First)协议是用于自治域内部的另一种路由协议。OSPF协议使用的路由算法是链路状态(Link-State)算法。在该算法中,每个路由器给相邻路由器宣布的信息是一个完整的路由状态,包括可到达的路由器,连接类型和其他相关信息。
LSA(Link State Advertisement)是OSPF协议中路由器之间要交换的信息。
LS序列号为32bit,用来指示该LSA的更新程度。LS序列号是一个有符号整数,大小介于0x80000001(负值)和0x7fffffff之间。
4.网络监听
以太网(Ethernet)是网络结构中,链路层和物理层的主要连网方式。由于以太网的工作方式,网络请求在网上一般以广播的方式传送,这个广播是非验证的,也就是同网段的每个计算机都可以收到,除了目标接受者会应答这个信息外,其他的接受者会忽略这个广播。如果有一个网络设备专门收集广播而决不应答,那么,它就可以看到本网的任何计算机在网上传输的数据。如果数据没有经过加密,那么它就可以看到所有的内容。Sniffer就是一个在以太网上进行监听的专用软件。监听这个现象对网络的安全威胁是相当大的,因为它可以做到以下几点。
(1)抓到正在传输的密码。
(2)抓到别人的秘密(信用卡号)或不想共享的资料。
(3)暴露网络信息。
5.TCP/UDP应用层服务
(1)finger的信息暴露
这是由于以下几点原因。
① finger没有任何认证机制。任何人都可利用finger来获得目的主机的有关信息。
② finger所提供的信息包括用户名,用户来自于何处等,这些信息可以用于口令的猜测攻击,以及信任主机被假冒的攻击,具有很大的潜在危险。
③ finger没有认证,这使得无法辨别一个主机是否在基于“正当的”目的使用finger,这使得用户即使被攻击,也无法辨明finger在其中起了多大作用。
解决上述问题的方法是:关掉finger服务,如果有充分理由打开finger服务的话,不妨将finger设为:/bin/cat/etc/something
(2)FTP的信息暴露
FTP本身并无安全问题,但几乎所有的实现都存在如下问题。
① FTP一般用户的口令与登录口令相同,而且采用明文传输。
② 一些网点上的匿名FTP提供了另一攻击途径。
(3)Telnet的安全问题
Telnet本身也并没有安全问题。它的安全隐患类似FTP的①,只不过要更严重一些。由于Telnet是用明文传输的,因此不仅是用户口令,而且用户的所有操作及其回答,都将是透明的。
(4)POP3的安全问题
由于POP3的口令与账号的口令相同,在此它存在着类似FTP①的问题,解决方法也是类似的。
(5)tftp/bootp的安全问题
tftp允许不经认证就能读主机的那些被设置成所有人可读的文件。这将可能暴露系统的账号、工作目录等重要信息。
二、协议的介绍
1.互联网协议(英语:Internet Protocol,IP),或称互联网协议,是用于报文交换网络的一种面向数据的协议。
IP是在TCP/IP协议中网络层的主要协议,任务是仅仅根据源主机和目的主机的地址传送数据。为此目的,IP定义了寻址方法和数据报的封装结构。
IP封装:数据在IP互联网中传送时会被封装为数据报。IP协议的独特之处在于:在报文交换网络中主机在传输数据之前,无须与先前未曾通信过的目的主机预先建立好一条特定的“通路”。互联网协议提供了一种“不可靠的”数据包传输机制(也被称作“尽力而为”);也就是说,它不保证数据能准确的传输。数据包在到达的时候可能已经损坏,顺序错乱(与其它一起传送的报文相比),产生冗余包,或者全部丢失。如果应用需要保证可靠性,一般需要采取其他的方法,例如利用IP的上层协议控制。
IP提供的服务:由于封装带来的抽象机制,IP能够在各种各样的网络上工作,例如以太网,ATM,FDDI,Wi-Fi,令牌环等等。每个链路层的实现可能有自己的方法(也有可能是完全没有它自己的方法),把IP地址解析成相应的数据链路地址。IPv4使用地址解析协议(ARP),而IPv6采用邻居发现协议(NDP)。
可靠性:
互联网协议的设计原则假定网络基础设施本身就是不可靠的单一网络元素或传输介质,并且它使用的是动态的节点和连接。不存在中央监测和性能衡量机制来跟踪和维护网络的状态。为了减少网络的复杂性,大部分网络智能故意地分布在每个数据传输的终端节点。传输路径中的路由器只是简单地将数据报发送到下一个匹配目的地址的路由前缀的本地网关。
由于这种设计的结果,互联网协议只提供尽力传送,其服务也被视为是不可靠的。在网络专业语言中是一种无连接的协议,相对于所谓的面向连接的模式。在缺乏可靠性的条件下允许下列任何故障发生:
- 数据损坏
- 丢失数据包
- 重复到来
- 数据包传递乱序;意思是,如果包'A'是在包'B'之前发送的,但B可能在A到达前到达。
互联网协议提供的唯一帮助是,IPv4规定通过在路由节点计算校验和来确保IP数据报头是正确的。这个带来的副作用是当场丢弃报头错误的数据报。在这种情况下不需要发送通知给任一个终端节点, 但是互联网控制消息协议(ICMP)中存在一个机制来做到这一点。
但是,IPv6为了快速传输已经放弃了计算校验和的使用。
对这些可靠性问题的更正是一个上层协议的责任。例如,一个上层协议为了确保按顺序传送可能要缓存数据,直到数据可以传递给应用程序。
除了可靠性问题,互联网及其组成部分的动态性和多样性不能确保任何路径是有能力地或合适地完成所要求的数据传输,即使路径是有效并且可靠的。技术限 制之一是在给定的链路上允许的数据包的大小。应用程序必须确保它使用适当的传输特性。这种责任还在于一些在应用层协议和IP之间的上层协议。存在审查的本 地连接尺寸最大传输单位(MTU),以及整个预计到目标路径时使用IPv6。 IPv4的网络层有自动分片成更小的单位进行传输原始数据报的能力。在这种情况下,IP确实能够为乱序的分片进行顺序排序。
IP寻址及路由:IP协议最为复杂的方面可能就是寻址和路由了。寻址就是如何将IP地址分配给各个终端节点,以及如何划分和组合子网。所有网络端点都需要路由,尤其是网际之间的路由器。路由器通常用内部网关协议(Interior Gateway Protocols,IGPs)和外部网关协议(External Gateway Protocols,EGPs)决定怎样发送IP数据包。
OSI模型(7层):应用层、表示层、会话层、传输层(TCP地址)、网络层(IP地址)、数据链路层(mac地址)、物理层
物理层:传输在线缆的电子信号;
威胁:搭线窃听和监听;
保护措施:加密、数据标签、流量填充等;
设备:HUB、水晶头、线缆
网络层:寻址和路由;
协议:IP、ICMP(管理ping)、IGMP(组播)、ARP(IP->MAC)、RARP(MAC->IP);
威胁:(网际协议:32位,唯一性,标示主机,IP头20位包含信息和控制字段)IP欺骗攻击、(internet信息控制协议:IP层检查错误使用)tfnflood、winnuke;
保护措施:防火墙过滤、打系统补丁
传输层:控制主机(host)之间传输的数据流;
协议:TCP、UDP;
TCP包头标记:SYN:建立一个连接过程,FIN:终止一个连接过程,ACK:回复一个连接请求。威胁:SYN FLOOD(三次握手没有完成,只占用内存)
UDP:面向非连接的协议(应用于IP电话等)。
端口:知名端口<1024,非知名端口>=1024。常用:21(FTP),22(SSH),23(TELNET),80(HTTP),139()
应用层:SMTP(简单邮件传输协议),威胁:邮件炸弹、病毒、匿名邮件、木马等,保护措施:认证、附件木马扫描等
FTP(文件传输协议),威胁:明文传输、黑客恶意传输非法使用,保护措施:只允许匿名登录、单独服务器分区、禁止执行程序等
TELNET()、HTTP()、SNMP()
域名解析系统:DNS欺骗/中毒
小结:了解TCP/IP协议组、掌握并区分TCP协议和UDP协议、深入理解TCP的三次握手、深入掌握FTP/TELNET协议和明文传输、掌握SMTP协议和匿名邮件