信息收集技术

信息收集分类

主动收集

直接将流量流经目标,如直接访问、扫描等。能获得更多信息,但可能会被目标主机捕获活动记录。

被动收集

利用第三方服务,如浏览器搜索。获取的信息相对少,但不会被目标发现。

公开信息收集

利用web服务

企业邮箱域名、网络拓扑图、公开网页源码中未删除的注释等。

利用搜索引擎服务

  1. google hacking高级搜索,如site关键字表示在指定主域内搜索(可用于获取该主域下的所有子域名)、link关键字用于搜索所有链接到某个url的网页。
  2. 网站服务器的目录索引通常包含Index of关键字,所以用Index of/admin可以搜索出所有包含admin的目录,很可能包含网站管理员相关的敏感信息。

利用WhoIs服务

查询已注册域名的所有人信息。

利用DNS域名服务

  1. DNS分为主服务器、辅助服务器和缓存服务器。主服务器在每个区域内有且只有一个(其数据库称为区域文件)。辅助服务器定期对区域文件进行复制(区域传送),成功后会将区域文件设置为只读,即辅助服务器不能修改区域文件。这一行为的目的是若主服务器不能正常工作,辅助服务器可以接任。缓存服务器不管理任何DNS区域,但是可以接受域名解析请求并将其转发给指定服务器进行解析,把返回结果给客户端时保存一份在自己的缓存区内。
  2. 如果管理员给主服务器设置的是“允许任意IP从该主机的DNS区域传送请求”,就导致任何主机都可以获得主服务器中的信息;如果没有使用公用/私用DNS机制分割外部和内部的DNS信息,就会导致任何主机都可以获得内部主机名和IP信息。
  3. 许多网站为了提升用户体验选择使用CDN服务,可以通过设置代理或利用在线Ping网站来使用不同地区的Ping服务器来测试目标,若不同地区访问到的服务器不同,说明该网站存在CDN服务器,我们拿到的很可能不是真实的服务器IP地址。

网络扫描

主机扫描

  1. 用ping进行主机扫描,借助ICMP协议实现。ICMP报文的类型域用于指明该报文类型,代码域用来确定该包的具体作用。
  2. ping的实现机制:向目标主机发送ICMP ECHO REQUEST(type 8)包,等待回复的ICMP ECHO REPLY(type 0)包。
  3. 高级IP扫描技术
    1)异常的IP头(设置无效字段值)
    目标主机或过滤设备会反馈ICMP参数错误信息。通常在Header Length Field和IP Options Field字段中设置错误。
    2)错误的数据分片
    向目标发送含有错误字段值的IP包,会反馈ICMP Destination Unreachable信息。

端口扫描

  1. TCP Connect(全连接)扫描(基本扫描)
    发送SYN。
    结果:connect函数返回0表示连接成功(返回SYN+ACK表示开放,返回RST+ACK表示关闭,不返回表示被屏蔽。若开放,会再发ACK以建立完整连接)。
    优点:实现简单;可以用普通用户权限执行。
    缺点:容易被目标日志记录。
  2. SYN扫描(半连接)
    只发送三次握手中的第一个SYN包,不建立连接(不进行握手的第三步)。
    实现:raw socket或python
    结果:返回SYN+ACK表示开放,返回RST+ACK表示关闭,不返回表示被屏蔽。与全连接扫描的区别在于,收到目标回复后不会再发送任何内容,也就是不会建立完整连接
    优点:一般不会被日志记录
    缺点:raw socket需要管理员权限。
  3. ACK扫描
    发送ACK报文。
    结果:返回RST表示未被屏蔽,不返回表示被屏蔽。
    缺点:单独使用无法判断端口是否开放(只能判断防火墙功能)。
  4. FIN扫描(隐秘扫描)
    发送FIN报文。
    实现:raw IP
    结果:对于TCP标准和BSD操作系统,返回RST表示关闭,不返回表示开放或被屏蔽;其他一些操作系统在任何情况下都返回RST。
    优点:不会被日志记录;可以绕过一些防火墙;netstat命令不会显示(其只显示已建立的TCP连接或者试图建立TCP连接的操作)。
    缺点:实现复杂;不同操作系统有不同的返回
  5. NULL扫描(隐秘扫描)
    发送所有标志位都是空的报文。
    结果:返回RST表示关闭,不返回表示开放或被屏蔽。
  6. Xmas扫描(隐秘扫描)
    发送FIN、URG、PSH是1的报文。
    结果:返回RST表示关闭,不返回表示开放或被屏蔽。
  7. window扫描
    发送ACK报文。
    结果:返回的RST窗口大小非零表示开放,返回的RST窗口大小为零表示关闭,不返回表示被屏蔽。

