[ 笔记 ] 计算机网络安全_2_internet协议的安全性
[笔记] 计算机网络安全:(2)internet协议的安全性
- 网络安全基础
- internet协议的安全性
- Web安全
- 网络扫描和网络监听
- 防火墙原理与设计
- 入侵检测系统
- VPN技术
目录
- [笔记] 计算机网络安全:(2)internet协议的安全性
- 2.1 网络层协议
- 2.1.1 IP协议的安全性
- IP安全问题1:针对IP地址的攻击
- IP安全问题2:IP定向广播攻击
- IP安全问题3:数据容易被监听
- IP安全问题4:数据篡改
- IP安全问题5:IP源路由欺骗
- IP安全问题6:IP分片攻击
- 小结
- 2.1.2 ARP协议的安全性
- ARP缓存中毒
- ARP重定向
- 防范
- 2.1.3 ICMP协议的安全性
- ICMP Dos
- ICMP 重定向
- 防范
- 2.1.4 路由协议的安全性
- RIP协议
- OSPF协议
- BGP协议
- 对路由攻击的防护措施
- 2.2 运输层协议
- 2.2.1 TCP协议的安全性
- TCP安全问题1:SYN Flood攻击
- 防范
- TCP安全问题2:序号攻击
- 序列号产生方式
- 危害
- 工具
- 防范
- TCP安全问题3:针对拥塞机制
- 2.2.2 UDP协议的安全性
- UDP安全问题1:UDP Flood
- UDP安全问题2:UDP 欺骗
- 2.3 应用层协议
- 2.3.1 DHCP协议的安全性
- DHCP协议工作流程
- 安全问题
- 防范
- 2.3.2 DNS协议的安全性
- 安全问题
- 防范
- DNSsec
- 2.3.3 FTP协议的安全性
- FTP工作流程
- 安全问题
- 防范
- TFTP(udp 69)
- 2.3.4 Telnet协议的安全性
- 安全问题
- 安全Shell SSH
- 2.3.5 电子邮件协议的安全性
- 其他命令
- SMTP安全问题
- SMTP安全问题防范
- SendMail
- POP3协议
- POP3安全问题
- MIME协议
- MIME安全问题
- MIME安全实例
- 电子邮件安全协议和标准
2.1 网络层协议
2.1.1 IP协议的安全性
IP数据报格式
潜在的安全问题
- IP协议未验证IP地址
- IP协议支持定向广播
- IP协议未对数据加密
- IP协议仅对首部进行校验
- IP源路由选项支持
- IP协议支持分段重组
IP安全问题1:针对IP地址的攻击
IP协议未验证IP地址的真实性
- IP地址欺骗攻击
- 源IP地址欺骗:IP协议缺乏对地址真实性的认证机制,不能保证数据就是从数据包中给定的源地址发出的。
- 目的IP地址欺骗:IP协议也不能保证数据就发给了目的地址所指定的主机
- 防范措施
- 抛弃基于地址的信任策略,采用更高层的认证方式
- 进行包过滤,配置路由器使其能够拒绝网络外部与本网内具有相同IP地址的连接请求
IP安全问题2:IP定向广播攻击
IP协议支持定向广播
- 攻击者常采用定向广播来攻击主机,主机对广播包进行响应,消耗主机资源,以及网络带宽(DDos)
- 防范措施:在路由器上关闭定向广播转发选项
IP安全问题3:数据容易被监听
IP协议未提供加密机制
- 数据报在传输过程中容易被攻击者 监听、窃取
- 防范措施:采用加密措施
IP安全问题4:数据篡改
IP协议仅提供对首部的校验
- 由于IP层没有采用任何机制保证数据净荷的正确性,攻击者可能截取数据报,修改数据报中的内容,将修改结果发送给接收方
- 防范措施:对IP数据报净荷部分实行完整性检测机制,IPSec
IP安全问题5:IP源路由欺骗
IP支持源路由选项
- IP数据包中有一个“IP source routing”选项,可以指定从源到目的的路由,则目的到源的应答包也会沿着这个路由传递。
- 攻击者可以利用该选项获取到应答数据包
- 防范措施:在路由器上关闭源路由功能
IP安全问题6:IP分片攻击
IP支持分片重组
大包分片攻击: Ping of Death
- 分片重组之后的长度超过65535 字节,使得事先分配的缓冲区溢出,造成系统崩溃
- Ping of Death程序:发送ICMP echo请求数据包,数据包中的数据超过65507字节,使得某些系统事先分配 的缓冲区溢出,导致系统崩溃和重启。
- ping -l 65510 victim.host.ip.address
- IP至少20字节, ICMP首部8字节,数据最长65507字节
极小碎片攻击
- 攻击者通过恶意操作,发送极小的分片来绕过包过滤系统或者入侵检测系统的一种攻击手段
- 可将TCP报头分布在2个分片中,目的端口号包含在第二个分片中
- 若包过滤设备或者入侵检测系统通过判断目的端口号来采取允许/禁止措施,则可能放行这些分片报文,在目标主机上进行重组之后将形成各种攻击
- 目前一些智能的包过滤设备直接丢掉报头中未包含端口 信息的分片
- nmap 小碎片syn扫描
- 攻击者通过恶意操作,发送极小的分片来绕过包过滤系统或者入侵检测系统的一种攻击手段
分片重叠攻击
- 分片报文重组时,数据产生重叠,造成系统崩溃或绕过防火墙
- 分片报文重组时,数据产生重叠,造成系统崩溃或绕过防火墙
分片DoS攻击
- 目标计算机在处理分片报文的时候,会把先到的分片报文缓存起来,然后一直等待后续的分片报文。
- 如果攻击者给目标计算机只发送一部分(甚至一片)分片报文,而不发送所有的分片报文,这样目标计算机便会一直等待(直到一个内部计时器到时)
- 如果攻击者发送了大量的分片报文,就会消耗掉目标计算机的资源,而导致不能响应正常的IP报文
防范措施:
- 强制丢弃IP分片报文
- 发送方探测路径最小MTU,避免分片
- 给报文打上不分片的标记,路由器如果无法传输,将丢弃报文,并返回一个ICMP差错报文(type 3,code 4),通知报文发起者丢弃原因,报文发起者将发送比较小的报文
- 通过多次上述报文协商,将得到对于某一个固定路径上的最小MTU值
- 丢弃过短报文
- 包过滤设备先重组再过滤
小结
IP协议特点 | IP安全问题 | 防范措施 |
---|---|---|
IP未验证IP | IP欺骗攻击 | 源、目的地址鉴别机制 |
IP定向广播 | 定向广播攻击 | 禁止定向广播 |
数据未加密 | 数据监听、窃听 | 数据加密 |
IP仅首部校验 | IP数据篡改 | 完整性校验 |
IP源路由选项 | IP源路由攻击 | 禁止源路由选项 |
IP分片重组 |
大包攻击、极小碎片攻击、 分片重叠攻击、DoS攻击 |
先重组、不分片 |
2.1.2 ARP协议的安全性
以太网发送的是48位以太地址的数据包
IP驱动程序必须将32位IP目标地址转换成48位地址
两类地址存在静态或算法上的影射
ARP用来确定两者之间的影射关系
ARP缓存中毒
ARP缓存中毒攻击中,攻击者使用伪造ARP消息欺骗受害者接受无效的IP-MAC映射,并将映射存储在其缓存中,又叫ARP欺骗、ARP重定向
- 使用ARP请求
- 构造一个ARP请求包并发送给主机
- 使用ARP响应
- 构造一个ARP响应包并发送给主机
- 使用免费ARP
- 当主机需要向所有其他机器的ARP缓存更新过期信息时使用
- 源和目的IP地址均为发布免费ARP的主机地址
- ARP头部和以太帧头部的目的MAC地址都是广播MAC地址(FF:FF:FF:FF:FF:FF)
- 当主机需要向所有其他机器的ARP缓存更新过期信息时使用
ARP重定向
- 主机M 固定时间间隔 假冒网关B 向主机A发送ARP响应报文:我是IP_B, MAC_M
- 主机M 固定时间间隔 假冒主机A 向网关B发送ARP响应报文:我是IP_A, MAC_M
- 打开内核的IP转发或 fragrouter之类的产品来转发网络包
- 运行监听软件
- 主机A所有和外网联系的报文都会首先发送给中间人M
防范
- 在关键系统之间要设置静态的ARP项。比如在防火墙和边界路由器上设置静态的ARP项
- 在交换机上配置802.1x协议,攻击者连接交换机时,需要验证身份
2.1.3 ICMP协议的安全性
- ICMP是一种差错和控制报文协议,不仅用于传输差错报文,还传输控制报文
- 两个非常重要的工具—ping和traceroute
- ICMP没有验证机制:攻击者可能伪造报文,形成拒绝服务、重定向等攻击
ICMP Dos
- 针对带宽的ICMP DoS:主要利用无用的数据来耗尽网络带宽,如ICMP Smurf,伪造受害主机的源地址,向网络的广播地址发送大量的ping包,目标系统都很快就会被大量的echo reply信息淹没
- 针对连接的ICMP DoS:可以终止现有的网络连接,如Nuke,通过发送一个伪造的ICMP Destination Unreachable消息来终止合法的连接。
ICMP 重定向
- 攻击者利用ICMP路由重定向报文来改变主机的路由表,自己则伪装成路由器,向目标机器发送重定向消息,使目标机器的数据报发送至攻击机,从而实现监听、会话劫持或拒绝服务攻击。
- 具体攻击过程一般会和IP源地址欺骗技术结合实施
防范
- 必要的ICMP限制(在服务与安全之间尽量平衡)
- 支持PING 允许向外(目标为单台主机)发送 ICMP 响应请求,并允许向内发送响应答复消息(目标为预先定义的主机)
- 支持traceroute路径追踪—允许向内发送 TTL -超出和端口无法连接 的消息
- 支持路径 MTU—允许向内发送需要分片但DF置位的ICMP消息
- 阻止其它类型的ICMP通信。
2.1.4 路由协议的安全性
- 路由协议是一种在因特网上动态寻找恰当路径的机制。
- 路由信息确立了两种通路
- 主叫机器到目标主机
- 目标主机返回到主叫机器
- 第2条通道可以是第1条的逆通道,也可以不是。当第2条通路不是第1条的逆通道时,就称做非对称路由
RIP协议
动态路由选择协议是一种动态内部路由/网关协议,用于自治系统内的路由信息的传递
RIP协议的收敛过程
- 启动:路由器启动时只包含了其直连网络路由信息,随后定期以RIP报文和相邻路由器交换路由信息。
- 接收:路由器根据收到的RIP报文更新路由器
- 更新:若路由信息相同,则更新,若不同,则添加
- 完成:经过路由更新,每个路由器都具有一张完整的路由表
协议缺陷
- 使用不可靠的UDP传输
- RIPv1缺乏认证机制,RIPv2有MD5签名与验证,但Md5已破解
安全问题
- 攻击者可以伪造RIP路由更新信息,并向邻居路由器发送,伪造内容为目的网络地址、子网掩码与下一跳地址。经过若干轮路由更新,网络通信将面临瘫痪的风险
- 攻击者利用tcpdump和rprobe等嗅探工具来获得远程网络的RIP路由表,通过欺骗工具(如srip)伪造RIP报文,再利用重定向工具截取、修改和重写向外发送的报文,以控制网络中报文信息。
防范
- 路由器接口配置:将路由器的某些接口配置为被动接口,之后该接口停止向它所在的网络广播路由更新报文,但是允许它接受来自其他路由器的报文
- 路由器访问控制:配置路由器的访问控制列表,只允许某些源地址IP的路由更新报文进入列表。
- 增加路由验证机制:采用MD5安全机制的RIPv2协议,或者移植了安全认证机制的OSPF协议
OSPF协议
开放最短路径优先协议是一个内部网关协议,用于在单一自治系统内决策路由
- OSPF协议是分布式的链路状态路由协议
- 在该协议中,只有当链路状态发生变化时,路由器采用洪范法向所有路由器发送路由信息,每个路由器都有一个保存全网链路信息的链路状态数据库
安全问题
OSPF协议中规定了认证域authentication,但作用非常有限
- 即使提供了较强的认证,但某些结点仍然使用简单的口令认证
- 路由对话中,如果一个合法的用户遭到破坏,那么它的消息就不再可信
- 在许多路由协议中,邻近的计算机会重复旧的对话内容,导致欺骗扩散
BGP协议
边界网关协议将单一管理的网络转化为由多个自治系统分散互联的网络
安全问题
- BGP缺乏一个可信的路由认证机制,无法对所传播的路由信息的安全性进行验证
防范
- 路由认证类方案
- MD5 BGP认证技术
- S-BGP方案
- soBGP方案等
- 前缀劫持检测类方案
- 多元AS检测技术
- 主动探测技术
对路由攻击的防护措施
现状:有些路由协议,如RIPv2和OSPF都规定了认证域,可以一定程度解决欺骗问题,但作用很有限
防护
- 采用具有防火墙功能的路由器,以确保一条给定线路上的路由的合法性
- 但是,对于防火墙来说,如果路由表太大,配置起来就困难一些
- 使用IS-IS路由协议来取代OSPF。这样外部网络用户不能注入假的路由消息。IS-IS不是通过IP实现,所以对用户来说就没有连通性
- 注意:这种技术不能防止内部攻击
2.2 运输层协议
2.2.1 TCP协议的安全性
TCP协议提供的服务
- 基本的运输层服务:多路复用/多路分解
- 可靠传输:校验和、确认重传、超时机制、字节编号
- 面向连接:建立连接、数据传输、释放连接
- 流量控制:接收窗口
- 拥塞控制:拥塞窗口、慢启动、拥塞避免等
TCP协议容易遭受的攻击
- 针对TCP连接建立阶段的三次握手过程的SYN Flood攻击
- 针对TCP协议不对数据包加密和认证的漏洞的TCP序列号攻击、TCP会话劫持、数据嗅探等攻击
- 针对TCP的拥塞控制机制的特性,在TCP连接建立后的数据阶段攻击,主要是拒绝服务攻击
TCP安全问题1:SYN Flood攻击
攻击者利用TCP连接的半开放状态发动攻击。攻击者使用第一个数据包对服务器进行大流量冲击,使服务器一直处于半开放连接状态,从而无法完成3步握手过程,导致正常用户也无法访问服务,因此SYN-Flooding攻击是一种拒绝服务攻击。
SYN-flooding攻击检测技术
- 半开连接数检测
- 新建连接速率检测
端口扫描:源IP固定,目的端口变化
SYN-Flooding攻击:源IP变化,目的端口固定
防范
- 阻断新建连接
- 源地址过滤
- 释放无效连接
- 监视系统的半开连接和不活动连接,超过阈值时释放
- 延缓TCB(Transmission Control Block)分配
- Syn丢包
- 代理服务器/防火墙
- SYN proxy
- SYN cache
- SYN cookie
- Safe reset
SYN proxy
TCP client | TCP proxy | TCP server |
---|---|---|
1.SYN → | ||
← 2.SYN ACK(窗口值 = 0) | ||
3.ACK→ | ||
4.SYN → | ||
← 5.SYN ACK(窗口值 = n) | ||
6.ACK → | ||
← 7.SYN ACK(窗口值 = n) |
SYN cache
TCP client | TCP proxy | TCP server |
---|---|---|
1.SYN → | ||
不分配TCB,用cache保存半开连接 | ||
← 2.SYN ACK(窗口值 = 0) | ||
3.ACK→ | ||
4.SYN → | ||
← 5.SYN ACK(窗口值 = n) | ||
6.ACK → | ||
← 7.SYN ACK(窗口值 = n) |
SYN cookie
TCP client | Firewall | TCP server |
---|---|---|
1.SYN → | ||
根据连接信息以及己方时间戳、MSS等信息生成cookie | ||
← 2.SYN ACK(Cookie) | ||
3.ACK→ | ||
判断报文合法,分配TCB资源 | ||
4.SYN → | ||
← 5.SYN ACK(窗口值 = n) | ||
6.ACK → | ||
代理后续报文 | ||
Data(x) → | ||
7.Data(x) → | ||
← 8.Data(y) | ||
← 9.Data(y) |
Safe reset
TCP client | Firewall | TCP server |
---|---|---|
1.SYN → | ||
根据连接信息以及己方时间戳、MSS等信息生成cookie | ||
← 2.SYN ACK(Cookie) | ||
3.RST→ | ||
分配TCB资源,检查通过,后续直接发 | ||
4.SYN → | (不经过) | |
(不经过) | ← 5.SYN ACK(窗口值 = n) | |
6.ACK → | (不经过) |
TCP安全问题2:序号攻击
- TCP协议易遭受序号攻击。如果攻击者能够预测目标主机选择的起始序号,他就可能欺骗该目标主机,使其相信它正与一台可信的主机会话。Morris已经证明,预测目标主机选择的起始序号确实是可行的。这样,攻击者会利用只靠IP源地址认证的协议攻入目标系统
- Morris的序号攻击依赖于建立一条通往目标主机的合法连接。如果这些连接被防火墙阻挡,攻击将不会成功。网关防火墙不应该过度信任内部主机
- 序号攻击的方法可以延伸到攻击其他协议
劫持
- 监听数据包
- 确认动态会话
- 猜测序列号
- 使客户主机下线
- 接管会话
序列号产生方式
- 常数
- 总是使用同样的ISN
- 常数增量
- 每次建立TCP连接的ISN增量总是使用同样的递增值
- 64K规则
- 在比较老的系统中存在,系统的ISN每秒增加128000,如果有连接出现,每次连接将把计数器的数值加64000
- 伪随机(时间相关规则)
- 每过一段时间ISN 就被加上一个小的固定数。比如在Windows 98 中,其ISN的增长等于两次建立连接在时间上相差的毫秒数
- 随机增量
- 每次建立连接的ISN的增量随机生成
- 真随机
- 完全借助于随机数生成函数,在32位的ISN空间中选择下一次连接建立时的初始序列号。攻击者难以猜测到序列号,但是序列号可能重复, 会使多次 TCP 连接连续产生同样的ISN
- Bellovin建议的ISN产生算法( RFC 1948 )
- ISN = M + F(sip ,sport ,dip ,dport , < some secret > )
- ISN 表示32位的初始序列号
- M 表示单调增长时钟/计数器
- F 表示加密散列函数(通常是MD4或MD5)
- <some secret> 表示任意输入到散列函数中的第五个参数,以保证远程TCP序列号猜测攻击无法实现
危害
- 任何使用TCP进行通信的主机都有可能受到这种攻击
- 会话劫持在理论上是非常复杂的,会话劫持攻击软件使得技术门槛降低
- 会话劫持攻击的危害性很大
- 它并不依赖于操作系统
- 它可以被用来进行积极的攻击,通过攻击行为可以获得进入系统的可能。
工具
- Juggernaut是由Mike Schiffman开发的自由软件,是最先出现的会话攻击程序之一。它运行在Linux操作系统的终端机上,攻击 者能够窥探网络中所有的会话,并且劫持其中任何一个,攻击者可以像真正用户那 样向服务器提交命令。
- 由Pavel Krauz制作的Hunt,是一个集嗅探、截取和会话劫持功能于一身的强大工具。它可以在无论共享式网络还是交换式网络中工作,不仅能够在混杂模式和ARP欺骗模式下进行嗅探,还具有中断和劫持动态会话的能力
防范
- 不要把网络安全信任关系建立在IP基础上或者MAC基础上
- 设置静态的MAC—>IP对应关系表,不要让主机刷新设定好的转换表
- 停止使用ARP,将需要的ARP作为永久条目保存在对应表中
- 上层采用安全加密协议
TCP安全问题3:针对拥塞机制
拥塞控制功能旨在防止过多的数据注入网络。有经验的攻击者可以利用拥塞机制的特性,周期性地制造网络关键节点的拥塞,不断触发拥塞窗口的慢启动过程,最终达到降低正常传输能力的目的。
防护:网关实施检测网络异常流量
2.2.2 UDP协议的安全性
- UDP(User Datagram Protocol)数据传输过程中,没有纠错和重传机制,也没有检测丢包、复制或重新排序的机制,甚至误码检测也是可选项。
- 在数据的接收端,被分片的UDP数据包能够得以重组。
- UDP用于交换消息的开销要比TCP小得多,使得它非常适用于挑战/响应等类型的应用,如DNS
UDP安全问题1:UDP Flood
当UDP用于大量的数据传输时,协议自身缺少流控制特征,所以它能堵塞主机或路由器,并造成丢包现象
UDP安全问题2:UDP 欺骗
- UDP没有连接的概念,忽略了源地址和端口号。在使用这些UDP数据包的源地址时,要特别小心
- 由于UDP没有握手建立过程或序列号,所以它比TCP更加容易遭受欺骗攻击
- 对于一些重要应用来说,必须要采用适当的认证措施
2.3 应用层协议
- 动态主机配置协议——DHCP
- 域名与用户查询——DNS、 Whois、FINGER
- 电子邮件系统——SMTP、POP3、IMAP4、MIME、PGP
- 文件传输与文件共享——FTP、TFTP
- 远程登录——TELNET、SSH
- Web服务——HTTP
- 网络管理——SNMP
- 多媒体——H.323、SIP
- 其它网络应用——NNTP、LDAP、NTP、 NFS
2.3.1 DHCP协议的安全性
- DHCP用来分配IP地址,并提供启动计算机(或唤醒一个新网络)的其他信息,它是BOOTP的扩展
- 此协议能够提供:域名服务器地址、默认的路由地址、默认的域名及客户机的IP地址;以及网络时间服务器的地址等
- DHCP对IP地址提供集中化的管理,简化了管理任务,可以很容易地为便携计算机分配IP地址。
DHCP协议工作流程
申请方 | 分配方 |
---|---|
DHCP Recovery Src:0.0.0.0:68 Des:255.255.255.255:67 Transaction ID:0x989ac758 |
|
DHCP Offer Src:192.168.1.1:67 Des:255.255.255.255.68 Transaction ID:0x989ac758 |
|
DHCP Request Src:0.0.0.0:68 Des:255.255.255.255.67 Transaction ID:0x989ac758 |
|
DHCP ACK Src:192.168.1.1:67 Des:255.255.255.255.67 Transaction ID:0x989ac758 |
安全问题
- 此协议只能在本地网络上使用,不能发动远程攻击。
- 由于DHCP查询没有认证措施,所以查询响应容易遭受欺骗攻击、 中间人攻击和DOS攻击。
- 如果攻击者已经接入到本地网络,它可能冒充DHCP服务器,并对客户端进行虚假的响应
- 工作在局域网,易遭受ARP欺骗,形成中间人攻击
- 假冒客户端,模仿不同的MAC地址,向合法服务器发出请求,导致合法的服务器可用的IP地址被耗尽,进行DoS攻击
防范
- 针对假冒DHCP Server和中间人
- 交换机只接收信任端口的报文,不转发非信任端口的报文
- 交换机启用802.1x认证
- 针对DHCP的DoS攻击
- 扫描并记录局域网内的MAC地址
- 检查报文中的CHADDR(客户端MAC地址)和记录的MAC地址进行对比
2.3.2 DNS协议的安全性
域名系统是一个分布式数据库系统,用来实现“域名—IP地址”,或“IP地址—域名”的映射
递归查询:是一般客户机和本地DNS服务器之间属递归查询,即当客户机向DNS服务器发出请求后,若DNS服务器本身不能解析,则会代替用户向另外的DNS服务器发出查询请求,直到得到结果然后转交给客户机
迭代查询:一般DNS服务器之间属迭代查询,假如DNS服务器A不能响应DNS服务器B的请求,则它会将DNS服务器C的IP给DNS服务器A,以便其再向DNS服务器C发出请求。
安全问题
DNS的最大缺陷是解析的请求者无法验证它所收到的应答信息的真实性
- DNS用户欺骗(针对到用户主机的响应)
- 伪造来自服务器的响应包,在真的服务器响应到达用户主机之前
- DNS缓存中毒(针对到本地DNS的响应)
- 伪装其它服务器到本地DNS服务器的响应,毒化本地DNS服务器缓存
- DNS重定向(针对DNS的请求)
- 攻击者将DNS名称查询重定向到恶意DNS服务器上,域名查询被劫持
防范
- 强烈建议那些暴露的主机不要采用基于名称的认证。基于地址的认证虽然也很脆弱,但要优于前者。
- 攻击者可以从主机名中找出有用的信息,因此不要把秘密的信息放在主机名中。
- 抵御DNS攻击的有效方法是采用DNSSec新标准,但目前此协议还存在很多问题,从而延缓推广
DNSsec
- DNSsec是由IETF提供的一系列DNS安全认证的机制(RFC2535)。它提供了一种来源鉴定和数据完整性的扩展,但不去保障可用性、加密性和证实域名不存在。
- 从根区域到最终域名的查找过程中的每一步部署该技术,将一系列数字签名结合到 DNS 层次结构中,对各个层次进行数字签名,使每个级别都拥有其自己的签名生成密钥
2.3.3 FTP协议的安全性
FTP工作流程
- FTP客户机向FTP服务器发出登录请求
- 服务器要求客户机提供FTP账号和密码
- 登陆成功后,FTP客户机与FTP服务器之间建立一条控制连接,客户机通过控制连接向服务器发送命令,服 务器返回响应信息
- 如果要下载/上传一个文件或查看文件列表,FTP客户机与服务器之间建立一条数据连接,在数据连接之上 传输文件。
- 数据连接在文件传输完成后自动关闭,而控制连接在退出登录后才会自动关闭。
主动模式
- FTP客户机向FTP服务器发送port命令,参数中包含己方为数据连接暂时开放的端口号,如:PORT 192.168.0.232 6,127
- 客户端开放1663端口(6*256+127),服务器从20端口向客户端的1663端口发起数据连接
被动模式
FTP客户端向FTP服务器发送PASV命令
服务器应答报文的内容包括了服务器端将为数据连接暂时开放的端口号 如:227 Entering Passive Mode (192.168.0.1 26 108)
服务器开放6764端口(26*256+108),客户端从自己的一个临时端口向服务器端的6764端口发起数据连接
安全问题
- 明文传输:登录用户名、密码以及传输内容都明文传输,易被窃听
- 地址端口信息在应用层协议命令中出现:访问控制设备在处理时必须打破协议层的原则,造成安全隐患
- 两种方向的数据连接:访问控制设备可能需要开放从外到内的访问策略,造成安全隐患
- 额外的连接:造成FTP反弹攻击:攻击者在PORT命令中指定特定的IP地址和端口号参数,将数据发送的第三方
- 用户权限限制问题:如果FTP用户权限限制不合理,会导致非授权访问
- 匿名FTP问题:全球可读写的目录常用来存储和发布盗版软件或其它违法的软件或数据
防范
- 使用SFTP(SSH文件传输协议)协议代替FTP
- 进行加密
- 采用SSH(TCP 22端口),避免了开放大量数据连接端口
- 两种方向的数据连接
- 禁止PORT方式,只允许PASV方式
- FTP反弹攻击
- PORT命令的IP地址只能为客户端的地址,且端口号大于1024
- 用户权限限制问题
- 最小权限原则,不用root用户运行
- 匿名FTP问题
- 可以只允许读,或者取消匿名用户
TFTP(udp 69)
TFTP用于提供简单、开销较小的文件传输服务,采用UDP协议,提供不可靠的数据流传输服务,不提供授权与认证机制,使用超时重传方式来保证数据的到达。
- 安全问题:只提供文件传输而不验证是否成功传送,在可靠性和安全性上没有保证
- 防护措施:除非真的需要此协议,否则不应该在任何机器上运行该协议;若要使用应确保对其正确配置,严禁上传配置文件
2.3.4 Telnet协议的安全性
- Telnet是一种因特网远程终端访问标准。它真实地模仿远程终端,但是不具有图形功能,它仅提供基于字符应用的访问。
- Telnet提供了简单终端到某台主机的访问。该协议包括对处理各种终端设置的规定,如自然模式、字符回显等。
- 通常,telnet后台服务程序调用login程序来进行认证和引发会话。主叫用户提供帐户名称和口令来进行登录。
- 多数Telnet客户端程序都支持以任意端口来访问基于文本的TCP服务的能力。
安全问题
- Telnet程序可能会泄露秘密信息,它传输明文,没有强认证过程,攻击者可以对每个账户的口令进行任意次猜测,或通过嗅探器记录用户名和口令组合,或者记录整个会话。
- Telnet本身不进行会话完整性检查,由于数据全部是明文传输,容易被非法篡改。
- 攻击者也可能在连接上做文章。黑客掌握了使用TCP劫持工具的方法,使他们能够在某种条件下劫持TCP会话。Telnet是非常具有吸引力的目标。
- 有些对telnet会话进行加密的办法。目前出现了几种telnet的加密解决方案,它们分别为STEL,SRA Telnet,SRP Telnet,以及SSH
安全Shell SSH
- SSH是一个提供安全登陆和远程命令执行的协议,是为替代rlogin、rsh而设计的,默认采用TCP 22端口。
- SSH支持身份认证和数据加密,对所有传输的数据进行加密处理。同时,可以对传输数据进行压缩处理,这样就可以加快数据传输的速度。它既可以代替Telnet作为安全的远程登录方式,又可以为FTP、POP等服务提供一个安全的“隧道”。
- 从客户端来看,SSH提供两种级别的安全验证。
- 第一种级别(基于口令的安全验证):所有传输的数据都会被加密,但是不能保证服务器的真实性。
- 第二种级别(基于公私钥的安全验证):登录过程会稍慢。
- OpenSSH: SSH的替代,且免费开源,提供了服务端后台程序和客户端工具
SSH的安全问题
- 服务器认证
- SSH协议在不安全的网络环境中没有可信的认证机构对服务器的真实性进行验证。
- SSH协议提供了可选功能使得客户机第一次连接到服务器时可以不对服务器主机密钥验证。
- 防护:必须检验主机密钥来验证服务器的正确性
- 协议版本协商
- SSH协议运行第一步是进行服务器与客户端协议版本的协商。如果攻击者采用有安全漏洞的版本建立连接,则可能采取进一步攻击。
- 防护:对采用有安全问题软件的通信方,服务器可以中断TCP连接。
- 主机密钥文件安全
- SSH协议服务器的主机密钥存储在一个主机密钥文件中,若该文件被窃取或篡改,则会对协议的认证机制造成严重威胁,进一步实施假冒、重放和中间人攻击等。
- 防护:增强安全机制进行主机密钥文件的管理
2.3.5 电子邮件协议的安全性
- 发送邮件:简单邮件传输协议SMTP
- 收取邮件:
- 邮局协议POP3(Post Office Protocol,version 3)
- 因特网邮件访问协议IMAP(Internet Mail Access Protocol)
过程:Server:crepes.fr Client:hamburger.edu, telnet:25
- S: 220 hamburger.edu
- C: HELO crepes.fr
- S: 250 Hello crepes.fr, pleased to meet you
- C: MAIL FROM:<alice@crepes.fr>
- S: 250 alice@crepes.fr… Sender ok
- C: RCPT TO:<alice@crepes.fr>
- S: 250 bob@hamburger.edu… Recipient ok
- C: DATA S: 354 Enter mail, end with “.” on a line by itself
- C: Do you like ketchup?
- C: How about pickles?
- C: .
- S: 250 Message accepted for delivery
- C: QUIT
- S: 221 hamburger.edu closing connection
其他命令
使用VRFY命令获得用户名列表
VRFY命令是SMTP提供的专门用来验证是否有用户存在于服务器上的一条命令
格式:VRFY 要测试的用户名
然后系统就会进行判断,如果用户存在,将返回250和用户全名 。如果用户不存在,将返回550错误。
S: VRFY Postel
R: 250 Jon Postel
S: VRFY Jones
R: 550 String does not match anything.
使用EXPN命令获得用户名列表
EXPN命令和VRFY命令类似,不同的是,这条命令是用来验证是否有列表存在
S: EXPN Example-People
R: 250-Jon Postel
R: 250-Fred Fonebone
R: 250-Sam Q. Smith
R: 250-Quincy Smith
或者
- S: EXPN Executive-Washroom-Li st
- R: 550 Access Denied to You.
SMTP安全问题
- SMTP协议本身没有采用任何安全机制
- 全部信息采用明文形式传递
- 采用固定的端口号25进行邮件的发送
- 对邮件源没有任何验证
- 攻击者只需对TCP 25端口的数据流进行监听,就能分析出SMTP命令及其参数内容,进而分析出邮件内容
- 通过MAIL和RCPT命令的监听,分析其参数获知邮件的来源和去向,攻击者可根据这些信息进行假冒攻击。
- DATA命令很可能成为主动攻击的介入点,攻击者截获DATA命令,可篡改邮件内容
- 通过VRFY和EXPN命令的监听,攻击者可以掌握用户名和邮箱地址,进而进行假冒攻击。
- TURN命令可以使收发双方角色互换,攻击者利用这一命令可以逃避邮件过滤防火墙的检索,使得不允许外出的邮件出去,不允许进来的邮件进来,从而使过滤防火墙失去其应有功能
- From和reply-to不一致,将回复邮件导向攻击者
- 邮件炸弹(E-Mail Bomb)
- 任何一个人都可以没有任何限制地向因特网中的任意一个电子邮箱发送邮件
- 攻击者可以向某个邮件服务器的某个电子邮箱发送大量邮件,使得
- 用户邮箱挤爆,无法接收正常邮件。
- 邮件炸弹所携带的大容量信息不断在网络中传输,占用网络带宽
- 流行的邮件炸弹工具:MailBomb、EmailKiller
- 垃圾邮件(spam)
- 分类
- 良性垃圾邮件是各种宣传广告等对收件人影响不大的邮件
- 恶性垃圾邮件是指具有破坏性的电子邮件
- 危害性
- 占用大量的网络带宽资源、服务器资源,占用用户的处理时间
- 无辜邮件服务器被作为垃圾邮件转发站而被封,影响用户正常使用
- 可能具有欺骗性信息
- 可能包含恶意代码
- 产生原因
- SMTP没有严格的源验证
- 邮件中继/开放转发(OpenRelay):可通过邮件头的原始信息查看其中继路径
- 分类
SMTP安全问题防范
反垃圾邮件技术
- 第一代:过滤技术、地址列表技术
- 内容过滤、统计过滤
- 第二代:行为模式识别
- 利用概率统计数学模型对垃圾邮件进行分类分析统计 如,时间、频度、发送IP、协议声明特征、发送指纹等,不需要过滤邮件内容,提高过滤速度
- 第三代:电子邮件认证技术
- 针对垃圾邮件的伪造域地址或伪造回复地址的有效阻断技术
- 第一代:过滤技术、地址列表技术
反垃圾邮件组织
- 中国互联网协会反垃圾信息中心
- 中国反垃圾邮件联盟
SendMail
- SMTP最常用的实现方案是Sendmail。Sendmail有一个致命的缺陷:它常以root用户权限工作。这实际上违背了“最小信任”原则。SMTP后台程序不必以root权限运行
- 对于邮件管理人员来说,最大的问题是如何对这些邮件服务程序进行合理配置。Sendmail的配置规则非常复杂。
POP3协议
它是因特网电子邮件的第一个离线协议标准。POP3允许用户从服务器上把邮件存储到本地主机(即自己的计算机)上,同时删除保存在邮件服务器上的邮件。
telnet 服务器地址 110
S: +OK POP3 server ready
C: user alice
S: +OK
C: pass hungry // 明文传输
S: +OK user successfully logged on
C: list
S: 1 498
S: 2 912
S: …
C: retr 1
S: <message 1 contents>
S: …
C: dele 1
C: retr 2
S: <message 1 contents>
S: .
C: dele 2
C: quit
S: +OK POP3 server signing off
POP3安全问题
- 协议非常简单,明文传输,非常不安全
- user命令:口令明文传输,易被窃听
- APOP命令:基于口令认证中的“挑战-响应”机制,提高了口令传输的安全性,但可能遭受字典攻击,而且口令明文存储,易被窃取
- POP3服务器程序常以root权限运行,存在很大安全风险
MIME协议
MIME在1992年应用于电子邮件系统,后来也应用于浏览器。服务器通过MIME类型告诉邮件数据的信息类型
From: alice@crepes.fr | |
To: bob@hamburger.edu | |
Subject: Picture of yummy crepe. | |
MIME版本 | MIME-Version: 1.0 |
数据编码方法 | Content-Transfer-Encoding: base64 |
多媒体类型, 子类型 | Content-Type: image/jpeg |
编码后的数据 |
base64 encoded data … … …base64 encoded data |
MIME安全问题
- 邮件客户端根据MIME类型通过插件来识别并打开收到的文件,如果缺少MIME标识,可能导致系统识别出错
- 邮件中声称的MIME类型与实际的数据类型不符,导致安全问题,特别是实际的数据为含有危险动作的可执行程序或脚本
- MIME分部攻击:将恶意代码分散到多个MIME分部当中,躲避检测机制。
- MIME的其它安全风险:可能邮递可执行程序或含有危险的PostScript文件,是传播病毒和蠕虫的主要途径
MIME安全实例
电子邮件安全协议和标准
- PEM 保密增强邮件 美国RSA实验室开发,在电子邮件标准格式上增加了加密、鉴别和密钥管理的功能,采用基于层次的严格认证。
- S/MIME 安全多用途因特网邮件扩展协议 ,从PEM和MIME发展而来,采用基于CA的认证,被认为是商业环境下首选的安全电子邮件协议。
- PGP:实现邮件的加密、鉴别、签名、压缩等,采用以个人为中心的信任模型。
[ 笔记 ] 计算机网络安全_2_internet协议的安全性相关推荐
- [ 笔记 ] 计算机网络安全_5_防火墙原理与设计
[笔记] 计算机网络安全:(5)防火墙原理与设计 网络安全基础 internet协议的安全性 Web安全 网络扫描和网络监听 防火墙原理与设计 入侵检测系统 VPN技术 目录 [笔记] 计算机网络安全 ...
- [ 笔记 ] 计算机网络安全_1_网络安全基础
[笔记] 计算机网络安全:(1)网络安全基础 网络安全基础 internet协议的安全性 Web安全 网络扫描和网络监听 防火墙原理与设计 入侵检测系统 VPN技术 目录 [笔记] 计算机网络安全:( ...
- [ 笔记 ] 计算机网络安全_7_虚拟专网技术
[笔记] 计算机网络安全:(7)虚拟专网技术 网络安全基础 internet协议的安全性 Web安全 网络扫描和网络监听 防火墙原理与设计 入侵检测系统 VPN技术 目录 [笔记] 计算机网络安全:( ...
- [ 笔记 ] 计算机网络安全_6_入侵检测系统
[笔记] 计算机网络安全:(6)入侵检测系统 网络安全基础 internet协议的安全性 Web安全 网络扫描和网络监听 防火墙原理与设计 入侵检测系统 VPN技术 目录 [笔记] 计算机网络安全:( ...
- [ 笔记 ] 计算机网络安全_3_Web安全
[笔记] 计算机网络安全:(3)Web安全 网络安全基础 internet协议的安全性 Web安全 网络扫描和网络监听 防火墙原理与设计 入侵检测系统 VPN技术 目录 [笔记] 计算机网络安全:(3 ...
- 《计算机网络——自顶向下方法》学习笔记——计算机网络安全
计算机网络--计算机网络安全 计算机网络安全 什么是网络安全 密码学的原则 对称密钥密码体制 公开密钥加密 报文完整性和数字签名 密码散列函数 报文鉴别码 数字签名 端点鉴别 鉴别协议 ap1.0 鉴 ...
- 网络安全笔记1——Internet协议的安全性
网络安全笔记1--Internet协议的安全性 参考课程:中国大学MOOC<网络安全>--北京航空航天大学 文章目录 网络安全笔记1--Internet协议的安全性 <font co ...
- 计算机网络安全防护教案,计算机网络安全基础教案.DOC
计算机网络安全基础教案 计算机网络安全基础教案 袁津生 计算机网络安全基础教案 周 次 第 1,2 次课 日 期 章节名称 第1章 网络基础知识与因特网 授课方式 理论课( √ ) 实验课( ) 实习 ...
- 计算机网络与云计算研究背景,基于云计算背景下的计算机网络安全研究
宋彬彬 摘 要: 云计算可以用于商业计算方法,它可以使计算指令发给很多计算机组建的资源池上,使用客户可以按照自己的去求得到想要的计算方式.存储空间和信息服务,客户可以从逻辑底层硬件.网络协议和软件中 ...
最新文章
- html表格立体效果,用HTML实现凸(凹)起的立体效果的表格
- 企业中如何避免因网卡硬件问题产生的损失
- java代码实现看帖回帖功能_求助Java窗口菜单如何实现复制粘贴剪切等功能(内附源代码)...
- 安装Tensorflow出现错误提示conda activate tensorflow-cpu Could not find conda environment: tenso
- Apache2.4x版本的403问题
- Android中的5种数据存储方式
- python读取hadoop库数据_使用Python访问HDFS
- 用python计算矩形面积结果四舍五入保留两位小数_你还在计算器开平方?太low了吧,学霸考场都用这种方法开平方...
- pycharm安装后,找不到Python解释器怎么办
- 使用bottle进行web开发(9):文件上传;json传递
- Vue指令(二)--数组的变动
- Python argv小结
- npm run dev的实质
- 第四届蓝桥杯真题决赛java本科组
- 淘宝自动回复机器人配置手册——目前2018年淘宝主流自动回复软件一览
- 【面试】上海 java开发工程师/自动化测试开发工程师 面试题
- TAS5760M-Q1 放大器内部时钟误差被锁存问题
- 适量饮酒,对身体好?医生说:恰恰相反!
- 安卓10(Android10\API29)保存图片到相册DCIM/Camera
- 使用Matlab和Minepy工具箱做变量的互信息MIC (maximal information coefficient ) 分析
热门文章
- 360极速浏览器打开自动开启全屏模式(其他浏览器自测)
- 查看端口被占用并删除端口( Ubuntu )
- Zabbix监控进程CPU及内存
- E3 1230V3和I5-4670K的比较
- 【半小时急速装机】联想拯救者(Y7000P)Win10 + Ubuntu18.04完整教程:CUDA10+Cudnn+Tensorflow2.0正式版
- 规划和安装Exchange 2007
- 倩女手游经验计算机,倩女手游三界实验室第一期 气血值的计算及提升方法
- 沃通时间戳与德方智链达成合作,保障区块链有效运转
- qt的mysql编程_界面编程之QT的数据库操作20180801
- 05. 手写Spring核心框架