网络攻击3——DoS/DDoS攻击与缓冲区溢出攻击

目录

拒绝服务攻击

拒绝服务攻击介绍

分布式拒绝服务攻击介绍

CDN

软件缺陷漏洞/缓冲区溢出

其它高级攻击


拒绝服务攻击

拒绝服务攻击不会破坏信息的机密性和完整性,而是破坏服务的可用性

拒绝服务攻击分为两大类

DoS:拒绝服务攻击

DDoS:分布式拒绝服务攻击(更强)

两者的攻击方式都类似,只是DDoS将一大批计算机联合在一起来实现攻击,DoS就是自己一人或几个人进行攻击

拒绝服务攻击介绍

拒绝服务攻击的方式

攻击网络带宽资源

没有攻击服务器本身,只是将访问服务器的网络路径进行阻塞

攻击系统资源

占用服务器的系统资源(攻击CPU、内存等)

攻击应用资源

应用程序本身性能有限制(因为代码的原因),一直占用应用程序资源

拒绝服务攻击的防御

限制每个人的流量、限制单个IP地址在单位时间内与服务器建立连接的会话数

可以通过流量清洗服务来预防拒绝服务攻击(购买运营商的流量清洗服务(按照流量大小进行收费)、采购专门的流量清洗服务)

通过代理设备来预防

拒绝服务攻击举例

TCP流量攻击、UDP流量攻击、DNS流量攻击、HTTP/HTTPS流量攻击等

畸形数据包攻击(检测到畸形的数据包直接丢弃)

攻击者发送畸形的攻击数据引发系统错误的分配大量系统资源,使主机处于挂起状态甚至宕机,如PingofDeath、TearDrop

UDP流量攻击(通过设置阈值来进行防护)

攻击者通过发送大量所属协议的数据包到达占据服务端带宽,堵塞线路从而造成服务端无法正常提供服务

TCP流量攻击——SYN洪水攻击(通过SYN代理实现防护)

攻击者利用TCP协议三次握手的特性,攻击方大量发起的请求包最终将占用服务端的资源,使其服务器资源耗尽或为TCP请求分配的资源耗尽,从而使服务端无法正常提供服务

HTTP/HTTPS流量攻击——CC攻击

攻击者控制某些主机不停地发大量数据包给对方服务器造成服务器资源耗尽,一直到宕机崩溃。CC主要是用来攻击页面的

HTTP/HTTPS流量攻击——慢速攻击

对任何一个开放了HTTP访问的服务器HTTP服务器,先建立了一个连接,指定一个比较大的content-length,然后以非常低的速度发包,比如1-10s发一个字节,然后维持住这个连接不断开。如果客户端持续建立这样的连接,那么服务器上可用的连接将一点一点被占满,从而导致拒绝服务

网络攻击2——针对TCP/IP各个协议层的攻击_:发送超过 ip 报文最大长度 65535 的 ping-CSDN博客

分布式拒绝服务攻击介绍

分布式拒绝服务攻击(DDoS)

攻击者将一大批(上万)计算机联合起来作为攻击平台,对一个或多个目标发送攻击

利用合理的请求霸占目标的服务资源,从而使得正常用户无法得到服务器响应

黑客下发指令到Master,Master就会下发指令到agent,agent就会按照指令向目标target发送攻击

对于agent我们一般就称为僵尸主机,多个agent组成的网络就成为僵尸网络;其中DDoS只是僵尸网络攻击方式的一种,僵尸网络还可以做很多其它的攻击(例如像借用agent主机进行挖矿,消耗agent的系统资源)

网络攻击3——DoS/DDoS攻击与缓冲区溢出攻击_第1张图片

DDoS攻击的防御手段

  1. 提高网络设备和链路带宽的性能(也可以通过代理设备来预防)
  1. 购买专门的流量清洗设备来进行流量清洗,防止DDoS攻击
  2. 自己建立分布式集群,将流量分担到多个节点(及时单个节点故障,其它节点还可以继续提供服务)
  3. 购买运营商的CDN内容分发服务,当用户购买CDN服务后,运营商会将用户的服务内容在自己各地的数据中心机房都分别缓存一份,并与用户的服务建立同步连接同步数据,并且当有流量访问用户的服务时会优先访问距离该流量最近的CDN缓存(在分担用户服务器压力的同时,还能够提升客户的访问体验)

CDN

内容分发网络(CDN)是一种分布式网络架构,通过将内容缓存到多个地理位置接近的服务器上,以提高用户访问该内容的速度和可用性。通过智能路由、内容缓存和负载均衡等技术,将内容自动推送到最合适的服务器上,以便用户可以从最近的位置获取所需的内容


软件缺陷漏洞/缓冲区溢出

缓冲区溢出原理——主要作用就是可以通过缓冲区溢出来控制CPU执行指令