系统类型扫描

  1. 端口扫描结果分析
    通过打开的端口和特定操作系统的特定功能的对应关系判断。
  2. BANNER
  3. TCP/IP协议栈指纹
    主要关注TCP包的ISN、BOGUS标记位、初始化窗口值和TCP选项值等,IP包的TTL、TOS和标记等。
    可用工具有Nmap、Checkos、Queso等。

漏洞扫描

安全漏洞又称为脆弱性

漏洞来源

  1. 硬件/软件/协议设计时的瑕疵
  2. 硬件/软件/协议实现中的弱点
  3. 硬件/软件本身的瑕疵
  4. 系统/网络的错误配置

分类

  1. 被动式策略:基于主机的检测
  2. 主动式策略:基于网络的检测(先攻击,通过其反应发现漏洞)

主要方法

  1. 直接测试
    不是所有漏洞都可以这样获得。
  2. 推断
    版本检查、程序行为分析、操作系统堆栈指纹分析和时序分析。
  3. 带凭证的测试
    要求拥有可访问服务的用户名和口令。

软件

ISS、SATAN、SAINT、Nessus、Xscan、极光、天镜 等

网络拓扑探测

拓扑探测

  1. traceroute
  2. SNMP
    不同类型网络设备之间客户机/服务器模式的简单通信协议,有Read和Read/Write两个基本命令模式。

网络设备识别

  1. 搜索引擎:Shodan、ZoomEye
  2. 设备指纹

网络实体IP地理位置定位

  1. 基于注册信息
  2. 基于网络测量(时延等)

口令攻击

针对口令强度

字典攻击

把使用概率高的口令用不同的变异规则组成猜测字典。

强力攻击

用足够快的计算机尝试所有可能的口令。

组合攻击

在字典单词末尾串接任意字母和数字,介于字典攻击和强力攻击之间。

撞库攻击

收集已泄露的用户名和密码,登录其他网站(利用很多人只有一套用户名和密码)。

彩虹表攻击

彩虹表是一种破解哈希算法的技术,也用于跨平台破解密码,主要用于破解HASH、MD5等。基于内存-时间衡量方法,通过用内存换时间,提高破解率和破解速度。

针对口令存储

Linux

  1. 基础口令文件/etc/password
    每行代表一个用户记录,共7个字段,字段间用“:”隔开。
  2. 散列口令文件/etc/shadow
    密码部分包括算法、salt和哈希值,后两者编码为可打印字符。为了对抗暴力攻击,使用多轮哈希函数。

windows

  1. 存储位置
    1)%SystemRoot%system32\config\目录下
    2)%SystemRoot\repair目录下的SAM._文件
    3)注册表中的HKEY_LOCAL_MACHINE\SAM键
    4)Winlogon.exe的内存块中
  2. SAM文件的安全保护措施
    1)SAM文件锁定
    操作系统运行期间,管理员也无法访问。
    2)隐藏
    注册表中的备份被隐藏
    3)不可读
    保存时将其进行压缩处理。
  3. 本地获取口令
    1)获取系统自动保存的口令(存在硬盘上)
    2)直接读取登录口令(暂存在内存中)
    3)破解SAM
  4. 破解工具
    原理:遍历明文和加密算法
    L0phtcrack、NTSweep、NTCrack、PWDump

针对口令传输

口令嗅探

