常见网络攻击技术
链路层攻击
电磁泄露
原理
电磁信息泄露的根源是设备的电磁辐射可以沿导线或空间向外辐射;而在一定信噪比和强度的条件下,这些辐射可以被还原从而泄露通信内容。
防范
降低辐射强度
屏蔽、隔离、设备线路良好、采用低泄露设备等。
加大信噪比
滤波、干扰器等。
测信道攻击
原理
测信道攻击是一种分析利用设备在加解密过程中产生的辐射、功耗、延时物理信号,推断出加解密过程的具体信息的攻击方式
分类
常见测信道攻击
简单功耗攻击 SPA
简单地观测加解密过程中设备的功耗来分析密钥,可以通过增加随机噪声的办法抵御。
差分功耗攻击 DPA
对SPA的增强,需要统计大量加解密过程的数据进而分析出密钥,其特点是能够利用极其微小的差异进行攻击。抵御该类攻击需要综合考虑加密算法的安全性,也要兼顾硬件安全。
电磁辐射攻击 EMA
EMA通过分析设备运行过程中的电磁辐射来推断密钥,一般适用于硬件设备制造工艺有缺陷的情况。可以通过电磁屏蔽等方法抵御。
时间测量攻击 TMA
TMA利用了设备在加解密不同数据时的时延特征来分析密钥;可以通过优化算法的方法实现。
MAC地址欺骗
原理
以太网的MAC地址在网卡被初始化时读入寄存器,此后每次发送或接收以太网帧时都会与该寄存器内容进行比较;而一些I/O操作可以修改寄存器内容,从而将设备的MAC地址替换成攻击者希望的地址。
防范
- 禁用对以太网地址寄存器的I/O操作
- 追踪线路以确保没有非授权网卡存在网络中
- 确保线路上已授权的设备使用的都是自身的MAC地址
网络监听
原理
任何主机发送的以太网帧会被同一网段中的所有网卡接收,但各网卡一般会忽略非到达本设备的帧。
以太网接口中存在一种混杂模式,可以使设备能够接收任何收到的帧信息,攻击者可以利用这个特点监听网段中的所有报文。
防范
- 利用交换机、网桥等设备对数据流进行限制
- 禁用混杂模式
- 链路层帧加密
网络层攻击
网络扫描
使用如ping、tracert、figner等工具获取网络中主机的基本信息(地址、端口、日志、路由等)
IP地址欺骗
原理
网络层的IP协议并不对报文的IP地址进行验证,攻击者可以主动构造报文的IP地址以实现特定目的。
目的
- 隐藏主机IP,以防被反向跟踪
- 通过修改IP地址以绕过防火墙或某些认证
分类
单向欺骗
通过修改主机配置或使用编程手段主动构造报文实现的IP伪造,不考虑回传报文
双向欺骗
需要考虑回传报文的情况,如源路由欺骗
防范
主机防护
- 权限管理,不允许随意修改IP配置
网络防护
- 在网络入口处禁止外来数据包带有内部地址
- 在网络出口处禁止内部包带有外部地址
源路由防御
禁止此类报文
ARP欺骗
review:ARP路由过程
- 主机A希望与网关M通信
- A广播ARP请求,希望获得M的地址
- 交换机转发该请求至各个网关,并更新自身的端口映射表
- 各网关更新
- M在更新端口映射表后向A发送自己的地址的响应报文
- 网关更新ARP缓存表
- A收到ARP响应报文后更新缓存表
- 建立通信
原理
攻击者篡改ARP请求报文中的MAC地址,使目标网关相信其具有某个特定的物理地址
防范
- 类似MAC地址欺骗的防范
- 记录ARP日志,一旦有未经允许的修改即发出警告
路由欺骗
RIP欺骗
原理
RIP协议中,路由器不会对RIP报文作出认证,因此攻击者可以声称自己的路由器是到达某一节点的最近设备,从而诱导其他路由器将送往该节点的报文转发至自身路由器以实现监听、篡改。
防范
- 路由器对新的路由信息进行检查,验证其是否可达
- 路由信息都是可查的,越大的路由网络越容易检测池RIP欺骗;可以通过定期检查路由日志减少受攻击可能性;
- RIP报文加入身份认证,但难以实现
源路由欺骗
原理
IPv4报文的可选字段中有LSRR、SSRR两个选项,开启后则会记录报文在路由过程中经过的一些重要节点。而服务器处理一些特殊的报文时,并不是按照源地址直接回送,而是根据路由记录反向传送。
因此,攻击者可以恶意开启源路由选项,从而诱导服务器按照路由记录反向发送报文以截取回送报文。
防范
关闭源路由选项
碎片攻击
原理
链路层数据包具有最大传输单元(MTU),超出该长度的报文会进行分片传输。而IP碎片攻击主要利用了系统在处理IP分片时的一些缺陷和不周全的地方。
泪滴(teardrop)攻击
泪滴攻击利用重叠的IP分片进行攻击,它对服务器发送两个或多个IP分片,其中后一个分片的偏移量小于前一分片报文中声明的长度且两个分片的总长度也小于该长度,从而产生重叠。此时服务器会在进行报文重组时计算出一个负值,进而分配出超量资源直至系统崩溃。
ip包碎片攻击
通过发送多个IP分片报文,它们的总长度超过单一IP报文的最大限制(65536),使得系统在计算资源时产生溢出。
防范
- 升级系统,添加补丁
- 一些系统具有分片重组功能,可以检测出异常分片
ICMP攻击
原理
ICMP是网络层的辅助协议,为网络层提供控制信息报文,但它也没有对报文进行验证的机制。攻击者可以主动发送某些ICMP报文,诱导系统作出某些错误响应。
ip扫描
对网络中的计算机发送ICMP的请求应答报文,若得到对方的响应报文,这可以证明对方主机开机,以此实现对网络中主机存活性的扫描。
ping of death
路由器对ICMP报文作出了最大长度限制(64KB),可以发送声称超过该长度的ICMP报文,从而使目标机在处理报文时崩溃。
ping flooding
Dos攻击的一种,即在同一时刻对一个主机发送大量ICMP报文,从而耗尽主机资源。
Smurf攻击
攻击者伪造一个源地址是受害主机,目的地址是子网的广播地址的报文,从而使得ICMP应答报文淹没受害主机。
ICMP重定向攻击
ICMP具有重定向功能,当网关检测到当前路由不是最优路径时,会向主机发送一个重定向报文。
攻击者可以利用这个性质,将一个恶意路径传达给主机,从而使得该主机的报文丢失或者监听篡改。
其他攻击
攻击者可以利用主机不可达或者超时报文,干扰正常的通信流程。
防范
- 禁止不必要的ICMP报文,严格控制其适用范围
- 禁止未经请求而收到的应答报文
- 主机与路由器的路由表不以ICMP重定向报文为唯一依据
运输层攻击
端口扫描
全连接扫描
对主机的端口进行一次连接尝试,若连接成功则说明端口开放。这种方法容易被发现。
SYN扫描
不进行全过程连接扫描,而是发送一个单独的SYN数据包,若主机返回SYN+ACK报文,则再回送RST报文断开连接,否则视为未开放。
FIN扫描
利用已关闭端口会对FIN报文回送一个RST报文的特征,可以扫描主机端口是否开放。这种方法比前两种更隐蔽。
UDP ICMP扫描
向未开启端口发送UDP报文时,服务器会回送一个ICMP_PORT_UNREACH的ICMP报文,据此可以进行扫描。
防范
对一段时间内端口收到的有端口扫描嫌疑的报文类型进行统计,若数量巨大或者呈现出一定的时间规律(针对慢扫描),则可以认定为受到扫描。
TCP初始序号预测
原理
基于对TCP序列号生成算法的分析得出特定时间下通信双方的序列号,从而进行通信欺骗。
TCP序列号生成算法
- 每秒使用一个常量增加序列号,若产生新的连接,则使用另一常量增加
- 根据系统时间产生初始指,并随系统时间变化
- 选择一个合适的伪随机数生成算法,比较难以预测
对于前两种算法,攻击者可以向服务器发送一个SYN包获取系统当前的序列给,并根据往返时间估计计算出序列号。
TCP欺骗
原理
非盲欺骗
要求攻击者和目标主机在同一子网
- 攻击者首先要使一台目标主机的信任主机瘫痪
- 使用该被信任主机的地址和端口号伪造TCP SYN报文发送给目标主机
- 利用嗅探技术截获从目标主机发出的SYN+ACK报文,获取其中的序列号
- 利用截获的序列号再次伪造一个ACK报文完成三次握手
- 建立连接后攻击者可以任意与目标主机通信
盲欺骗
攻击者和目标主机不在同一子网
攻击者可以利用路由欺骗技术实现网络穿透,其余过程与非盲欺骗相同
防范
- 采用合适的序列号生成算法
- 拒绝来自外网而源地址属于内网的报文(针对盲攻击)
- TCP协议加密
TCP会话劫持
原理
该技术是序列号预测与TCP欺骗的综合运用,其主要用于攻击以TCP协议通信的应用程序。由于TCP连接在建立后就不再提供其他保证措施,因此攻击者可以利用会话劫持绕过一些应用程序的口令认证。
防范
TCP数据加密或者应用层加密,攻击者将因为没有会话密钥而无法加密伪造信息。
SYN flooding
原理
TCP等待重传机制,通过建立大量半开放式连接(即发送无效地址的SYN连接请求或拒绝响应SYN+ACK响应报文),使得目标机花费大量资源在等待重传上。
这种攻击的特点是范围广、难溯源、短时间内产生大量SYN请求。
防范
缩短SYN timeout的时长
记录SYN请求的源地址,若短时间内收到大量同一地址的连接请求,则认为是受到了攻击
负反馈策略
先设置一个最大半连接数量,对于超过该数目的SYN请求予以忽略。
若短时间内半连接数量过多,则认为遭到攻击,并进行减少SYN等待时间、减少SYN+ACK重传次数等应对操作。
容忍策略
由于SYN flooding攻击在开始后就不再进行域名解析,故可以在认定受到攻击后更换域名的地址,此时攻击方只是在攻击一个空地址或无效地址。
负载均衡策略
采用分布式服务器,则攻击者同一时间只能攻击一台服务器,从而最大限度减少其对正常服务的影响。
防火墙技术
采用防火墙规则过滤、带宽限制等技术。
Land攻击
原理
向目标主机发送一个源地址与目的地址都为该主机地址的SYN报文,使其创建一个自连接,大量这样的空连接会迅速消耗目标主机的资源。
防范
- 系统补丁
- 丢弃源地址和目的地址一样的报文
RES和FIN攻击
原理
TCP报文种RST位和FIN位的作用。
攻击者向目标机发送一个包含RST位的报文,则目标机会关闭现有连接;发送一个带有FIN位的报文后,目标机会认为通话结束,原有通信之间的报文会被认为是网络故障的无效包。
这种攻击常用于打断正常通信过程。
防范
该类型攻击的核心仍然是截获正常通信的报文然后分析序列号,因此防范措施可参考前文。
winnuke
原理
利用了NetBIOS协议种外带数据(OOB)漏洞。
Windows NT系统的137、138、139端口在收到URG数据后会死机。
防范
- 系统升级
- 禁用NetBIOS协议
- 禁用137、138、139端口
UDP flooding
原理
利用UDP特殊端口的功能
echo(7)
回送收到的字符串。遇到回车键后整行送回,因此客户端发送的一行数据会产生两行输出
chargen(19)
随机生成字符串
攻击者控制UDP 19端口发送一个写满ASCII字符串的UDP报文至7端口,若其中含有回车,则7端口回送数据。根据echo的性质,二者之间的通信量会越来越多直到主机崩溃。
防范
- 禁用特殊端口
- 采用防火墙监控特殊端口
应用层攻击
DNS攻击
DNS劫持
攻击者将网页URL改写为自己的服务器,用户在访问该网页时实际上是对攻击者服务器发送请求。
DNS欺骗
由于DNS协议不对信息进行身份认证,因此攻击者可以使用一个假的DNS响应来诱导用户访问自身服务器。
防范
反向域名解析,对解析后的IP地址再转换回DNS域名进行验证。
Finger
finger服务是早期UNIX系统中用于公开自身某些信息的服务,其目的是方便不同用户之间的交流。但其具有一系列安全漏洞,从而可以被攻击者利用以获取用户隐私信息。
http服务攻击
Unicode解码漏洞利用
在IIS服务器中,web服务都使用了虚拟目录,即浏览器显示的路由和服务器真实目录名并不一样,用户访问文件的真实过程是将服务器本地目录和URL路由拼接而后访问服务器文件。因此就有必要对形如../
、..\
之类的目录转换符号进行过滤。
但在Unicode字符集中,特殊符号/
是可以用%c1%c1
等效替代,就可以实现对前面提到的过滤过程进行绕过。
防范
- 系统补丁
- 防火墙对http路由进行预解码
Web重放攻击
原理
攻击者不断重复发送一个有效的数据传输,以达到欺骗服务器的目的,通常用于绕过某些认证机制。
如用户可以截取一个有效cookie
,之后不断在报文中重放该cookie
以假冒合法用户。
防范
- 根据算法生成随机数验证
- 根据时间戳进行验证,要求前后端严格同步
- 采用流水号
其他网络攻击
缓冲区溢出攻击
原理
向程序的堆栈区填入过多的数据,造成缓冲区溢出,破坏正常堆栈结构,使程序执行其他指令。例如可以将函数调用的返回地址改成某个指令,当函数返回时,就会执行该指令。
Dos和DDos攻击
原理
Dos和DDos攻击的目的都是耗尽主机资源使其无法正常服务,其中DDos攻击是分布式的,同一时刻可以有大量计算机参与攻击,其威力远大于Dos攻击。
直接攻击
直接攻击由攻击者控制攻击傀儡主机直接对服务器发起攻击。
反射攻击
反射攻击则是攻击者控制攻击傀儡主机对一组预先确定的反射节点发起请求,之后由反射节点对服务器发起大量访问。
防范
- 优化网络结构,调整路由表
- 使用路由带宽分配技术
- 禁止不必要的服务
- 扫描漏洞,系统补丁
- 及时与傀儡主机取得联系
- 蜜罐技术与负载均衡技术
- 流量清洗
SYN flooding防范
- 随机丢包
- 特征匹配
- 采用Cookie技术将TCP握手变为无连接模式
TCP全连接防范
- 限制单个IP连接上限
网络安全防护策略
链路层安全性
在PPP协议中,双方在完成LCP(控制协议)后进行一次身份鉴别,再进行后续连接。
常用的鉴别协议有CHAP和PAP协议。
网络层安全性
IPSec协议,包括封装载荷安全(ESP)和鉴别头(AH)。
ESP协议用于提供数据加密和完整性保护,但在IP验证方面作用不大。
AH协议用于提供认证服务,但不对数据进行加密。
传输层安全性
安全套接层SSL和传输层安全协议TLS。
SSL层在TCP通信之上建立了一个新的加密信道,以达到保护数据的目的。
应用层安全性
应用层常见安全协议
PGP(邮件安全)
S-HTTP(web应用层,https是传输层安全协议)
SET(电子交易安全协议)
SSH(远程连接)
Kerberos(S/C结构下的身份识别)