利用编写不够严谨的程序,通过向程序的缓冲区写入超过预定长度的数据,造成缓存的溢出,(将原始内存中的内容将其清洗掉,占用了)从而破坏程序的堆栈,导致程序执行流程的改变(控制了CPU下一跳指令去哪里工作)

即:通过缓冲区溢出可以控制CPU进行程序执行

缓冲区攻击流程

  1. 寻找到程序的漏洞
  2. 编制缓冲区溢出程序
  3. 精确的控制跳转地址(指定CPU下一跳指令的内存地址—这个是缓冲区溢出的关键)
  4. 执行提前存储在该内存地址下的恶意代码
  5. 获得系统权限或者破坏系统

如何把我们向要CPU执行的代码放到内存的指定位置呢(即放到61616161)

       可以将这些恶意代码提前种植到程序、软件中,然后了解到其所在的内存地址

       最后通过缓冲区溢出来使得CPU执行位于该内存地址的恶意代码

缓冲区溢出的特点

缓冲区是漏洞危险等级最高、最大数量的漏洞类型

但是缓冲区执行时的难度也比较大,黑客需要精确知道自己想要执行的指令所存储的内存地址是哪个,根据该存储地址来构造输入数据的大小

缓冲区攻击举例

有以下程序,该程序的作用是通过将用户输入的内容打印在屏幕上

网络攻击3——DoS/DDoS攻击与缓冲区溢出攻击_第2张图片

针对该程序的缓冲区攻击如下

从下图可知,正常情况下,用户输入aaaaaaaa

该程序在用户输入完毕后(也就是gets后),通过EIP寄存器了解到该程序执行完毕后用户执行的下一条指令为内存地址的00334459地址下

但是当黑客利用了程序漏洞发送缓冲区攻击时,用户输入aaaaaaaaaaaaaaaaaaaaaaaaaa

由于用户输入超过8个字节,多出的输入溢出,导致原始内存中的内容被清洗掉,从而破坏了程序的堆栈(将EBP和EIP的值都填充为aaaa,改变了下一条指令要执行的内存地址),将下一条指令的内存地址改为61616161

黑客提前把要执行的恶意代码放在该内存地址下(也就是61616161),当CPU执行完用户输入并显示的程序后,就会去执行内存地址61616161下的代码,但是此代码为黑客存储的恶意代码,当CPU执行之后,黑客就可以获得系统权限或者进行资料窃取等操作(具体影响主要看恶意代码的功能是什么)

网络攻击3——DoS/DDoS攻击与缓冲区溢出攻击_第3张图片

缓存溢出区的防御

针对用户:使用最新的系统/软件、开启防火墙

针对开发人员:编写安全代码,对输入的数据进行验证、使用相对安全的函数

针对系统:使用虚拟化技术、使用缓冲区不可执行技术


其它高级攻击

社工攻击

利用社会工程学来实施的网络攻击行为

定期更改密码,使用高强度密码等来防御

拖库、洗库、撞库

拖库:黑客入侵有价值的网络站点,把注册用户的资料数据库全部盗走的行文

洗库:将获取的大量用户数据,通过一系列的技术手段和黑色产业链来把其中有价值的用户数据变现

撞库:黑客将得到的数据在其它网站上进行尝试登录(即 得到该网站的用户密码,使用该用户密码尝试登录其它网站)

不同网站/APP密码独立,打补丁更新软件系统、使用正版软件、不连接公共无线做私密的事情、设置复杂密码等来防御

跳板攻击

攻击者并不直接从自己的系统向目标系统发动攻击,而是使用其它的计算机/服务器(可以是租的,也可以是通过攻击控制的)来作为跳板攻击目标

通过安装防火墙控制流量进出、更改超级管理员用户登录密码、做好权限控制等

水坑攻击

攻击者通过猜测或观察确定特定目标经常访问的网站,并入侵其中一个或多个网站并植入恶意软件,最后来达到感染目标的目的

更新最新补丁、安装终端杀毒软件等

钓鱼式攻击/鱼叉式钓鱼攻击

钓鱼式攻击

通过大量发送声称来自于银行或其他知名机构的欺骗性垃圾邮件,意图引诱收信人给出敏感信息(如用户名、口令、帐号ID 、ATM PIN码或信用卡详细信息),并且可以将收信人引诱到一个通过精心设计与目标组织的网站非常相似的钓鱼网站上,并获取收信人在此网站上输入的个人敏感信息

鱼叉式网络钓鱼攻击

是指针对特定目标进行攻击的网络钓鱼攻击

鱼叉式网络钓鱼攻击的目标一般而言并非普通个人,而是特定公司、组织之成员,因此被窃取的也并非一般的个人资料,而是其他高度敏感性资料,如知识产权及商业机密等

防御措施

保证网络站点与用户之间的安全传输,加强网络站点的认证过程,即时清除网钓邮件,加强网络站点的监管

你可能感兴趣的:(网络安全技术理论讲解,服务器,缓冲区攻击,拒绝服务攻击,DDoS)