传输层安全
传输层概述
传输层主要负责提供端到端的数据传输,传输层在终端用户之间提供透明的数据传输,向上层提供可靠的数据传输服务。传输层在给定的链路上通过流量控制、分段/重组和差错控制来保证数据传输的可靠性。传输层的一些协议(如TCP)是面向连接的,这就意味着传输层能保持对分段的跟踪,并且重传那些失败的分段。
传输核心功能
- 协议与端口:传输层可以为不同的应用提供不同的传输服务,每种服务使用的端口号也不相同
- 套接字:每一个端口都与套接字相关
- 排序:传输层会对比较大的数据进行分组,接收端需要进行排序
- 序列拦截:TCP为了快速滑窗协议/错误重传/避免重复接收,使用了序列号,刚开始随机,后来则有规律
传输层的威胁
-
拦截
-
开放端口的折中:暴露服务器的多个端口会加大风险隐患,但是开放端口越少,提供的服务就越有限
-
端口扫描:
采集服务信息,以便确定攻击的方式 -
信息泄露
传输层传输的数据大多数情况下不会进行加密处理,这使得数据有被窃听的风险
TCP侦察
使用TCP协议进行信息的获取
1.初始窗口大小
2.TCP选项
3.序列号
4.客户端口号
5.重试
端口扫描
利用TCP建立连接的方式判断服务器开放了那些端口,一个简单的程序可以看文章
TCP扫描程序
TCP拦截
任何干扰TCP服务的攻击都属于TCP拦截
全会话拦截:攻击者有直接数据链路访问。一般会观察网络地址、端口以及连接的序号。需要比正常用户更快的响应才能拦截
如:伪装成免费上网的WIFI热点
ICMP和TCP拦截:ICMP能够报告不成功的连接或重定向网络服务。恶意ICMP能将TCP重定向到不同端口和不同的主机,攻击者需要知道TCP连接的序号。
TCP DOS攻击
针对TCP服务的拒绝服务攻击DOS很容易执行,任何对端口或序号的干扰都会使连接断开。
SYN攻击:服务器收到SYN包会分配内存,大量SYN会消耗可用内存;或在连接超时前耗
尽连接数,让服务不能再响应
RST和FIN攻击:攻击者在能看到网络通信数据的情况下,可以发RST(FIN)数据包来结束已建立的连接
缓解TCP攻击的方法
改变系统框架:优化系统的一些默认参数,让它能抵御一定能力的攻击;变更服务端口
阻断攻击指向:利用防火墙来允许可能的连接,阻断其他流量
识别网络设备:根据不同设备的已知漏洞,采取预防措施
状态分组检测:利用状态防火墙来拦截非正常的数据包
入侵检测系统IDS:利用IDS对网络进行监控,识别攻击、非正常的流量和访问行为,作出提醒
入侵防御系统IPS:扩展了IDS功能,提供保护应对行为。例如拦截已知攻击流量,或将试探攻击行为牵引到蜜罐系统中
UDP安全威胁
非法的进入源
UDP不需要握手协议,任何主机都能直接连接过来,无需鉴别,能淹没慢的UDP服务
UDP拦截
无需身份鉴别,任何人都能发送数据给UDP服务,这些数据必须UDP服务的上层应用协议才能处理。容易拦截和替换。
UDP保持存活攻击
UDP不能指示连接是关闭还是打开,防火墙在UDP端口空闲一段时间后才会关闭 。持续攻击让防火墙保持多个UDP端口打开,耗尽防火墙允许的连接数
UDP Smurf攻击
类似于ICMP Smurf攻击,攻击者假冒某主机(受害者)发送多组UDP数据给足够多的UDP服务,利用返回的UDP数据包将受害者主机淹没
UDP侦察
可以进行UDP端口扫描,如果某UDP端口没有打开,则会返回ICMP协议中的“目的不可达”数据包。可以利用UDP扫描来确认目标系统开启的服务,也可以耗尽目标系统的CPU资源
DNS风险及缓解方法
DNS(Domain Name System)的主要作用是将枯燥难记的IP地址转换为便于人们记忆的主机名称,大大方便了互联网许多应用
DNS不需身份验证,基于不可靠的UDP服务,存在安全风险。
需要针对的提出缓解方法
SSL协议(Sercure Scoket Layer)
- 真实性:客户机和服务机在进行握手时交换数字证书,通过验证证书来验证身份的真实性
- 机密性:加密客户机和服务之间传输的数据,保证了信息的机密性
- 完整性:通过加密算法和HASH算法保证传输数据的完整性
组成:
层1:握手协议:记录连接,协商密钥
层2:记录协议:定于数据的传输格式,SSL记录协议建立在传输层协议(如TCP)之上,为高层协议(如HTTP、FTP等)提供数据封装、压缩、加密等基本功能的支持。