被动攻击方式,目标难以察觉。
嗅探器可以是软件或硬件,把系统的网络接口设为混杂模式,可以监听所有流经同一以太网网段的数据包。
嗅探程序把所有捕获的数据存入log文件,等待攻击者下载。
注意嗅探主机和被监听主机必须在同一网段上,嗅探程序必须用管理员身份运行。

键盘记录

键盘记录好处是可以在口令加密和传输之前就可以得到明文密码。

  1. 硬件截获
    修改主机键盘接口(PS/2或USB),使之在向主机传递IO数据时将信息发送给攻击者。
  2. 软件截获
    通常作为木马功能的一部分,通过监视操作系统处理键盘输入的接口,记录键盘输入内容后发给远程攻击者。

网络钓鱼

重放攻击

  1. 简单重放
    监听双方通信内容并记录,之后进行重放。
  2. 反向重放
    比如AB之间确定了一种挑战应答方式,攻击者没有A的合法账号,用A给B发出请求,B返回一个挑战值,攻击者不知道合法应答方式所以暂时将这个会话挂起;等B向A发出请求时,A把先前收到的挑战值发给B,B会返回正确的应答。所以A把B的应答值再发给B,即可通过B的挑战验证。

防止口令猜测

  1. 关闭不需要的服务和端口
  2. 硬盘分区采用NTFS格式:支持大容量文件和超大分区,还包括长文件名、压缩分区、事件追踪、文件索引、高容错性、数据保护和恢复、加密访问等。但是会记录详细的硬盘读写操作,因此对于闪存会有很大的负担和伤害。

软件漏洞

漏洞标准化研究

公共漏洞和暴露CVE

字典表,为广泛认同/已经暴露的漏洞给出公共名称以及相应修补信息。

通用缺陷枚举CME

包括类缺陷、基础缺陷和变种缺陷,有字典、开发和研究三种视图。
字典把所有缺陷按字母表顺序排列以供查阅;开发以软件开发周期为参照进行分类;研究从内在性质等方面进行分类。

栈溢出

栈和栈帧

程序运行时在内存中会有一块连续区域,从内存地址高到低依次是栈、堆、数据段、代码段


  1. 由编译器自动分配释放,存放临时创建的局部变量和参数等。先进后出,便于保存/恢复函数调用现场。每个进程对应一个栈空间,进程中每个函数独占一个栈帧。

  2. 位于BSS内存段上面,由程序员分配释放,程序结束时操作系统统一回收。大小不固定,可以动态扩张和缩减。
  3. 数据段
    包括已初始化的数据段(.data)和未初始化的数据段(.bss),在编译时进行分配。
  4. 代码段
    存放由处理器直接执行的二进制代码和只读数据,可执行指令就是从这里取得的。一般标记为只读,任何对该区的写错误都会产生段错误。

程序和栈

  1. 随着函数调用层数增加,函数栈帧向低地址方向延伸。随着各层调用函数返回,栈帧一块块被遗弃,向高地址方向回缩。
  2. 两个相关寄存器
    SP是栈顶指针,随数据出入栈变化。
    BP是栈底指针,标识一个相对稳定位置,BP加偏移地址可以引用参数和局部变量。
  3. 每个栈帧包含4个部分:前栈帧ebp、临时局部变量、函数参数、返回地址

函数调用

  1. 把EIP的内容(EIP指向当前CPU要运行的下一条指令的地址)压入栈,作为返回地址RET。
  2. 压入EBP,它指向当前函数栈帧的底部。
  3. 把ESP拷到EBP作为新的基地址,为本地变量的动态存储分配留一些空间,把ESP减去适当的数值。

栈溢出

栈从高到低依次是函数变量、前栈帧ebp和前栈帧中的返回地址,所以如果变量大小超过了给变量分配的存储空间,就会覆盖位于低地址的前栈帧ebp和前栈帧中的返回地址。所以如果精心设置用于覆盖返回地址的值,就可以通过给变量赋值来控制程序跳转到其他代码空间执行,即利用栈溢出实现控制流劫持。

shellcode编写

定义

可完成一定功能、能被计算机直接执行的机器代码(通常以十六进制形式存在)

