接收端收到SYN包,发送SYN_ACK,对发送端进行确认,进入SYN_RECV状态;发送端收到SYN_ACK包,向接收端发送ACK,双方连接建立完成 。
文章插图
TCP三次握手
由于TCP协议是面向连接的传输控制协议,因此DoS攻击的主要目的就是使用户主机或网络无法接收或处理外界请求 。比如通过制造大流量的无用数据,造成网络拥塞,使被攻击的主机无法和外界正常通信;
利用重复连接缺陷,反复发送重复服务请求,使其无法正常处理其它请求;
又或利用协议缺陷,反复发送攻击数据,占用主机或系统资源,导致死机等 。
简单来说,DoS(Denial of Service)拒绝服务攻击通常使用数据包淹没本地系统,以打扰或严重阻碍本地的服务响应外来合法的请求,使本地系统奔溃 。
SYN flood 攻击是最常见的 DoS 攻击类型 。攻击者将自身 IP 源地址进行伪装,向本地系统发送 TCP连接请求;
本地系统回复SYN-ACK至伪装地址,导致本地系统收不到RST消息,无法接收ACK回应,将一直处于半连接状态,直至资源耗尽 。攻击者发送连接请求速度比 TCP超时释放资源速度更快,利用反复连接请求,导致本地服务无法接收其它连接 。
解决SYN flood 的最好方法就是做好防范策略,通过网络性能管理工具,自动筛选可疑数据包,缩短 SYN Timeout 时间,设置 SYN Cookie,为每一个请求设置Cookie,如果短时间内收到某个IP的重复SYN报文,就认定为攻击,抛弃该IP地址 。
DNS攻击IP协议为了将数据信息包从原设备传送到目的设备,需要依赖IP地址与IP路由器 。IP地址是机器语言,通常较长,所以尽管IP地址具有唯一性,但是不方便记忆与使用,人们便在此基础上发明了DNS 。DNS(Domain Name System)即域名系统,域名通常较短,兼具可读性与实用性 。由于域名与IP地址呈一一对应关系,因此,上网时只需在地址栏输入域名,系统会直接进行域名解析,将域名翻译成IP地址 。
在执行完域名搜索后,域名服务器会保存域名记录,每条记录都会包含域名与IP地址 。如果域名服务器的某条地址被人为修改,那么就可以人为操作用户的访问地址,这种行为被称为“域名劫持” 。“域名劫持”的始作俑者是域名服务器提供商,因此目前解决该问题的有效方法是弃用或换用域名服务器 。
除“域名劫持”外,还有另外一种常见的DNS攻击叫做“域名污染”或“域名欺骗” 。当电脑发送“域名查询”至域名服务器后,域名服务器会将回应发送回电脑,发送请求与接收信息是一个过程,中间会出现时间差,网络攻击会在接收信息前,伪造错误应答至电脑,那么该信息即为错误IP 。
面对网络攻击,我们除了需要提高安全意识,积极尽责地维护系统,加强防火墙设置外,还可以通过对数据包进行分析进而追溯网络攻击 。
通过对网络数据进行采集与解码分析,掌握网络中最细微的变化,针对网络攻击的特征值或者行为进行有效的告警信息配置,可以快速定位网络中的攻击 。
也可以通过使用具有安全防护功能的网络性能管理工具,譬如天旦网络性能管理NPM,支持TCP端口扫描、ARP攻击与DOS攻击等可疑数据包自动分析,实现自动告警,保障数据信息的正常传输与使用 。
推荐阅读
- Python 实现端口扫描
- 低延迟流媒体协议SRT、WebRTC、LL-HLS、UDP、TCP、RTMP详解
- 35岁的P7程序员被通知不再续签合同,输出社会,怎么办?
- 程序员必备的六个硬核网站,大大提升你的开发效率
- Java程序员找工作的难点在哪里?找工作对症下药,注意这3点
- typora+PicGo+github搭建程序员必备创作环境
- 月薪两万程序员应该知道的编程模型
- 网络基本功:http报文及TCP拥塞控制机制
- TCP 的 Keepalive 和 HTTP 的 Keep-Alive 是一个东西吗?
- 最多能创建多少个 TCP 连接?