信息收集技术
信息收集分类
主动收集
直接将流量流经目标,如直接访问、扫描等。能获得更多信息,但可能会被目标主机捕获活动记录。
被动收集
利用第三方服务,如浏览器搜索。获取的信息相对少,但不会被目标发现。
公开信息收集
利用web服务
企业邮箱域名、网络拓扑图、公开网页源码中未删除的注释等。
利用搜索引擎服务
- google hacking高级搜索,如site关键字表示在指定主域内搜索(可用于获取该主域下的所有子域名)、link关键字用于搜索所有链接到某个url的网页。
- 网站服务器的目录索引通常包含Index of关键字,所以用Index of/admin可以搜索出所有包含admin的目录,很可能包含网站管理员相关的敏感信息。
利用WhoIs服务
查询已注册域名的所有人信息。
利用DNS域名服务
- DNS分为主服务器、辅助服务器和缓存服务器。主服务器在每个区域内有且只有一个(其数据库称为区域文件)。辅助服务器定期对区域文件进行复制(区域传送),成功后会将区域文件设置为只读,即辅助服务器不能修改区域文件。这一行为的目的是若主服务器不能正常工作,辅助服务器可以接任。缓存服务器不管理任何DNS区域,但是可以接受域名解析请求并将其转发给指定服务器进行解析,把返回结果给客户端时保存一份在自己的缓存区内。
- 如果管理员给主服务器设置的是“允许任意IP从该主机的DNS区域传送请求”,就导致任何主机都可以获得主服务器中的信息;如果没有使用公用/私用DNS机制分割外部和内部的DNS信息,就会导致任何主机都可以获得内部主机名和IP信息。
- 许多网站为了提升用户体验选择使用CDN服务,可以通过设置代理或利用在线Ping网站来使用不同地区的Ping服务器来测试目标,若不同地区访问到的服务器不同,说明该网站存在CDN服务器,我们拿到的很可能不是真实的服务器IP地址。
网络扫描
主机扫描
- 用ping进行主机扫描,借助ICMP协议实现。ICMP报文的类型域用于指明该报文类型,代码域用来确定该包的具体作用。
- ping的实现机制:向目标主机发送ICMP ECHO REQUEST(type 8)包,等待回复的ICMP ECHO REPLY(type 0)包。
- 高级IP扫描技术
1)异常的IP头(设置无效字段值)
目标主机或过滤设备会反馈ICMP参数错误信息。通常在Header Length Field和IP Options Field字段中设置错误。
2)错误的数据分片
向目标发送含有错误字段值的IP包,会反馈ICMP Destination Unreachable信息。
端口扫描
- TCP Connect(全连接)扫描(基本扫描)
发送SYN。
结果:connect函数返回0表示连接成功(返回SYN+ACK表示开放,返回RST+ACK表示关闭,不返回表示被屏蔽。若开放,会再发ACK以建立完整连接)。
优点:实现简单;可以用普通用户权限执行。
缺点:容易被目标日志记录。 - SYN扫描(半连接)
只发送三次握手中的第一个SYN包,不建立连接(不进行握手的第三步)。
实现:raw socket或python
结果:返回SYN+ACK表示开放,返回RST+ACK表示关闭,不返回表示被屏蔽。与全连接扫描的区别在于,收到目标回复后不会再发送任何内容,也就是不会建立完整连接。
优点:一般不会被日志记录
缺点:raw socket需要管理员权限。 - ACK扫描
发送ACK报文。
结果:返回RST表示未被屏蔽,不返回表示被屏蔽。
缺点:单独使用无法判断端口是否开放(只能判断防火墙功能)。 - FIN扫描(隐秘扫描)
发送FIN报文。
实现:raw IP
结果:对于TCP标准和BSD操作系统,返回RST表示关闭,不返回表示开放或被屏蔽;其他一些操作系统在任何情况下都返回RST。
优点:不会被日志记录;可以绕过一些防火墙;netstat命令不会显示(其只显示已建立的TCP连接或者试图建立TCP连接的操作)。
缺点:实现复杂;不同操作系统有不同的返回。 - NULL扫描(隐秘扫描)
发送所有标志位都是空的报文。
结果:返回RST表示关闭,不返回表示开放或被屏蔽。 - Xmas扫描(隐秘扫描)
发送FIN、URG、PSH是1的报文。
结果:返回RST表示关闭,不返回表示开放或被屏蔽。 - window扫描
发送ACK报文。
结果:返回的RST窗口大小非零表示开放,返回的RST窗口大小为零表示关闭,不返回表示被屏蔽。
系统类型扫描
- 端口扫描结果分析
通过打开的端口和特定操作系统的特定功能的对应关系判断。 - BANNER
- TCP/IP协议栈指纹
主要关注TCP包的ISN、BOGUS标记位、初始化窗口值和TCP选项值等,IP包的TTL、TOS和标记等。
可用工具有Nmap、Checkos、Queso等。
漏洞扫描
安全漏洞又称为脆弱性。
漏洞来源
- 硬件/软件/协议设计时的瑕疵
- 硬件/软件/协议实现中的弱点
- 硬件/软件本身的瑕疵
- 系统/网络的错误配置
分类
- 被动式策略:基于主机的检测
- 主动式策略:基于网络的检测(先攻击,通过其反应发现漏洞)
主要方法
- 直接测试
不是所有漏洞都可以这样获得。 - 推断
版本检查、程序行为分析、操作系统堆栈指纹分析和时序分析。 - 带凭证的测试
要求拥有可访问服务的用户名和口令。
软件
ISS、SATAN、SAINT、Nessus、Xscan、极光、天镜 等
网络拓扑探测
拓扑探测
- traceroute
- SNMP
不同类型网络设备之间客户机/服务器模式的简单通信协议,有Read和Read/Write两个基本命令模式。
网络设备识别
- 搜索引擎:Shodan、ZoomEye
- 设备指纹
网络实体IP地理位置定位
- 基于注册信息
- 基于网络测量(时延等)
口令攻击
针对口令强度
字典攻击
把使用概率高的口令用不同的变异规则组成猜测字典。
强力攻击
用足够快的计算机尝试所有可能的口令。
组合攻击
在字典单词末尾串接任意字母和数字,介于字典攻击和强力攻击之间。
撞库攻击
收集已泄露的用户名和密码,登录其他网站(利用很多人只有一套用户名和密码)。
彩虹表攻击
彩虹表是一种破解哈希算法的技术,也用于跨平台破解密码,主要用于破解HASH、MD5等。基于内存-时间衡量方法,通过用内存换时间,提高破解率和破解速度。
针对口令存储
Linux
- 基础口令文件/etc/password
每行代表一个用户记录,共7个字段,字段间用“:”隔开。 - 散列口令文件/etc/shadow
密码部分包括算法、salt和哈希值,后两者编码为可打印字符。为了对抗暴力攻击,使用多轮哈希函数。
windows
- 存储位置
1)%SystemRoot%system32\config\目录下
2)%SystemRoot\repair目录下的SAM._文件
3)注册表中的HKEY_LOCAL_MACHINE\SAM键
4)Winlogon.exe的内存块中 - SAM文件的安全保护措施
1)SAM文件锁定
操作系统运行期间,管理员也无法访问。
2)隐藏
注册表中的备份被隐藏
3)不可读
保存时将其进行压缩处理。 - 本地获取口令
1)获取系统自动保存的口令(存在硬盘上)
2)直接读取登录口令(暂存在内存中)
3)破解SAM - 破解工具
原理:遍历明文和加密算法
L0phtcrack、NTSweep、NTCrack、PWDump
针对口令传输
口令嗅探
被动攻击方式,目标难以察觉。
嗅探器可以是软件或硬件,把系统的网络接口设为混杂模式,可以监听所有流经同一以太网网段的数据包。
嗅探程序把所有捕获的数据存入log文件,等待攻击者下载。
注意嗅探主机和被监听主机必须在同一网段上,嗅探程序必须用管理员身份运行。
键盘记录
键盘记录好处是可以在口令加密和传输之前就可以得到明文密码。
- 硬件截获
修改主机键盘接口(PS/2或USB),使之在向主机传递IO数据时将信息发送给攻击者。 - 软件截获
通常作为木马功能的一部分,通过监视操作系统处理键盘输入的接口,记录键盘输入内容后发给远程攻击者。
网络钓鱼
重放攻击
- 简单重放
监听双方通信内容并记录,之后进行重放。 - 反向重放
比如AB之间确定了一种挑战应答方式,攻击者没有A的合法账号,用A给B发出请求,B返回一个挑战值,攻击者不知道合法应答方式所以暂时将这个会话挂起;等B向A发出请求时,A把先前收到的挑战值发给B,B会返回正确的应答。所以A把B的应答值再发给B,即可通过B的挑战验证。
防止口令猜测
- 关闭不需要的服务和端口
- 硬盘分区采用NTFS格式:支持大容量文件和超大分区,还包括长文件名、压缩分区、事件追踪、文件索引、高容错性、数据保护和恢复、加密访问等。但是会记录详细的硬盘读写操作,因此对于闪存会有很大的负担和伤害。
软件漏洞
漏洞标准化研究
公共漏洞和暴露CVE
字典表,为广泛认同/已经暴露的漏洞给出公共名称以及相应修补信息。
通用缺陷枚举CME
包括类缺陷、基础缺陷和变种缺陷,有字典、开发和研究三种视图。
字典把所有缺陷按字母表顺序排列以供查阅;开发以软件开发周期为参照进行分类;研究从内在性质等方面进行分类。
栈溢出
栈和栈帧
程序运行时在内存中会有一块连续区域,从内存地址高到低依次是栈、堆、数据段、代码段。
- 栈
由编译器自动分配释放,存放临时创建的局部变量和参数等。先进后出,便于保存/恢复函数调用现场。每个进程对应一个栈空间,进程中每个函数独占一个栈帧。 - 堆
位于BSS内存段上面,由程序员分配释放,程序结束时操作系统统一回收。大小不固定,可以动态扩张和缩减。 - 数据段
包括已初始化的数据段(.data)和未初始化的数据段(.bss),在编译时进行分配。 - 代码段
存放由处理器直接执行的二进制代码和只读数据,可执行指令就是从这里取得的。一般标记为只读,任何对该区的写错误都会产生段错误。
程序和栈
- 随着函数调用层数增加,函数栈帧向低地址方向延伸。随着各层调用函数返回,栈帧一块块被遗弃,向高地址方向回缩。
- 两个相关寄存器
SP是栈顶指针,随数据出入栈变化。
BP是栈底指针,标识一个相对稳定位置,BP加偏移地址可以引用参数和局部变量。 - 每个栈帧包含4个部分:前栈帧ebp、临时局部变量、函数参数、返回地址。
函数调用
- 把EIP的内容(EIP指向当前CPU要运行的下一条指令的地址)压入栈,作为返回地址RET。
- 压入EBP,它指向当前函数栈帧的底部。
- 把ESP拷到EBP作为新的基地址,为本地变量的动态存储分配留一些空间,把ESP减去适当的数值。
栈溢出
栈从高到低依次是函数变量、前栈帧ebp和前栈帧中的返回地址,所以如果变量大小超过了给变量分配的存储空间,就会覆盖位于低地址的前栈帧ebp和前栈帧中的返回地址。所以如果精心设置用于覆盖返回地址的值,就可以通过给变量赋值来控制程序跳转到其他代码空间执行,即利用栈溢出实现控制流劫持。
shellcode编写
定义
可完成一定功能、能被计算机直接执行的机器代码(通常以十六进制形式存在)
Windows函数调用原理
- LOAD函数所在的dll
- 用堆栈进行参数传递
- CALL函数地址
动态定位函数地址
- 定位GetProcAddress地址
暴搜(不通用);用PEB;SHE获得kernel基址;HASH查找所有函数地址 - 通过GetProcAddress获得目标函数地址
- 调用目标函数地址
环境变量攻击
环境变量
一组动态定义值,是操作系统运行环境的一部分,会影响正在运行的进程的行为方式(加载哪些外部dll)
获取环境变量
- 用fork()创建的新进程会继承其父进程的环境变量
- 进程用execve()启动新程序,此进程的内存会被覆盖,所有环境变量丢失。
envp和environ
- 最初指向同一位置
- envp只在主函数中有效,environ是全局变量
- 更改环境变量时,环境变量的存储位置可能会移动到堆中,此时envp不变,environ会变化
shell
shell启动时会把环境变量复制到自己的shell变量中,修改shell变量不会影响到环境变量。在shell中输入env,将创建一个新进程。
set-uid
- 允许用户(临时提升到)程序所有者的权限运行程序
- 进程的RUID是进程所有者,EUID标识进程权限(用于访问控制)。
- 正常运行程序时,EUID=RUID;用set-uid运行时EUID是程序所有者ID
system和execve
execve()的攻击面小,因为不调用shell所以不受环境变量影响,适用于在特权程序中调用外部程序。
允许普通用户执行特权操作的常用方法
- set-uid
普通用户运行一个特殊程序,以临时获得特权 - 服务
普通用户请求特权服务为自己执行操作
web应用攻击
分类
- web客户端攻击(攻击用户)
XSS、网络钓鱼、网络挂马等 - web服务器攻击
网页篡改、代码注入攻击、文件操作控制攻击等 - HTTP协议攻击
HTTP头注入攻击、HTTP会话攻击等
XSS攻击
- 原理
未对用户输入进行有效过滤,导致用户输入的数据被当成js或html代码执行。 - 同源策略
同源是指协议、域名、端口均相同。同源策略是指两个非同源的网站不能打开彼此设置的cookie,这是一种对抗XSS攻击的方式。 - 分类
1)反射型XSS
使用非持久性参数型跨站脚本,恶意代码直接附加到URL参数中。如在输入框中直接输入js代码,该代码被直接执行。
2)存储型XSS
使用持久性跨站脚本,即脚本被存储在服务端数据库中。如某人把自己社交平台的个人页面部分某个板块中插入恶意代码,使每个访问其主页的人都受到XSS攻击。
3)DOM型XSS
这种XSS要求客户端的js能访问浏览器的DOM文档(网站有一个html页面采用了不安全方式),攻击者通过诱使用户访问自己构造的URL在其客户端注入恶意脚本,不需要与服务端进行交互,可以绕过WAF,避开服务器检测。
一般攻击流程:攻击者通过URL、输入框等把包含恶意脚本的数据提交到网页,引诱用户访问该页面;用户的浏览器解析html并构建DOM树时,通过js等方式修改DOM,插入恶意脚本;浏览器解析和执行DOM时触发恶意脚本。 - 其他
cookie窃取、会话劫持(冒用合法用户的会话ID)、网络钓鱼(比传统网络钓鱼更隐蔽)、信息刺探、网页挂马、XSS蠕虫(一般利用存储型XSS) - 防范措施
1)httponly
是一个cookie的标志,作用是禁止任何脚本访问cookie。可以防止cookie窃取。
2)安全编码
对用户输入内容进行编码处理,避免被作为代码执行。例如“<”编码为“<”、“>”编码为“>”等。
SQL注入攻击
- 原理
向网站提交精心构造的sql语句,导致网站返回敏感数据。 - 使用sql的常见数据库
Oracle、Sybase、sql server、access等 - sql存储过程
预先封装复杂的sql语句。
分类:
1)系统存储过程:以sp_开头,进行系统各项设定和获取信息
2)扩展存储过程:以XP_开头,调用操作系统相关功能
3)用户自定义的存储过程 - 注入攻击类型
根据注入点类型:
1)字符型SQL注入:注入点类型为字符串,如“name”
2)数字型SQL注入:注入点类型为数字,如“id”
根据有无错误信息:
1)基于错误信息的注入
2)SQL盲注入
网站将SQL错误信息的返回关闭,即无法根据错误信息提示构造SQL语句。有布尔盲注和时间盲注。 - 注入步骤
1)寻找注入点
通过在查询参数后添加恒等式和不可能式,观察返回值来判断该点能否注入。
一般添加不可能式时,若返回找不到记录或返回为空,说明存在注入点。
2)判断数据库类型
通过错误信息判断数据库类型,然后利用该数据库内置的表查询获得当前数据库名。
3)获取表名和字段名
注入不同的表名和字段名,返回正常页面即说明该表/字段存在。也可利用数据库的自带表查询获得。
4)猜字段值,注入获取敏感信息 - 隐蔽性
从正常的WWW端口访问,防火墙一般不会报警 - 防范措施
1)参数化查询
sql语句是提前编译好的,直接将用户输入作为参数传递给语句,以确保用户输入不被作为sql代码执行。
2)输入验证和过滤
使用正则表达式等方法,使用户输入中不能包含恶意字符 ,如单引号、“#”“;”等,以防止输入中夹带sql语句。
3)存储过程
存储过程是一组预定义的sql语句集合,如Java中的JDBC。
4)最小权限原则
限制每个数据库账户的权限,确保用户无法利用有高级权限的账户。
5)使用ORM框架
ORM是对象关系映射,是在对象模型和数据库之间进行映射的技术,把数据库表映射为对象,把表的行映射为对象属性,把表间关系映射为对象间关联,即允许开发人员以面向对象的方式操作数据库,不再依赖sql语句。
HTTP会话攻击的防御方法
针对预测会话ID攻击
不要自己设计会话管理机制,直接使用编程语言内置的。
针对窃取会话ID攻击
与具体攻击方式有关,比如对于XSS可以通过httponly来防范对cookie的窃取。
针对会话ID固定攻击
尽量采用非会话采纳的web环境。
针对会话保持攻击
使会话ID非长期有效,如定期销毁、登录后更新。
针对CSRF(跨站请求伪造)攻击
使用POST代替GET;检验HTTP referer;使用验证码或token等
恶意代码
概述
恶意代码命名
<病毒前缀>.<病毒名>.<病毒后缀>
- 前缀是指病毒种类
- 名是指病毒的家族特征
- 后缀是指病毒的变种特征
病毒
- 四个阶段
潜伏、传染、触发、发作 - 四个模块
感染、触发、破坏、主控 - 三种机制
传染、触发、破坏
蠕虫
- 自身有独立性和完整性
- 组成
弹头、传播引擎、目标算法、扫描引擎、有效载荷 - 工作流程
随机生成IP、探测地址、检测主机和漏洞是否存在、攻击&传染&现场处理
木马植入技术
- 直接攻击
利用系统漏洞直接远程安装 - 文件下载
- 接触植入
用U盘或充电宝(针对手机) - 邮件传播
利用邮件内容或附件 - 网页挂马
利用IE浏览器的漏洞 - 软件漏洞
- 社会工程
木马开发
基本特性
- 自启动
启动组(“开始-程序-启动”)、注册表(Run、RunOnce、Winlogon、Load)、注册服务(RunServices、RunServicesOnce)、配置文件(Win.ini、System.ini、Autoexec.bat和Config.sys)、修改文件关联、捆绑文件、SPI、BHO等 - 功能特性
- 抗查杀性
- 隐蔽性
假消息攻击
概述
利用网络协议设计中的安全缺陷,发送伪造的数据包实现欺骗。
TCP/IP协议的设计缺陷
- 缺乏信息加密机制
- 缺乏有效的身份鉴别和认证机制
类型
- 应用层:DNS欺骗、SSL中间人
- 传输层:IP欺骗、SYN Flood
- 网络层:ICMP重定向、IP分片攻击
- 数据链路层:ARP欺骗
嗅探
以太网卡
- 以太网分类
1)共享式:用同轴电缆或hub连接
2)交换式:用交换机连接 - 网卡工作原理
从网络中接收数据,处理数据链路层任务;网卡内的单片程序检查数据帧的目的MAC,根据网卡驱动程序设置的接收模式决定是否接收。若需要接收,以中断方式通知操作系统,否则直接丢弃。 - 侦听模式
1)单播:接收单播和广播数据帧
只让目标MAC与自己的MAc相同的数据帧通过。
2)组播:接收单播、广播和组播数据帧
3)混杂(在WiFi中称为监控模式):接收经过的所有数据帧
不再进行硬件过滤。 - 过滤器
BSD数据包过滤器(BPF)让一个用户程序向套接字附加一个过滤器,告诉内核放弃自己不想要的数据包。
交换式以太网嗅探
- MAC泛洪
向交换机发送大量包含虚构MAC和IP的包,使交换机进入“打开失效”模式,即进入类似hub的工作方式(向网络上所有机器进行广播)。 - MAC欺骗
把源MAC伪造为目标主机的MAC,通过交换机发送,让交换机更新其“MAC-端口”映射表,交换机会相信攻击者的MAC就是目标主机的MAC,也就会把本来是发给目标主机的包发给攻击者。 - ARP欺骗
对网关和目标主机实行ARP欺骗,截取两者间的通信数据。
协议还原
把离散的网络数据根据协议规范重新还原成可读的协议格式。
过程:主机封包、嗅探器抓包、嗅探器组包。
嗅探的检测
向主机发送可以触发操作系统做出响应,又不能通过硬件过滤的包,可以检测主机网络接口的接收模式。
嗅探的防范
- 网络分段:用交换机替代hub;划分VLAN
- 会话加密:使用安全协议
- 使用静态的ARP缓存
ARP欺骗
欺骗方式
- 在ARP请求中发送错误的发送者IP-MAC映射
- 在ARP应答中发送错误的发送者IP-MAC映射
防范
- 建立DHCP服务器
- 局域网中建立MAC数据库
- 网关关闭ARP动态刷新的过程,使用静态路由
- 局域网监听ARP数据包
- 使用VLAN或PVLAN技术
ICMP重定向攻击
ICMP重定向
- 功能
保证主机拥有动态的、既小又优的路由表。
主机启动时拥有的路由信息不一定是最优的,路由器检测到IP数据报经非最优路由传输时,通知该主机去往该目的地的最佳路径。 - 条件
1)新路由必须是直达的
2)重定向包必须来自去往目标的当前路由
3)重定向包不能通知主机用自己做路由
4)被改变的路由必须是一条间接路由
攻击防范
- linux:通过配置防火墙或修改内核选项重新编译内核实现拒绝接收ICMP重定向报文。
- Windows:通过防火墙和IP策略拒绝接收ICMP重定向报文。
IP欺骗
方法
要点在于伪造源IP。难点在于获取TCP的ACK初始序列号,如果与目标在同一局域网内,可以通过嗅探获得,否则只能靠猜测。
防范
- 只在需要时启动终端会话,在其变成不活动状态前注销
- 使用基于加密的终端协议
- 使用随机化的初始序列号(干扰猜测)
- 不使用基于地址的信任策略
DNS欺骗
DNS相关
- 域、区域和子域
DNS是根据区域组织的,区域将域树上相邻的域和子域分组,把管理权限分配给实体。子域是域的“下级”,区域的划分与域和子域的划分无关。 - 权威服务器
每个区域至少有一个权威服务器,可以是主服务器(存储所有区域记录)或从服务器(使用自动更新机制维护维护与主服务器相同的记录副本)。 - 根服务器
13个根服务器是互联网上最关键的基础设施。 - 本地DNS文件
1)/etc/hosts
存储某些主机名的IP,在查询本地DNS服务器前会先在该文件中查找。
2)/etc/resolv.conf
向计算机的DNS解析器提供有关本地DNS服务器地址的信息,存储着DHCP提供的本地DNS服务器的IP。 - 查询方式
一般从计算机到本地DNS服务器是递归查询,从本地DNS服务器再向上查询是迭代查询。
SSL中间人攻击
SSL
- 握手阶段
1)加密传输数据,保证数据机密性
2)验证信息在传送过程中是否被修改,保证数据完整性
3)使用非对称加密算法,通过数字证书验证服务器和客户端的身份 - 加密数据传输阶段
服务器和客户端的数据被分成一系列经过保护的记录进行传输。
防范
- 检查证书来源和属性
- 不要打开证书不可信的网址
系统安全
熔断与幽灵攻击
侧信道攻击
利用执行时间等额外信息推导其他秘密信息。
flush-reloaded技术
监视存储器s位置。
先刷新CPU缓存;然后让目标进程访问s位置;再重新加载,测量加载时间。
如果目标进程访问了该位置,则其应该在缓存中,重新加载所用时间较短,否则因为需要从内存中取出相应内容,所以重新加载时间长。
熔断攻击
- 原理
利用CPU缓存和乱序执行特性,通过一些手段把秘密信息/地址写入CPU缓存(一般是借助异常处理不会刷新缓存的特性),再通过测量访问时间获取这个值。 - 对策
1)是硬件漏洞。
2)KASLR(内核地址空间布局随机化)
不映射用户空间中的任何内核内存(x86体系结构所需的某些部分除外,如中断处理程序);用户级程序不能直接使用内核内存地址(这样的地址无法解析)。
幽灵攻击
CPU发现分支预测错误时,会丢弃分支执行的结果并恢复CPU状态,但不会恢复CPU缓存的状态。可以通过缓存侧信道攻击获取秘密数据。
拒绝服务攻击
分类
- 漏洞型
利用软件实现中存在的漏洞 - 重定向型
利用网络协议的设计缺陷,使目标传输的数据被重定向到错误的网络地址(无法正常进行网络通信) - 资源消耗型
通过发送大量请求占用网络带宽或系统资源
洪泛攻击
- TCP/SYN洪泛
- UDP洪泛
- HTTP洪泛(针对性分析,不盲目追求大流量)
低速率拒绝服务攻击LDoS
利用网络协议或应用服务协议中的自适应机制存在的安全问题,周期性发送高速脉冲攻击数据包,降低目标主机服务性能。
- TCP拥塞控制
1)重度拥塞
发送端为每个发送的报文设置一个定时器,若收到报文确认之前定时器超时就重新发送该报文。设置的定时器就是RTO。
2)轻微拥塞
发送端收到3个重复的ACK包就开始重传,用AIMD算法调整拥塞窗口大小。 - 原理
故意制造拥塞,使拥塞控制一直处于调整状态,发送端速率会迅速减小。
分布式拒绝服务攻击
基于僵尸网络的DDoS
- 命令控制机制是僵尸网络区别于其他恶意代码形态的最本质属性。
- 集中式命令控制机制
僵尸节点连接到一个或多个控制服务器来获取控制命令。包括基于IRC协议的僵尸网络和基于HTTP协议的僵尸网络。 - 分布式命令控制机制
攻击者连接到任意僵尸节点发布控制命令,用push/pull方式在整个僵尸网络中传递。 - 发动DDoS
1)构建僵尸网络
2)收集目标信息
3)实施DDoS攻击
反射型DDoS
- DNS反射攻击
向DNS服务器发送伪造源地址的查询请求,把应答流量引向目标。 - LDAP放大攻击
向LDAP(轻量目录访问协议)服务器发送伪造源地址的查询请求,把应答流量引向目标。 - NTP放大攻击
向NTP(网络时间协议)服务器发送伪造源地址的查询请求,把应答流量引向目标。
防御
预防
在攻击前阻止攻击。
- 抑制僵尸网络规模
- 过滤伪造源地址的报文
- 减少可用的反射/放大器
检测
在攻击过程中发现攻击,区分攻击流量与正常流量
- 特征检测
分析攻击流量的行为特征,建立特征库 - 异常检测
对比当前网络状态与正常网络状态的不同
响应
攻击发生后降低乃至消除攻击的影响
流量清洗:设法过滤掉攻击流量,只把正常流量交付给服务器。
容忍
通过提高处理请求的能力来消除攻击的影响
- CDN
- Anycast
一种网络寻址和路由方法,一组服务器可以使用相同的IP,提供相同的服务。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 实操Deepseek接入个人知识库
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· 【.NET】调用本地 Deepseek 模型
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
· 上周热点回顾(2.17-2.23)