网络安全笔记:Internet安全体系结构(下)
该部分为本科期间网络安全课程笔记备份。
传输层
传输层核心功能
协议和端口:传输层为不同的应用提供不同
的传输服务:TCP/UDP,每种应用服务的端口也不同
- 套接字:每个端口都跟套接字相关
- 排序:传输层自动为大的数据进行分组,接收端需要排序
- 序列拦截:TCP为了快速滑窗协议/错误重传/避免重复接收,使用了序列号,刚开始随机,后来则有规律
传输层风险
都是针对TCP/UDP服务的安全威胁
- 传输层拦截:攻击者必须模拟接收方对TCP序号进行正常应答,让发送方不觉察拦截
- 开放端口的折中:减少服务端口可降低攻击风险,但灵活的服务需要开放多个动态端口
- 端口扫描:采集服务信息,以便确定攻击的方式
- 信息泄露:传输层协议并不加密数据
TCP侦查
操作系统框架
TCP服务允许参数定制以优化连接,默认选项由操作系统决定,可由此判断操作系统版本:
初始窗口大小、TCP选项、序列号、客户端口号、重试
端口扫描
测试TCP端口,记录得到的回答,综合分析得到很多关于目标主机的有用信息(比如:是什么系统?是否开启终端服务?是否有可写的FTP目录,是否能用Telnet?)
- SYN-ACK: 端口打开
- RST: 没有打开
- 什么回答也没有
还有其他的TCP扫描,需要熟悉TCP协议文档
日志
操作系统:有连接日志,一般不记录不完整的TCP连接
IDS和IPS:比较全面,可以监控和记录SYN、ACK、RST分组,甚至可以阻止扫描
TCP拦截
干扰TCP服务的攻击都属于TCP拦截
- 全会话拦截:攻击者有直接数据链路访问。一般会观察网络地址、端口以及连接的序号。需要比正常用户更快的响应才能拦截
- ICMP和TCP拦截: ICMP能够报告不成功的连接或重定向网络服务
TCP DOS
针对TCP服务的拒绝服务攻击DOS很容易执行,任何对端口或序号的干扰都会使连接断开。
- SYN攻击:服务器收到SYN包会分配内存,大量SYN会消耗可用内存;或在连接超时前耗尽连接数,让服务不能再响应
- RST和FIN攻击:攻击者在能看到网络通信数据的情况下,可以发RST(FIN)数据包来结束已建立的连接
- ICMP攻击:类似于TCP重置,ICMP可用来断开连接
缓解TCP攻击的方法
- 改变系统框架:优化系统的一些默认参数,让它能抵御一定能力的攻击;变更服务端口
- 阻断攻击指向:利用防火墙来允许可能的连接,阻断其他流量
- 识别网络设备:根据不同设备的已知漏洞,采取预防措施
- 状态分组检测:利用状态防火墙来拦截非正常的数据包
- 入侵检测系统IDS:利用IDS对网络进行监控,识别攻击、非正常的流量和访问行为,作出提醒
- 入侵防御系统IPS:扩展了IDS功能,提供保护应对行为。例如拦截已知攻击流量,或将试探攻击行为牵引到蜜罐系统中
- 结合蜜罐技术的IPS:

UDP安全威胁
- 非法的进入源:UDP不需要握手协议,任何主机都能直接连接过来,无需鉴别,能淹没慢的UDP服务
- UDP拦截:无需身份鉴别,任何人都能发送数据给UDP服务,这些数据必须UDP服务的上层应用协议才能处理。容易拦截和替换。
- UDP保持存活攻击:UDP不能指示连接是关闭还是打开,防火墙在UDP端口空闲一段时间后才会关闭 。持续攻击让防火墙保持多个UDP端口打开,耗尽防火墙允许的连接数
- UDP Smurf攻击:类似于ICMP Smurf攻击,攻击者假冒某主机(受害者)发送多组UDP数据给足够多的UDP服务,利用返回的UDP数据包将受害者主机淹没
- UDP侦察:可以进行UDP端口扫描,如果某UDP端口没有打开,则会返回ICMP协议中的“目的不可达”数据包。可以利用UDP扫描来确认目标系统开启的服务,也可以耗尽目标系统的CPU资源
SSL协议的安全服务
真实性: 客户机和服务器在进行握手时交换数字证书,通过验证证书保证彼此身份的真实性。
机密性: 在客户机和服务器之间传输的所有数据都经过了加密处理,保证信息的机密性。
完整性: 利用加密算法和Hash函数来保证客户机和服务器之间传输的数据的完整性。
SSL协议的组成
SSL协议分为上下两部分:上层为SSL握手协议,下层为SSL记录协议。
SSL握手协议主要用来建立客户机与服务器之间的连接,并协商密钥。
SSL记录协议则定义了数据的传输格式。

SSL握手协议
SSL握手协议提供了客户机与服务器之间的相互认证、协商加密算法、用于保护在SSL记录中发送的加密密钥
握手协议在任何应用程序的数据传输之前进行。

SSL记录协议
SSL记录协议建立在传输层协议(如TCP)之上,为高层协议(如HTTP、FTP等)提供数据封装、压缩、加密等基本功能的支持。

DNS风险及缓解方法
DNS(Domain Name System)的主要作用是将枯燥难记的IP地址转换为便于人们记忆的主机名称,大大方便了互联网许多应用
DNS不需身份验证,基于不可靠的UDP服务,存在安全风险。
- 系统脆弱性
- 协议脆弱性
- 域名欺诈:事务ID欺骗、缓存中毒
- 网络通信攻击:DoS攻击、恶意网址重定向、中间人攻击
- 实现脆弱性:算法错误、非随机报文ID、BIND漏洞
- 操作脆弱性:域名配置攻击、域名注册攻击、信息泄露
- 协议脆弱性
需要针对的提出缓解方法。
DNS单点故障

故障应对:

DNS劫持
利用黑客手段劫持某DNS服务器,变更其管辖的域名解析
DOS攻击
- 针对DNS服务器的DOS攻击
- 利用DNS针对普通用户的DOS攻击
- 入侵DNS后IP地址替换攻击:
- 查询DNS的反弹攻击
- 入侵DNS后IP地址替换攻击:
DOS伪造攻击

缓冲区中毒
DNS缓存机制,让客户主机和本地DNS服务器不会频繁查询,减少不必要的带宽消耗和客户端延迟,提高DNS基础设施的可拓展性。
DNS缓冲区中毒指的是在DNS缓冲区(缓存服务器)中写入错误的数据,使其被其他查询客户端获得。
区域信息泄露
主从DNS服务器之间进行数据同步时,交换的信息含有网站内部拓扑、主机名、操作系统等信息。
捕获这些信息可以得知网站中一些存在漏洞的主机,进一步发起攻击
应对:数据同步过程加以端对端保护
主从DNS数据更新的数据采集:

(数据更新关键路径)
BIND攻击
DNS实现不完善带来的风险
使用最为广泛的DNS服务器软件为BIND(Barkeley Internet name domain),为免费软件,具有广泛的使用基础。在Linux与Windows下都有相应版本。
BIND在提供高效DNS服务的同时,也存在一些安全漏洞。可以执行远程缓冲溢出攻击和DOS攻击
DNS安全措施
- DNS服务器和用户之间的身份认证
- 每次查询的签名认证
- 可信DNS验证:公共DNS的查询结果,发
- 送到可信安全公司的云服务器校验,答复不需要立即返回,只需要在合适的时间内响应就行。例如1分钟内。





浙公网安备 33010602011771号