01-Kubernetes 组件介绍

01-Kubernetes 组件介绍,第1张

Denial of Service,简称DoS,造成DoS攻击的行为被称为DoS攻击,其目的是使计算机或网络无法提供正常的服务。

常见的DoS攻击有计算机网络 带宽攻击 连通性攻击

带宽攻击 指以极大的通信量冲击网络,使得所有可用网络资源都被消耗殆尽,最后导致合法的用户请求无法通过。</br>

连通性攻击 指用大量的连接请求冲击计算机,使得所有可用的 *** 作系统资源都被消耗殆尽,最终计算机无法再处理合法用户的请求。

常用攻击手段有:SYN Flood、WinNuke、死亡之Ping、ICMP/SMURF、Finger炸d、Land攻击、Ping洪流、Rwhod、Teardrop、TARGA3、UDP攻击等。

书中以SYN Flood攻击为例,详细介绍这种典型的DoS攻击:

SYN Flood是一种利用TCP协议缺陷,发送大量伪造的TCP连接请求,使被攻击方资源耗尽(CPU满负荷或内存不足)的攻击方式。

SYNFlood攻击利用了TCP协议中的三次握手(Three-way Handshake)

SYN Flood攻击的具体原理:</br>

TCP连接的三次握手中,假设一个用户向服务器发送了SYN报文后突然死机或掉线,那么服务器在发出SYN+ACK应答报文后是无法收到客户端的ACK报文的(第三次握手无法完成)。

这种情况下服务器端一般会重试(再次发送SYN+ACK给客户端)并等待一段时间后丢弃这个未完成的连接。这段时间的长度称为SYN Timeout,一般来说这个时间是分钟的数量级(大约为30s~2min);</br>

一个用户出现异常导致服务器的一个线程等待1分钟并不是什么很大的问题,但如果有一个恶意的攻击者大量模拟这种情况(伪造IP地址),服务器端将为了维护一个非常大的半连接列表而消耗非常多的资源。

即使是简单的保存并遍历也会消耗非常多的CPU时间和内存,何况还要不断对这个列表中的IP进行SYN+ACK的重试。</br>

如果服务器的TCP/IP栈不够大,最后的结果往往是堆栈溢出崩溃——即使服务器端的系统足够强大,服务器端也将忙于处理攻击者伪造的TCP连接请求而无暇理睬正常客户的请求(毕竟客户端的正常请求比率非常之小),此时从正常客户的角度看来,服务器失去响应,这种情况就称作:服务器端受到了SYN Flood攻击(SYN洪水攻击)

拒绝服务攻击主要是利用了系统的一些漏洞。漏洞利用拒绝服务攻击是一种利用漏洞造成软件不能正常运行的攻击方式。这种拒绝服务不依赖大量傀儡机,也不需要发送大量访问请求,而仅仅是利用目标节点软件的安全漏洞,通过精心构造恶意数据包,造成目标节点软件不能有效运行。

分布式拒绝服务(DDoS:Distributed Denial of Service)攻击是一种资源耗尽型攻击,通常也被称作洪水攻击。</br>

利用分布于网络上的大量节点向同一目标节点发起的引起目标节点资源被大量消耗而不能正常对外提供服务的网络攻击方式。

分布式拒绝服务攻击主要是指那些借助外界的平台,如客户或者是服务器本身,把不同的计算机系统联合在一起,对其进行攻击,进而加倍地增强拒绝攻击的成果。一般情况,攻击者将分布式拒绝服务攻击的主控程序安装在一个用于控制的计算机上,将受控程序安装部署在因特网的多台计算机上。主控程序可以与受控程序进行通信并控制受控程序的行为,当主控程序发送特定的指令时,受控程序即可根据指令发动攻击。

DDoS攻击通过大量合法的请求占用大量网络资源,以达到瘫痪网络的目的。这种攻击方式有以下几种:

分布式拒绝服务攻击的步骤如下:</br>

第1步:攻击者使用扫描工具扫描大量主机以寻找潜在入侵目标;</br>

第2步:黑客设法入侵有安全漏洞的主机并获取控制权。这些主机将被用于放置后门、守护程序甚至是客户程序;</br>

第3步:黑客在得到入侵计算机清单后,从中选出满足建立网络所需要的主机,放置已编译好的守护程序,并对被控制的计算机发送命令;</br>

第4步:黑客发送控制命令给主机,准备启动对目标系统的攻击;

第5步:主机发送攻击信号给被控制计算机开始对目标系统发起攻击;

第6步:目标系统被无数伪造的请求所淹没,从而无法对合法用户进行响应,DDoS攻击成功。