Windows函数调用原理

  1. LOAD函数所在的dll
  2. 用堆栈进行参数传递
  3. CALL函数地址

动态定位函数地址

  1. 定位GetProcAddress地址
    暴搜(不通用);用PEB;SHE获得kernel基址;HASH查找所有函数地址
  2. 通过GetProcAddress获得目标函数地址
  3. 调用目标函数地址

环境变量攻击

环境变量

一组动态定义值,是操作系统运行环境的一部分,会影响正在运行的进程的行为方式(加载哪些外部dll)

获取环境变量

  1. 用fork()创建的新进程会继承其父进程的环境变量
  2. 进程用execve()启动新程序,此进程的内存会被覆盖,所有环境变量丢失。

envp和environ

  1. 最初指向同一位置
  2. envp只在主函数中有效,environ是全局变量
  3. 更改环境变量时,环境变量的存储位置可能会移动到堆中,此时envp不变,environ会变化

shell

shell启动时会把环境变量复制到自己的shell变量中,修改shell变量不会影响到环境变量。在shell中输入env,将创建一个新进程。

set-uid

  1. 允许用户(临时提升到)程序所有者的权限运行程序
  2. 进程的RUID是进程所有者,EUID标识进程权限(用于访问控制)。
  3. 正常运行程序时,EUID=RUID;用set-uid运行时EUID是程序所有者ID

system和execve

execve()的攻击面小,因为不调用shell所以不受环境变量影响,适用于在特权程序中调用外部程序。

允许普通用户执行特权操作的常用方法

  1. set-uid
    普通用户运行一个特殊程序,以临时获得特权
  2. 服务
    普通用户请求特权服务为自己执行操作

web应用攻击

分类

  1. web客户端攻击(攻击用户)
    XSS、网络钓鱼、网络挂马等
  2. web服务器攻击
    网页篡改、代码注入攻击、文件操作控制攻击等
  3. HTTP协议攻击
    HTTP头注入攻击、HTTP会话攻击等

XSS攻击

  1. 原理
    未对用户输入进行有效过滤,导致用户输入的数据被当成js或html代码执行。
  2. 同源策略
    同源是指协议、域名、端口均相同。同源策略是指两个非同源的网站不能打开彼此设置的cookie,这是一种对抗XSS攻击的方式。
  3. 分类
    1)反射型XSS
    使用非持久性参数型跨站脚本,恶意代码直接附加到URL参数中。如在输入框中直接输入js代码,该代码被直接执行。
    2)存储型XSS
    使用持久性跨站脚本,即脚本被存储在服务端数据库中。如某人把自己社交平台的个人页面部分某个板块中插入恶意代码,使每个访问其主页的人都受到XSS攻击。
    3)DOM型XSS
    这种XSS要求客户端的js能访问浏览器的DOM文档(网站有一个html页面采用了不安全方式),攻击者通过诱使用户访问自己构造的URL在其客户端注入恶意脚本,不需要与服务端进行交互,可以绕过WAF,避开服务器检测。
    一般攻击流程:攻击者通过URL、输入框等把包含恶意脚本的数据提交到网页,引诱用户访问该页面;用户的浏览器解析html并构建DOM树时,通过js等方式修改DOM,插入恶意脚本;浏览器解析和执行DOM时触发恶意脚本。
  4. 其他
    cookie窃取、会话劫持(冒用合法用户的会话ID)、网络钓鱼(比传统网络钓鱼更隐蔽)、信息刺探、网页挂马、XSS蠕虫(一般利用存储型XSS)
  5. 防范措施
    1)httponly
    是一个cookie的标志,作用是禁止任何脚本访问cookie。可以防止cookie窃取。
    2)安全编码
    对用户输入内容进行编码处理,避免被作为代码执行。例如“<”编码为“&lt”、“>”编码为“&gt”等。

