DDos(分布式拒绝服务)攻击:
利用多个被感染的计算机系统作为攻击源,向目标服务器、网络或者网站发送大量请求,试图耗尽其资源,从而导致正常用户无法访问该服务的攻击方式
核心目的:使目标系统过载,导致服务不可用
工作原理:
构建僵尸网络:首先通过恶意软件感染一组设备,这一组设备可能遍布世界各地,所以是分布式的,这一组被感染的设备就是僵尸网络,也就是被控制的傀儡
流量生成与放大:(流量生成)僵尸网络中的每个设备都会向目标发送大量的数据包或者请求,包括HTTP请求、ICMP请求、UDP/TCP连接请求等;(流量放大)利用某些协议的特性来放大攻击效果,例如DNS放大攻击和NTP放大攻击,使得少量的请求就可以触发远大于原始请求的数据量
资源耗尽:导致处理能力不足,带宽饱和,甚至完全崩溃,还可能波及共享同一网络资源的其他服务
主要类型:
基于流量的攻击:旨在用大量数据淹没目标网络,使其带宽耗尽。常见的形式包括UDP洪水、ICMP洪水等
协议攻击:针对特定网络协议的弱点进行攻击,试图消耗服务器或中间设备的处理能力和状态表。SYN洪水攻击就是一个典型例子(本质在于破坏服务器的正常操作流程,而非单纯地通过海量数据包堵塞网络带宽,不需要高带宽)
应用层攻击:直接针对Web应用程序层面,模拟合法用户的请求,但数量巨大,足以耗尽服务器资源。CC攻击就是一种应用层DDoS攻击
一些补充:
流量放大:
利用某些网络协议的特性,使得攻击者能够通过发送少量的请求数据包,触发目标服务器返回大量响应数据包,从而显著增加攻击流量的规模。这种技术极大地增强了攻击的效果,同时减少了攻击者需要发送的数据量。
【僵尸(攻击者)】——<少量请求>————【服务器】————<大量数据>————【被攻击者】
DNS放大攻击:
DNS是一个用于将域名(人类可读)转换成IP地址的服务
【僵尸】——伪造被攻击者IP地址的DNS查询请求——【DNS服务器】——根据查询内容生成相应,将相应发送给被攻击者——【被攻击者】
如果查询请求是精心设计的,比如请求包含大量的DNS记录信息(如ANY类型的查询),那么响应数据包可能比请求数据包大得多,有时可达数十倍甚至上百倍
NTP放大攻击:
NTP(网络时间协议)用于同步计算机时钟,NTP服务器可以提供关于当前时间和网络延迟的信息。某些NTP命令(如monlist
命令,该命令用于列出最近与服务器交互过的客户端列表)可以导致服务器返回大量的信息,这使得NTP成为一种理想的放大攻击载体
【僵尸】——伪造源IP地址的小型查询请求——【NTP服务器】——发送巨多的记录——【被攻击者】
CC攻击:
是DDoS攻击的一种变体,专门针对web应用程序,通过向目标服务器发送大量的看似合法的请求,旨在耗尽服务器资源(如CPU、内存或带宽),从而导致网站无法正常响应合法用户的请求
CC攻击往往更难以检测和防御,因为它们看起来像是正常的用户流量(基于HTTP/HTTPS协议的,并且模仿了正常用户的行为,因此不容易被传统的防火墙或入侵检测系统识别)
【僵尸】——模仿正常的用户行为(访问网页、提交表单等)——【web服务器】处理每一个请求,大量的并发请求导致服务器资源迅速耗尽——无法继续处理新的请求,网站响应缓慢甚至不可用
SQL注入攻击:
通过将恶意SQL代码插入到查询字符串中,进而发送给数据库管理系统(DBMS),以操纵数据库执行非授权的操作的技术
举个例子:
比如一个登录表单中,用户名和密码字段可能被用来提交,如果存在恶意的输入,比如用户名:‘ OR ’1‘=’1,密码也为‘ OR ’1‘=’1,如果应用程序没有对用户输入进行适当的验证,拼接出来的SQL语句就是SELECT * FROM users WHERE username = '' OR '1'='1' AND password = '' OR '1'='1';
导致可能侵入数据库或者非法登录
工作原理:
输入点识别,找到应用程序中接受用户输入的地方
构造恶意输入,插入特定的SQL语句或命令,改变原定的SQL查询逻辑
执行恶意SQL,如果没有对用户输入进行适当的验证和过滤,攻击者可能绕过身份验证机制登录系统,导致一些严重的后果
XSS(跨站脚本)攻击:
是一种安全漏洞,允许攻击者在受害者的浏览器中执行恶意脚本
核心:攻击者能够注入恶意脚本到网页中,当其他用户访问该页面的时候,这段脚本会在他们的浏览器环境中运行
反射型XSS:
恶意脚本通过URL参数、表单提交等方式反射回给受害者
具体来说就是用户点了恶意链接之后,会把正常的URL中的某个参数修改成一段js代码,这个请求发送给服务器之后,服务器可能会把这段js代码当作一个普通的参数返回给用户,等到用户收到服务器的返回并且解析响应的时候这段js代码可能就会执行,从而对用户的浏览器发起攻击
存储型XSS:
恶意脚本将被永久存储在目标服务器上(如数据库等),每次有用户访问相关页面时都会触发攻击
攻击者向目标网站提交包含恶意脚本的内容,这些内容被保存到服务器端,并在后续页面加载的时候呈现给其他用户,其他用户如果查看包含恶意脚本的内容时,脚本就会在他们的浏览器执行
基于DOM的XSS:
前两种依赖服务器端处理的方式
基于DOM的XSS完全发生在客户端,通过修改页面的DOM结构来执行恶意脚本
攻击者利用js代码中的漏洞,使得用户输入直接影响页面的DOM树
这个跨站怎么理解:
在早期的web安全模型中,浏览器的安全机制主要依赖同源策略,即一个页面的脚本只能读取或修改来自同一来源(相同协议、域名和端口)的资源,然而XSS攻击打破了这种隔离,是的恶意脚本可以在不同的站点上下文中执行,从而影响到其他站点的数据和行为
CSRF(跨站请求伪造)攻击:
利用用户在已登录网站上的身份验证信息,强制用户在当前已认证的web应用中执行非预期操作的攻击
这种攻击通常发生在用户访问恶意网站的同时,该恶意网站悄悄地向另一个信任用户的网站发送请求,而浏览器会自动附带相关的认证信息(如cookie),导致这些请求被目标网站视为合法
工作原理:
用户登录受信任网站A,会获得一个会话cookie,存储在用户浏览器中,用于后续对该网站的所有请求的身份验证
用户同时访问恶意网站B,这个恶意网站包含了一些精心设计的内容,会在后台自动向网站A发起请求
网站B发出上述请求时,用户的浏览器会自动将之前网站A获得的会话cookie附加到请求中,网站A接收这些带有cookie的认证信息,处理这些请求
网站A就会根据这些内容执行相应的操作