DDoS攻击的效果是非常明显的,由于整个过程是自动化的,攻击者能够在5s钟内入侵一台主机并安装攻击工具。也就是说,在短短的一小时内可以入侵数千台主机,并使某一台主机可能要遭受1000MB/s数据量的攻击,这一数据量相当于104亿人同时拨打某公司的一部电话号码。

分布式反射拒绝服务攻击(DRDoS:Distributed Reflection Denial of Service)是一种较新的资源耗尽型拒绝服务攻击。

与分布式拒绝服务攻击使用伪造源IP地址不同,分布式反射拒绝服务攻击的来源IP地址全是真实地址,这些真实的网络节点本身并没有安全漏洞,而是利用TCP三次握手来实现的。

首先,攻击者通过控制的傀儡机使用受害者IP地址作为源地址向任意处于活动状态的网络节点(如核心路由器、域名服务器、大型网站等)发送带有SYN标记的数据包,也就是TCP三次握手的第一步;</br>

处于活动状态的网络节点接收到伪造源IP地址的数据包后,将会按照协议要求向受害者进行应答,发送带有SYN、ACK标记的应答数据包。当攻击者使用大量傀儡机同时发起攻击时,即完成了一次分布式反射拒绝服务攻击。

分布式反射拒绝服务攻击最典型的攻击是Smurf攻击:</br>

第一步:攻击者向被利用网络A的 广播地址 发送一个ICMP协议的“echo”请求数据报,该数据报源地址被伪造成1025489。</br>

第二步:网络A上的所有主机都向该伪造的源地址返回一个“echo”响应,造成该主机服务中断。</br>

现在的拒绝服务攻击很多都是利用工具自动化完成的。</br>

攻击者控制某些主机不停地发送大量数据包给某服务器,造成服务器资源耗尽,一直到主机崩溃。CC主要是用来消耗服务器资源的。每个人都有这样的体验:当一个网页访问的人数特别多的时候,打开网页就慢了,模拟多个用户(多少线程就是多少用户)不停地访问那些需要大量数据 *** 作(就是需要大量CPU时间)的页面,造成服务器资源的浪费,CPU负荷长时间处于100%,永远都有处理不完的连接,直至网络拥塞,正常的访问被中止。

拒绝服务攻击通常是很难防范的,不过也有一些防护措施:</br>

1加强用户的安全防范意识,关闭不必要的网络接口,降低因个人疏忽造成的不安全因素,安装防范功能较强的软件,对计算机做定时的安全扫描工作;</br>

2增加安全防范手段,了解和掌握可以有效地防治安全漏洞的软件,使用一些专门的漏洞检查工具进行问题的检测,如网络测试仪、流量测试仪等,及时地找出修复漏洞的方法和措施,减少不必要的损失。</br>

3正确运用安全防范工具,及时地使用网络检测软件对不安全因素进行检测,使用那些专门检测网络安全隐患的软件,定期进行检测。</br>

编写守护进程程序的要点:

(1)让程序在后台执行。方法是调用fork()产生一个子进程,然后使父进程退出。

(2)调用setsid()创建一个新对话期。控制终端、登录会话和进程组通常是从父进程继承下来的,守护进程要摆脱它们,不受它们的影响,方法是调用setsid()使进程成为一个会话组长。setsid()调用成功后,进程成为新的会话组长和进程组长,并与原来的登录会话、进程组和控制终端脱离。

(3)禁止进程重新打开控制终端。经过以上步骤,进程已经成为一个无终端的会话组长,但是它可以重新申请打开一个终端。为了避免这种情况发生,可以通过使进程不再是会话组长来实现。再一次通过fork()创建新的子进程,使调用fork的进程退出。

(4)关闭不再需要的文件描述符。子进程从父进程继承打开的文件描述符。如不关闭,将会浪费系统资源,造成进程所在的文件系统无法卸下以及引起无法预料的错误。首先获得最高文件描述符值,然后用一个循环程序,关闭0到最高文件描述符值的所有文件描述符。

(5)将当前目录更改为根目录。

(6)子进程从父进程继承的文件创建屏蔽字可能会拒绝某些许可权。为防止这一点,使用unmask(0)将屏蔽字清零。

(7)处理SIGCHLD信号。对于服务器进程,在请求到来时往往生成子进程处理请求。如果父进程不等待子进程结束,子进程将成为僵尸进程(zombie),从而占用系统资源。如果父进程等待子进程结束,将增加父进程的负担,影响服务器进程的并发性能。在Linux下可以简单地将SIGCHLD信号的 *** 作设为SIG_IGN。这样,子进程结束时不会产生僵尸进程。

以上就是关于01-Kubernetes 组件介绍全部的内容,包括:01-Kubernetes 组件介绍、golang使用Nsq、如何运行一个golang程序为守护进程等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9777294.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存