SQL注入攻击

  1. 原理
    向网站提交精心构造的sql语句,导致网站返回敏感数据。
  2. 使用sql的常见数据库
    Oracle、Sybase、sql server、access等
  3. sql存储过程
    预先封装复杂的sql语句。
    分类:
    1)系统存储过程:以sp_开头,进行系统各项设定和获取信息
    2)扩展存储过程:以XP_开头,调用操作系统相关功能
    3)用户自定义的存储过程
  4. 注入攻击类型
    根据注入点类型:
    1)字符型SQL注入:注入点类型为字符串,如“name”
    2)数字型SQL注入:注入点类型为数字,如“id”
    根据有无错误信息:
    1)基于错误信息的注入
    2)SQL盲注入
    网站将SQL错误信息的返回关闭,即无法根据错误信息提示构造SQL语句。有布尔盲注和时间盲注。
  5. 注入步骤
    1)寻找注入点
    通过在查询参数后添加恒等式和不可能式,观察返回值来判断该点能否注入。
    一般添加不可能式时,若返回找不到记录或返回为空,说明存在注入点。
    2)判断数据库类型
    通过错误信息判断数据库类型,然后利用该数据库内置的表查询获得当前数据库名。
    3)获取表名和字段名
    注入不同的表名和字段名,返回正常页面即说明该表/字段存在。也可利用数据库的自带表查询获得。
    4)猜字段值,注入获取敏感信息
  6. 隐蔽性
    从正常的WWW端口访问,防火墙一般不会报警
  7. 防范措施
    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等

恶意代码

概述

恶意代码命名

<病毒前缀>.<病毒名>.<病毒后缀>

  1. 前缀是指病毒种类
  2. 名是指病毒的家族特征
  3. 后缀是指病毒的变种特征

病毒

  1. 四个阶段
    潜伏、传染、触发、发作
  2. 四个模块
    感染、触发、破坏、主控
  3. 三种机制
    传染、触发、破坏

蠕虫

  1. 自身有独立性和完整性
  2. 组成
    弹头、传播引擎、目标算法、扫描引擎、有效载荷
  3. 工作流程
    随机生成IP、探测地址、检测主机和漏洞是否存在、攻击&传染&现场处理

木马植入技术

  1. 直接攻击
    利用系统漏洞直接远程安装
  2. 文件下载
  3. 接触植入
    用U盘或充电宝(针对手机)
  4. 邮件传播
    利用邮件内容或附件
  5. 网页挂马
    利用IE浏览器的漏洞
  6. 软件漏洞
  7. 社会工程

木马开发

基本特性

  1. 自启动
    启动组(“开始-程序-启动”)、注册表(Run、RunOnce、Winlogon、Load)、注册服务(RunServices、RunServicesOnce)、配置文件(Win.ini、System.ini、Autoexec.bat和Config.sys)、修改文件关联、捆绑文件、SPI、BHO等
  2. 功能特性
  3. 抗查杀性
  4. 隐蔽性

假消息攻击

概述

利用网络协议设计中的安全缺陷,发送伪造的数据包实现欺骗。

TCP/IP协议的设计缺陷

  1. 缺乏信息加密机制
  2. 缺乏有效的身份鉴别和认证机制

类型

  1. 应用层:DNS欺骗、SSL中间人
  2. 传输层:IP欺骗、SYN Flood
  3. 网络层:ICMP重定向、IP分片攻击
  4. 数据链路层:ARP欺骗

嗅探

以太网卡

  1. 以太网分类
    1)共享式:用同轴电缆或hub连接
    2)交换式:用交换机连接
  2. 网卡工作原理
    从网络中接收数据,处理数据链路层任务;网卡内的单片程序检查数据帧的目的MAC,根据网卡驱动程序设置的接收模式决定是否接收。若需要接收,以中断方式通知操作系统,否则直接丢弃。
  3. 侦听模式
    1)单播:接收单播和广播数据帧
    只让目标MAC与自己的MAc相同的数据帧通过。
    2)组播:接收单播、广播和组播数据帧
    3)混杂(在WiFi中称为监控模式):接收经过的所有数据帧
    不再进行硬件过滤。
  4. 过滤器
    BSD数据包过滤器(BPF)让一个用户程序向套接字附加一个过滤器,告诉内核放弃自己不想要的数据包。

交换式以太网嗅探

  1. MAC泛洪
    向交换机发送大量包含虚构MAC和IP的包,使交换机进入“打开失效”模式,即进入类似hub的工作方式(向网络上所有机器进行广播)。
  2. MAC欺骗
    把源MAC伪造为目标主机的MAC,通过交换机发送,让交换机更新其“MAC-端口”映射表,交换机会相信攻击者的MAC就是目标主机的MAC,也就会把本来是发给目标主机的包发给攻击者。
  3. ARP欺骗
    对网关和目标主机实行ARP欺骗,截取两者间的通信数据。

协议还原

把离散的网络数据根据协议规范重新还原成可读的协议格式。
过程:主机封包、嗅探器抓包、嗅探器组包。

嗅探的检测

向主机发送可以触发操作系统做出响应,又不能通过硬件过滤的包,可以检测主机网络接口的接收模式。

嗅探的防范

  1. 网络分段:用交换机替代hub;划分VLAN
  2. 会话加密:使用安全协议
  3. 使用静态的ARP缓存

ARP欺骗

欺骗方式

  1. 在ARP请求中发送错误的发送者IP-MAC映射
  2. 在ARP应答中发送错误的发送者IP-MAC映射

防范

  1. 建立DHCP服务器
  2. 局域网中建立MAC数据库
  3. 网关关闭ARP动态刷新的过程,使用静态路由
  4. 局域网监听ARP数据包
  5. 使用VLAN或PVLAN技术

ICMP重定向攻击

ICMP重定向

  1. 功能
    保证主机拥有动态的、既小又优的路由表。
    主机启动时拥有的路由信息不一定是最优的,路由器检测到IP数据报经非最优路由传输时,通知该主机去往该目的地的最佳路径。
  2. 条件
    1)新路由必须是直达的
    2)重定向包必须来自去往目标的当前路由
    3)重定向包不能通知主机用自己做路由
    4)被改变的路由必须是一条间接路由

攻击防范

  1. linux:通过配置防火墙或修改内核选项重新编译内核实现拒绝接收ICMP重定向报文。
  2. Windows:通过防火墙和IP策略拒绝接收ICMP重定向报文。

IP欺骗

方法

要点在于伪造源IP。难点在于获取TCP的ACK初始序列号,如果与目标在同一局域网内,可以通过嗅探获得,否则只能靠猜测。

防范

  1. 只在需要时启动终端会话,在其变成不活动状态前注销
  2. 使用基于加密的终端协议
  3. 使用随机化的初始序列号(干扰猜测)
  4. 不使用基于地址的信任策略

DNS欺骗

DNS相关

  1. 域、区域和子域
    DNS是根据区域组织的,区域将域树上相邻的域和子域分组,把管理权限分配给实体。子域是域的“下级”,区域的划分与域和子域的划分无关。
  2. 权威服务器
    每个区域至少有一个权威服务器,可以是主服务器(存储所有区域记录)或从服务器(使用自动更新机制维护维护与主服务器相同的记录副本)。
  3. 根服务器
    13个根服务器是互联网上最关键的基础设施。
  4. 本地DNS文件
    1)/etc/hosts
    存储某些主机名的IP,在查询本地DNS服务器前会先在该文件中查找。
    2)/etc/resolv.conf
    向计算机的DNS解析器提供有关本地DNS服务器地址的信息,存储着DHCP提供的本地DNS服务器的IP。
  5. 查询方式
    一般从计算机到本地DNS服务器是递归查询,从本地DNS服务器再向上查询是迭代查询。

SSL中间人攻击

SSL

  1. 握手阶段
    1)加密传输数据,保证数据机密性
    2)验证信息在传送过程中是否被修改,保证数据完整性
    3)使用非对称加密算法,通过数字证书验证服务器和客户端的身份
  2. 加密数据传输阶段
    服务器和客户端的数据被分成一系列经过保护的记录进行传输。

防范

  1. 检查证书来源和属性
  2. 不要打开证书不可信的网址

系统安全

熔断与幽灵攻击

侧信道攻击

利用执行时间等额外信息推导其他秘密信息。

flush-reloaded技术

监视存储器s位置。
先刷新CPU缓存;然后让目标进程访问s位置;再重新加载,测量加载时间。
如果目标进程访问了该位置,则其应该在缓存中,重新加载所用时间较短,否则因为需要从内存中取出相应内容,所以重新加载时间长。

熔断攻击

  1. 原理
    利用CPU缓存和乱序执行特性,通过一些手段把秘密信息/地址写入CPU缓存(一般是借助异常处理不会刷新缓存的特性),再通过测量访问时间获取这个值。
  2. 对策
    1)是硬件漏洞。
    2)KASLR(内核地址空间布局随机化)
    不映射用户空间中的任何内核内存(x86体系结构所需的某些部分除外,如中断处理程序);用户级程序不能直接使用内核内存地址(这样的地址无法解析)。

幽灵攻击

CPU发现分支预测错误时,会丢弃分支执行的结果并恢复CPU状态,但不会恢复CPU缓存的状态。可以通过缓存侧信道攻击获取秘密数据。

拒绝服务攻击

分类

  1. 漏洞型
    利用软件实现中存在的漏洞
  2. 重定向型
    利用网络协议的设计缺陷,使目标传输的数据被重定向到错误的网络地址(无法正常进行网络通信)
  3. 资源消耗型
    通过发送大量请求占用网络带宽或系统资源

洪泛攻击

  1. TCP/SYN洪泛
  2. UDP洪泛
  3. HTTP洪泛(针对性分析,不盲目追求大流量)

低速率拒绝服务攻击LDoS

利用网络协议或应用服务协议中的自适应机制存在的安全问题,周期性发送高速脉冲攻击数据包,降低目标主机服务性能。

  1. TCP拥塞控制
    1)重度拥塞
    发送端为每个发送的报文设置一个定时器,若收到报文确认之前定时器超时就重新发送该报文。设置的定时器就是RTO。
    2)轻微拥塞
    发送端收到3个重复的ACK包就开始重传,用AIMD算法调整拥塞窗口大小。
  2. 原理
    故意制造拥塞,使拥塞控制一直处于调整状态,发送端速率会迅速减小。

分布式拒绝服务攻击

基于僵尸网络的DDoS

  1. 命令控制机制是僵尸网络区别于其他恶意代码形态的最本质属性。
  2. 集中式命令控制机制
    僵尸节点连接到一个或多个控制服务器来获取控制命令。包括基于IRC协议的僵尸网络和基于HTTP协议的僵尸网络。
  3. 分布式命令控制机制
    攻击者连接到任意僵尸节点发布控制命令,用push/pull方式在整个僵尸网络中传递。
  4. 发动DDoS
    1)构建僵尸网络
    2)收集目标信息
    3)实施DDoS攻击

反射型DDoS

  1. DNS反射攻击
    向DNS服务器发送伪造源地址的查询请求,把应答流量引向目标。
  2. LDAP放大攻击
    向LDAP(轻量目录访问协议)服务器发送伪造源地址的查询请求,把应答流量引向目标。
  3. NTP放大攻击
    向NTP(网络时间协议)服务器发送伪造源地址的查询请求,把应答流量引向目标。

防御

预防

在攻击前阻止攻击。

  1. 抑制僵尸网络规模
  2. 过滤伪造源地址的报文
  3. 减少可用的反射/放大器

检测

在攻击过程中发现攻击,区分攻击流量与正常流量

  1. 特征检测
    分析攻击流量的行为特征,建立特征库
  2. 异常检测
    对比当前网络状态与正常网络状态的不同

响应

攻击发生后降低乃至消除攻击的影响
流量清洗:设法过滤掉攻击流量,只把正常流量交付给服务器。

容忍

通过提高处理请求的能力来消除攻击的影响

  1. CDN
  2. Anycast
    一种网络寻址和路由方法,一组服务器可以使用相同的IP,提供相同的服务。
posted on   ww0809  阅读(162)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 实操Deepseek接入个人知识库
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· 【.NET】调用本地 Deepseek 模型
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
· 上周热点回顾(2.17-2.23)



点击右上角即可分享
微信分享提示