ImageVerifierCode 换一换
格式:PPTX , 页数:75 ,大小:951.52KB ,
资源ID:18831114      下载积分:15 文币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.wenkunet.com/d-18831114.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(人机交互智能安全第4讲.pptx)为本站会员(bubibi)主动上传,文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知文库网(发送邮件至13560552955@163.com或直接QQ联系客服),我们立即给予删除!

人机交互智能安全第4讲.pptx

1、2.2.2 侧信道攻击与防御侧信道攻击(Side-Channel Attack,简称SCA)也叫边信道攻击或旁路攻击,是密码分析的一种主要攻击方式。侧信道攻击主要通过从密码算法的硬件实现运行过程中获取旁路信息,而非暴力破解法或是利用算法中的理论弱点。在侧信道攻击中密码算法正常执行,并不会对密码算法的执行和硬件实现造成破坏或影响,所以侧信道攻击是一种被动型非入侵式攻击。目前市场上大多数嵌入式设备的电路设计都是基于互补金属氧化物半导体(Complementary Metal Oxide Semiconductor,CMOS)工艺的,其实现的基础元件是与、非、异或门电路,密码算法得实现可以通过门电路

2、的状态变化实现。CMOS 反相器是由 PMOS(又称负载管)和 NMOS(又称驱动管)管组成,如图2-5所示为 CMOS 反相器的反向电路原理:当输入电压为高电平时,即Vin=1,与 PMOS 管的电压相等,此时 PMOS 管截止,NMOS 管导通,负载电荷将通过接地将电荷释放,输出为低电压,即Vout=0;当输入为低电平时,即Vin=0,与 NMOS 管的电压相等,此时,NMOS 管截止,PMOS管导通,Vout=Vdd=1。反相器的能量消耗主要分为两部分,一部分是静态消耗,即状态没有任何变化时的能量消耗;另一部分是动态消耗,即当输入信号发生变化时,还要产生额外的能量消耗。一个逻辑元件的能量

3、消耗总和由静态能量和动态能量组成。汉明距离模型(Hamming Distance,HD):通过计算在某个特定时间段内 CMOS反相器由01和10的状态变化总数。依据数据状态变化总数反应算法在该时刻的能量消耗值。汉明重量模型(Hamming Weight,简称HW):汉明距离模型是建立在攻击者对设备网表十分熟悉的前提下,而汉明重量是一种更加有效的方式,即使攻击者对网表一无所知,分析者仍然可以根据汉明重量模型对能量消耗进行建模仿真。在HW模型中,假定能量消耗与被分析数据中比特位为1的个数成正比,不考虑该数据在处理前后的数值;在CMOS电路中,能量消耗根据逻辑状态的变化而变化,并不是数据本身的值,因

4、此,HD模型对电路的能量消耗仿真并不合适。计时攻击主要依据密码芯片在不同密钥的作用下执行的时间有所差异,通过测量密码算法的执行时间而获得密钥。该攻击方法对密码芯片、协议、智能卡均是有效的。在计时攻击中,攻击者通过获得一系列密码算法处理的返回信息和处理时间,进 而对信息分析获得密码参数。其攻击模型如图 2-6所示:我们设定符号意义为m消息,k密钥,S输出,,*是指算法,T:算法计算需要的时间,。假定计算中密钥恒定,且监听者已经破解一组消息及计算时间T,现为了攻击密钥的第i个比特ki,当监听者捕获时间 ,则可建立函数判断比特位的值。假定随机变量 的分布是不同的,通过观察实际的 与 的分布,则有可能

5、推测出ki,进而推测出完整的密钥值。能量攻击由 Kocher 等人提出,该技术方便实用且简单有效,几乎对所有的密码算法均适用,也是发展最快的攻击手段。主要包含简单能量攻击、差分能量攻击、相关能量攻击、互信息分析等。具体攻击描述如下:简单能量攻击(Simple Power Analysis,SPA)是根据密码芯片在计算过程中消耗的功耗特征获取与密钥有关的信息,通过该方法攻击者能够根据能量曲线的特征及其本身具备的经验能够直观的分析出指令执行的顺序,从而对指令顺序与数据相关的密码算法进行破解。该攻击方法只需采集少量的能量曲线,便可实现对密码算法的破解,但是对攻击者的要求较高,需要了解算法的具体执行过

6、程,具备深厚的密码理论知识。例如,在RSA密码算法的执行过程中,当比特位为1和为0时所对应的操作时不一样的,当比特位为1时,执行平方及模乘运算,当比特位为0时,仅有平方运算,因此,我们可以通过直观上的观察,对其能量消耗进行区别以判别密钥信息。因为密码算法在执行过程中,针对每一比特的能量消耗信息在一些时段中会出现较大差别,因此,如果测量设备的精度很高,那么算法所执行的每条指令都能够通过SPA观察出来。RSA密码算法SPA分析如图2-7所示:差分能量攻击(Differential Power Analysis,DPA)经过采集大量的能量曲线,分析能量曲线微小的差分信号来获取关键信息。DPA 首先采

7、集大量的能量曲线,将其作为先验函数,然后,对密钥的猜测值进行中间值计算并采集能量,将其进行分类并作为后验函数,通过分析两组函数之间的相关性来判断猜测密钥是否正确,如果相关性强,则猜测密钥正确,反之,猜测错误。最早的 DPA 模型由 Kocher 提出,如下所示为 DPA 模型:其中,表示能量区分函数;表示输入的消息,可以是明文或密文,是所猜测的密钥值;表示所采集的能量,其中i表示能量曲线数,j 表示各个能量曲线中的采样点。在能量采集结束之后,猜测密钥值,通过对区分函数 与所有的能量曲线做处理,当密钥值猜测错误时,区分函数将对所有的能量曲线进行随机分类,差分结果为随机噪声;若密钥猜测正确,则区分

8、函数所引起的差分峰值就会显示出来,从而验证密钥猜测正确。相关性能量攻击(Correlation Power Analysis,CPA)是由 Brier 等提出,该攻击方法通过一个未知但恒定的参考值,构造具有数据相关性的汉明模型,利用能量消耗样点与被处理数据的汉明重量之间的相关系数进行分析。该攻击方法的假设前提是攻击者已知明文,并能够变化明文且同时采集对应的能量曲线。通过猜测算法的密钥值,结合明文与密钥计算中间变量,利用中间变量的汉明权重和能量的相关系数进行分析,相关系数最高的就是猜测正确的密钥,而对于错误密钥,由于不能正常显示中间变量与功耗之间的正比关系,因此,相关系数较低。其计算公式如下:其

9、中,代表相关系数,P表示能量消耗,HW表示汉明重量,E 表示期望值,D表示方差。故障注入攻击(Fault Injection Attack,FIA)是指攻击者通过某种手段(瞬时高压、电磁脉冲、激光等)在密码算法运行过程中的某一时刻注入故障,使得算法执行错误的操作或者产生错误结果,然后依据这些错误信息进行分析,获取密钥相关的信息。故障注入攻击分为两种:一、当密码算法遭受故障注入攻击之后一直处于非正常的工作模式,使得密码算法在运行过程中一直产生错误结果,称为永久性故障。二、在密码算法运行过程中进行故障注入,使得其某些操作出现错误,当再次运行密码算法时,该算法正常工作,称为短暂性故障。故障分析属于主

10、动攻击,攻击者需要充分掌握算法原理,不同的算法其实现过程也不一样,故障发生的位置、时间等都不一样,在实际的分析过程中,往往需要借助SPA 来确定实施攻击的位置。防御对策的目的都是使密码算法的物理消耗减少或不依赖密码算法执行时的中间值。主流的研究方向分为:低功耗设计、功耗平衡、随机化功耗。其中,低功耗设计是通过降低硬件的能量消耗,减少攻击者可获取的泄露信息;平衡功耗主要是通过平衡不同指令之间的能量消耗,尽可能的使不同指令消耗相同的能量,达到混淆的目的;随机化功耗主要是为了消除能量消耗与密钥之间的依赖性,从而无法根据能量信息获取密钥值。常见的实现方法分为两种,一种称作隐藏(Hiding),一种称作

11、掩码(Masking)。隐藏的目的是破坏被处理数据与能量消耗之间的关联,从而防御侧信道攻击,主要是通过改变算法的实现过程实现。掩码技术是通过引入随机数,对算法执行过程中的中间值进行随机化运算,使得数据在掩码状态下进行操作,从而达到防御侧信道攻击的目的。隐藏防御方案主要通过插入伪操作、乱序等方法来实现隐藏能量与中间值之间的关联,该方案相对较为容易实现。1)插入伪操作插入伪操作的根本思想是在密码算法执行的前后,及算法执行的过程中,随机插入伪操作。插入的伪操作数量越多,算法执行消耗的时间越长,加密操作的位置随机性变化越大,攻击者越难实施攻击。2)乱序乱序操作的核心是在某些密码算法的实现过程中,将不需

12、要顺序执行的操作进行随机化处理。乱序操作与插入伪操作效果相同,都能将算法的能量消耗随机化。但是,乱序操作没有引入过多的操作,所以对算法的数据吞吐量影响不是很明显。乱序操作对算法的整体性能影响较小,且易于实现,是一种很好的隐藏措施。然而,缺点在于并不是一切密码算法都跟操作顺序无关,这取决于算法自身的设计及实现的体系结构,该方法只能针对限定的操作执行,其实际应用范围比较局限。掩码是通过引入随机数,对算法执行过程中涉及到的中间值进行掩码处理,使所有数据在掩码状态下进行计算,从而达到防御侧信道攻击的目的,是最常见也最广泛的一种算法级防御技术。该措施不需改变密码算法的能量消耗特征,仅改变其算法的实现过程

13、,消除密码算法的能量消耗与中间值之间的依赖性。在掩码方案的计算过程中,所有中间数据值 通过与掩码值 进行转换操作,使其满足 ,其中*表示两者之间的运算关系,常见的掩码运算包括异或 、模加、模乘。其中,掩码值 是随机产生,每一次计算过程中的值均不相同,且对攻击者来说是保密的。因此,该方法能够有效的保护中间值信息。根据掩码计算方式的不同,可以将其分为布尔型掩码方案和算术型掩码方案。布尔型掩码方案是指中间数据值与掩码值通过异或操作运算 ;而算术型掩码方案是指中间数据值与掩码值之间的操作为加法或乘法运算 。掩码技术的核心思想是通过掩码来改变中间值,对于给定的信息 能够有效的计算出中间值v。当给定 中的

14、任何一个时,不会泄露关于中间值的任何信息,因此,掩码技术又可以看作是基于两个共享因子的秘密共享方案。根据需要防护的DPA 攻击阶数,可以设定不同的掩码数量,一般来说,为了防御 n阶 DPA 攻击,需要 n个掩码值。但是,将多个掩码值作用到同一个中间值,需要寄存器存储掩码值及更大的内存提供计算,增加资源开销。公钥密码算法的实现主要为算术运算,一般采用加法掩码或者乘法掩码实现侧信道攻击的防御,对应的算术掩码操作称作“盲化”。通过利用算法实现过程中的运算方 法,适当添加一些随机数,对中间值进行掩码处理。如在 RSA 算法的实现过程中,可以对密钥采用加法掩码操作,也可以对密文进行乘法掩码操作。在实施掩

15、码操作的过程中,掩码所达到的效果取决于随机数的随机性好坏,只有生成随机性好的随机数,才能实现对数据的有效掩盖,得到的差分能量曲线没有较大的波动,造成 DPA 区分函数对能量曲线的划分出现错误,消除或降低其相关性。2.2.3 黑客常用攻击方法与防御 黑客,这个时代的独有词,起源于50年代麻省理工学院的实验室中,他们精力充沛,热衷于解决难题。60、70年代,“黑客”一词极富褒义,用于指独立思考、奉公守法的计算机迷,他们智力超群,对电脑全身心投入,对计算机的最大潜力进行智力上的自由探索,为电脑技术的发展做出了巨大贡献。到了80、90年代,计算机越来越重要,大型数据库也越来越多,同时,信息越来越集中在

16、少数人的手里。这样一场新时期的“圈地运动”引起了黑客们的极大反感。黑客认为,信息应共享而不应被少数人所垄断,于是将注意力转移到涉及各种机密的信息数据库上。本节将抽取几种黑客攻击方法加以阐述。1.扫描攻击扫描技术是一种基于网络远程检测目标网络或本地主机安全性脆弱点的技术。获取与网络有关的敏感数据的手段是网络扫描,也称为网络信息采集。它既可能被黑客利用,对网络安全造成危害,也可能被系统管理员用来检测危险。黑客在一次入侵过程中通常会有以下这些动作:(1)搜集目标信息(fingertelnetrusers,各种扫描器如NMAP,ISS,SATAN);(2)查找系统已知漏洞,构造攻击方案(通过安全邮件列

17、表、讨论组的消息等);(3)获得普通用户权限(口令破解,伪装,窃听等);(4)获得超级用户权限(缓冲区溢出,符号连接,root的木马);(5)清除入侵痕迹(utmp,lastlog,messages);(6)设置后门,为下一次进入系统提供方便;(7)作为中转站攻击另一目标。要完成一次成功的网络攻击,第一步就是要收集目标站点的各种信息。对于黑客来说,信息是最好的工具。它可能就是黑客发动攻击的最终目的(如绝密文件、经济情报等等):也可能是黑客获得系统访问权的通行证,如用户口令、认证票据(ticket):也可能是黑客获取系统访问权的前奏,如目标系统的软硬件平台类型、提供的服务与应用及其安全性的强弱等

18、等。攻击者主要利用手工探测或一些扫描软件对目标进行彻底分析,尽可能收集攻击目标的大量可能而有效的信息,以至最后可以分析得到所攻击目标的漏洞列表。分析结果包括:操作系统类型,操作系统版本,所开服务,所开服务版本,网络拓朴结构,网络设备,防火墙,入侵检测装置等等。一次完整的网络安全扫描分为三个阶段:第一阶段:发现目标主机或网络;通常称为主机扫描;第二阶段:发现目标后进一步搜集目标信息,包括操作系统类型、运行的服务以及服务软件的版本等;通常称为OS探测和端口扫描;第三阶段:根据搜集到的信息判断或者进一步测试系统是否存在安全漏洞,通常称为漏洞扫描。主机扫描用于网络安全扫描第一阶段,目的是识别系统是否处

19、于活动状态,采用ping命令实现。ping是潜水艇人员的专用术语,表示回应的声纳脉冲。在网络中,用ping命令向目标主机发送ICMP回显请求报文,并等待ICMP回显应答,从而检测网络的连通情况和分析网络速度。经验丰富的网络命令使用者可以手工输入各种探测命令,收集和比较各个目标系统的返回信息,建立一个信息库。此后,当他得到某一返回信息时,便将该返回信息和信息库进行比较,以确认系统版本或所开放的服务等。1)操作系统识别扫描操作系统(Operating System,简称OS)识别是入侵或安全检测需要收集的重要信息,是分析漏洞和各种安全隐患的基础。只有确定了远程主机的操作系统类型、版本,才能对其安全

20、状况作进一步的评估。由于TCP/IP协议栈只是在RFC文档中进行了描述,并没有一个统一的实现标准,可以利用操作系统里的TCP/IP协议栈作为特殊的“指纹”,通过对不同操作系统的TCP/IP协议栈存在的细微差异的鉴别来判定操作系统类型。(1)主动协议栈指纹识别FIN探测向目标主机上一个打开的端口发送一个FIN分组(或无ACK和SYN标记的包),然后等待回应。许多系统如Windows NT、CISCO IOS、HP/UX、IRIX都将返回一个Reset,而有的没有回应。BOGUS标记探测向目标主机发送一个含有未定义的TCP标记的TCP头的SYN包,一些操作系统如Linux将在回应里包含这个未定义的

21、标记,而其它一些系统收到这种包将关闭连接。初始化序列号(ISN)采样探测寻找初始化序列号的值与特定的操作系统之间的规律。如早期的Unix系统初始化序列号以64K递增,而一些新的Unix系统如Solaris、IRIX、FreeBSD、Digital Unix、Cray等则是随机增加初始化序列号的值。Dont Fragment(DF)位探测一些操作系统会设置IP头部“Dont Fragment位”(不分片位)以改善性能,监视这个位就可以判定区分远程OS。TCP初始窗口的大小检测这种方法检查返回的数据包里包含的窗口大小。某些操作系统在实现TCP/IP协议栈时将这个域设置为独特的值。如AIX是0 x3

22、F25,Windows NT和BSD是0 x402E。TCP可选项探测利用发送的TCP数据包里所设定的一些TCP可选项,根据返回包的内容判断操作系统。ACK值探测寻找不同的操作系统在设置ACK序列号上存在的差异和规律。有些操作系统会将其设置为所确认的TCP数据包的序列号,而另外一些则将所确认的TCP数据包序列号加1作为ACK序列号返回。ICMP错误消息抑制有些操作系统限制返回ICMP错误消息的速率。发送一些UDP包给某个随机选定的高端口,统计在给定时间段内接受到的不可达错误消息的数目。ICMP错误消息引用当需要发送ICMP错误消息时,不同的操作系统所引用的原网络包信息量不同。通过检测返回的IC

23、MP错误消息中所引用的消息可以粗略的判断操作系统类型。ICMP错误消息回射完整性某些操作系统对TCP/IP协议栈的实现在返回ICMP错误消息的时候会修改所引用的IP头,可以通过检测其对IP头的改动粗略判断操作系统。(2)被动协议栈指纹识别主动协议栈指纹识别需要主动往目标发送数据包,但由于正常使用网络时数据包不会按这样的顺序出现,因此这些数据包在网络流量中比较惹人注意,容易被IDS(Intrusion Detection System入侵检测系统)捕获。为了提高隐秘性,需要使用被动协议栈指纹识别。它的原理和主动协议栈指纹识别相似,但是它从不主动发送数据包,只是被动的捕获远程主机返回的包来分析其操

24、作系统类型,一般观察以下4个方面:TTL值操作系统对出站的数据包设置的存活时间。Window Size操作系统设置的TCP窗口大小,这个大小是在发送FIN信息包时包含的选项。DF可以查看操作系统是否设置了不准分片位。TOS查看操作系统是否设置了服务类型。被动分析这些属性并将得到的结果与属性库比较,以判断远程操作系统类型。当然,探测到的系统不可能100%正确,也不可能依靠上面的单个信号特征来判断系统类型,但是,通过查看多个信号特征,把足够多的差异组合起来,可以大大提高对远程主机系统判断的精确程度。2)端口扫描TCP/IP协议提出的端口是网络通信进程与外界通讯交流的出口,可被命名和寻址,可以认为是

25、网络通信进程的一种标识符。进程通过系统调用与某端口建立连接绑定后,便会监听这个端口,传输层传给该端口的数据都被相应进程所接收,而相应进程发给传输层的数据都从该端口输出。在互联网上通信双方不仅需要知道对方的IP地址,也需要知道通信程序的端口号。目前使用的IPv4协议支持16位的端口,端口号范围是065535。其中,01023号端口称为熟知端口,被提供给特定的服务使用,由IANA(网络 Assigned Number Authority)管理;102449151号端口称为注册端口,由IANA记录和追踪;4915265535号端口称为动态端口或专用端口,提供给专用应用程序。一个端口就是一个潜在的通信

26、通道,也就是一个入侵通道。表2-5列出了常用的TCP和UDP端口号以及在相应端口上开放的服务。许多常用的服务是使用标准的端口,只要扫描到相应的端口,就能知道目标主机上运行着什么服务。端口扫描技术就是利用这一点向目标系统的TCP/UDP端口发送探测数据包,记录目标系统的响应,通过分析响应来查看该系统处于监听或运行状态的服务。一个端口就是一个潜在的通信通道,也就是一个入侵通道。表2-5列出了常用的TCP和UDP端口号以及在相应端口上开放的服务。这是网络扫描技术的核心技术之一,广泛用于扫描过程的第二阶段。不过,它仅能对接收到的数据进行分析,帮助我们发现目标主机的某些内在的弱点,而不会提供进入一个系统

27、的详细步骤。在TCP/IP网络中,端口号是主机上提供的服务的标识。入侵者知道了被攻击主机的IP地址后,还需要知道通信程序的端口号。一个打开的端口就是一个潜在的入侵通道。只要扫描到相应的端口已打开,就知道目标主机上运行着什么服务,以便采取针对相应服务的攻击手段。下面介绍几种常用的端口扫描技术。(1)全连接扫描与半连接扫描TCP连接通过三次握手(three-way handshake)建立。图2-8表示了一个建立TCP连接的三次握手过程。若主机B运行一个服务器进程,则它要首先发出一个被动打开命令,要求它的TCP准备接收客户进程的连接请求,然后服务器进程就处于“听”状态,不断检测有无客户进程发起连接

28、的请求。若主机A中运行有客户进程,当它需要服务器的服务时,就要向它的TCP发出主动连接请求:用SYN=1和ACK=0表示连接请求,用SEQ=x表示选择了一个序号。主机B收到A的连接请求报文,就完成了第一次握手。主机B如果同意连接,其TCP就向A发回确认报文:用SYN=1表示同意连接,用ACK=x+1表示对x的确认,用SEQ=y表示B选择的一个序号。主机A接收到该确认报文,完成第二次握手。接着,主机A的TCP就还要向主机B发出确认:用SYN=1表示同意连接,用ACK=y+1表示对y的确认,同时发送A的第一个数据。主机B收到主机A的确认报文,完成第三次握手过程。完成这样一个三次握手,才算建立了可靠

29、的TCP连接,才能可靠地传输数据报文,也可以获取端口是否开放的信息。这种扫描称为全连接扫描或TCP connect扫描。但是,这种扫描往往会被远程系统记入日志。为避免被记入日志,可以使用半开放扫描TCP SYN扫描。因为,当客户端发出一个SYN连接请求报文后,如果收到了远程目标主机的ACK/SYN确认,就说明远程主机的该端口是打开的;而若没有收到远程目标主机的ACK/SYN确认,而是收到RST数据报文(表明连接出现了问题),就说明远程主机的该端口没有打开。这样对于扫描要获得的信息已经足够了,也不会在目标主机的日志中留下记录。这种扫描称为半连接扫描或SYN扫描。(2)TCP FIN扫描FIN是释

30、放连接的数据报文,表明发送方已经没有数据要发送了。很多日志不记录这类报文。TCP FIN扫描的原理是向目标端口发送FIN报文,当FIN数据包到达一个关闭的端口时,会返回一个RST的回复;当FIN数据包到达一个开放的端口时,该包将被忽略,没有回复。由此可以判断一个端口是关闭还是打开的。这种方法还可以用来区别操作系统是Windows,还是Unix。这种方法比TCP SYN扫描更隐蔽,也被称为秘密扫描。(3)UDP ICMP端口不能到达扫描这种方法与上面几种方法的不同之处在于使用的是UDP。许多主机在一个关闭的UDP端口上收到一个数据帧时,会返回一个ICMP_PORT_UNREACH错误,由此可以判

31、断被扫描端口是否关闭。这种扫描方法很慢的,且需要具有root权限。(4)乱序扫描乱序扫描就是对扫描的端口号集合随机地产生扫描顺序,并且每次的扫描顺序不同。这就给入侵检测系统的发觉端口扫描带来困难。3)漏洞扫描漏洞扫描用于安全扫描第三阶段,它通常是在端口扫描的基础上,对得到的信息进行相关处理,进而检测出目标系统存在的安全漏洞。获取权限往往是利用漏洞进行的。系统漏洞分为远程漏洞和本地漏洞两种,远程漏洞是指黑客可以在别的主机上直接利用该漏洞进行攻击并获取一定的权限。这种漏洞的威胁性相当大,黑客的攻击一般都是从远程漏洞开始的。攻击者扫描到系统的漏洞,测试出目标主机的漏洞信息后,往往会先通过使用插件(功

32、能模块技术)进行模拟攻击,或者采用漏洞库的匹配方法,制定出攻击的策略。网络管理者也会针对这些漏洞制定相关对策。(1)系统安全漏洞的类型对于漏洞可以从不同的角度进行分类,来讨论它们的特点。基于触发主动性的漏洞分类:A.主动触发漏洞。该漏洞可以被攻击者直接用于攻击,如直接访问他人计算机。B.被动触发漏洞。这种漏洞必须有计算机操作人员配合才能起作用。基于发现时间的漏洞分类:A.已发现很久的漏洞。厂商发布补丁或修补方法已经有一段时间,广为知晓。由于很多人已经进行了修补,因此宏观危害较小。B.刚发现的漏洞。厂商刚发布补丁或修补方法,知道的人还不多。这种漏洞相对于已发现很久的漏洞危害性较大。C.0day漏

33、洞。还没有公开,或因私下交易而形成的漏洞。这类漏洞会导致目标受到精确攻击,危害非常大。基于系统或部位的漏洞分类:A.操作系统漏洞。指计算机操作系统本身所存在的问题或技术缺陷。操作系统产品提供商通常会定期对已知漏洞发布补丁程序提供修复服务。B.Web服务器漏洞。主要包括物理路径泄露、CGI源代码泄露、执行任意命令、缓冲区溢出、拒绝服务、SQL注入、条件竞争和跨站脚本执行漏洞。C.不同服务相互感染漏洞。有时候在一台服务器上会运行多种网络服务,如Web服务、FTP服务等。这就很可能会造成服务之间的相互感染,攻击者只要攻击一种服务,就可以利用相关的技术作为平台,攻陷另一种服务。D.数据库服务器漏洞。如

34、某些数据库服务器在处理请求数据时存在缓冲区溢出漏洞,远程攻击者可能利用此漏洞控制服务器,向数据库服务器发送畸形请求触发漏洞,最终导致执行任意指令。E.应用程序漏洞。这种漏洞由应用程序编写时的错误导致。F.内存覆盖漏洞。内存覆盖漏洞主要为内存单元可指定,写入内容可指定。这样就能执行攻击者想执行的代码(如缓冲区溢出漏洞、格式化字符串漏洞、PTrace漏洞、Windows 2000的硬件调试寄存器用户可写漏洞)或直接修改内存中的机密数据。基于成因的漏洞分类:A.操作性漏洞:可以分为两种情形。a.写入内容被控制。导致可伪造文件内容、权限提升或直接修改重要数据(如修改存贷数据)。b.内容信息被输出。包含

35、内容被打印到屏幕、记录到可读的日志文件、产生可读的core文件等。B配置漏洞:可以分为如下两种。a.系统配置漏洞。多源于管理员疏漏,如共享文件配置漏洞、服务器参数配置漏洞、使用默认参数配置的漏洞等。b.网络结构配置漏洞。多与网络拓扑结构有关,如将重要设备与一般设备设置在同一网段等。C协议漏洞。这种漏洞主要源于网络上的现行协议在设计之初仅考虑了效率和可靠性,没有考虑安全性。这类漏洞很多。ARP欺骗、IP源地址欺骗、路由欺骗、TCP会话劫持、DNS欺骗和Web欺骗等都是由于协议漏洞引起的。此外还有UDP Flood(循环)攻击(基于UDP端口漏洞)、SYN Flood攻击、Land攻击、Smurt

36、攻击、WinNuke攻击、Fraggle攻击和Ping to death攻击等都源于相关协议漏洞。D程序漏洞。程序漏洞缘于程序设计的复杂性、程序设计语言的漏洞和运行环境的不可预见性。下面是一些常见程序漏洞。a.缓冲区溢出漏洞。b.格式字符串漏洞。c.BIND漏洞。d.Finger漏洞。e.SendMail漏洞。操作系统中一些知名的安全漏洞有:(1)RPC远程过程调用RPC(Remote Procedure Call)提供了一种进程间通信的机制,允许一台计算机上的程序执行另一台计算机上的程序。它们广泛应用于网络服务,如NFS文件共享和NIS。在Solar Sunrise事件期间,对美国陆军广为人

37、知的成功攻击就是因为在数百台国防部的系统中找到了一个RPC漏洞。(2)BINDBIND(Berkeley 网络 Name Domain)软件包是域名服务(DNS)的一个应用最广泛的实现软件它将机器的域名转换成IP地址。通过它,我们只需要知道域名而不用知道IP地址,就可以定位网络上的系统。由于任何网络都需要相应的域名服务器,这使得它成为攻击者钟爱的目标。这一漏洞影响大多数Unix和Linux系统。(3)Sendmail大多数Unix和Linux系统都使用Sendmail程序发送、接收、和转发电子邮件。由于其广泛应用,它成为攻击者选取的主要目标。最常见的漏洞之一是,攻击者发送一封特意构造的邮件给运

38、行Sendmail的机器,Sendmail把邮件作为命令读出执行,使目标机器把本机上的口令文件发送到攻击者的机器上(或其它被侵入的机器),然后破解口令。多数Unix和Linux系统受该漏洞的影响。(4)Microsoft IIS Microsoft IIS(网络 Information Server)是用在Windows NT/2000/2003服务器上的Web服务软件,它也存在着多个安全漏洞,如ISAPI缓冲区溢出漏洞以及RDS安全漏洞等。安装IIS的同时会自动安装多个ISAPI扩展。ISAPI是网络 Services Application Programming Interface的缩写

39、,它允许开发者使用动态链接库(DLL)来扩展IIS服务器的功能。其中一些动态链接库如idq.dll中存在编程错误,没有对输入进行适当的边界检查,特别是它们不阻止输入的超长字符串,攻击者可以利用这一点向DLL发送数据,造成缓冲区溢出,进而控制IIS服务器。IIS的远程数据服务(RDS)中也存在编程缺陷,可被恶意用户用来远程执行管理员级别的命令。所有使用Microsoft IIS的Windows系统都受到这些漏洞的威胁。(5)文件共享许多系统都提供了在网络上共享文件的服务,如Windows系统中基于NetBIOS的SMB协议、Unix中的NFS服务、Macintosh提供的Web共享服务。但是,如

40、果配置不正确,那么在允许文件共享的同时也常常会给出系统的敏感信息。允许文件共享的系统都存在着类似由于配置不正确导致的安全隐患,因此它影响的系统包括Unix、Windows和Macintosh系统。(6)LSASS漏洞LSASS服务即本地安全验证子系统服务,它提供了一个用于管理本地安全、域身份验证和Active Directory进程的接口,处理客户端和服务器的身份验证。LSASS DCE/RPC末端导出的Microsoft活动目录服务存在一个缓冲区溢出漏洞(MS04-011),远程攻击者可以利用这个漏洞以管理员权限在系统上执行任意指令,成功利用此漏洞的攻击者可以完全控制系统。(7)Unix系统

41、的远程命令在Unix系统中,为了管理方便,经常使用主机之间的相互信任关系。主机之间建立信任关系之后,管理员就可以方便地使用Unix的远程命令从一台主机中远程登录另一台主机进行管理。信任关系是基于IP地址的,不需要用户名和口令,而是认可来自信赖IP地址的任何人。4)常用扫描软件端口扫描技术和漏洞扫描技术是网络安全扫描技术中的两种核心技术,并且广泛运用于当前较成熟的网络扫描器中,如著名的Nmap和Nessus。(1)NMap 网址:http:/www.insecure.org/nmap。NMap是运行在Linux/Unix下的一个功能非常强大的扫描工具,被称为扫描之王。它支持多种协议(如TCP、U

42、DP、ICMP等)扫描,可以用来查看有哪些主机以及其上运行何种服务。NMap的扫描方式如下。TCP connect扫描。TCP SYN(half open)扫描。TCP FIN、Xmas或NULL(stealth)扫描。TCP ftp proxy(bounce attack)扫描。使用IP分片包的SYN/FIN扫描。TCP ACK和Window扫描。UDP raw ICMP port unreachable扫描。ICMP ping扫描。TCP ping扫描。Direct(non portmapper)RPC扫描。(2)Nessus:Nessus是一款可以运行在Linux、BSD、Solaris

43、以及其他一些系统上的远程漏洞扫描与分析软件,它采用B/S架构的方式安装,以网页的形式向用户展现。用户登录之后可以指定对本机或者其他可访问的服务器进行漏洞扫描。Nessus的扫描程序与漏洞库相互独立,因而可以方便地更新其漏洞库,同时提供多种插件的扩展和一种语言NASL(Nessus Attack Scripting Language)用来编写测试选项,极大地方便了漏洞数据的维护、更新。在蠕虫病毒中也使用了扫描技术,蠕虫病毒程序的扫描子模块负责探测存在漏洞的主机。当程序向某个主机发送探测漏洞的信息并收到成功的反馈信息后,就会得到一个可传播的对象。一般说来,蠕虫希望隐蔽地传播,并尽快地传播到更多的主

44、机。根据这一原则,扫描模块采取的扫描策略是:随机选取一段IP地址,然后对这一地址段上的主机进行扫描。差的扫描程序并不知道一段地址是否已经被扫描过,只是随机地扫描网络,很有可能重复扫描一个地址段。于是,蠕虫传播得越广,网上的扫描包越多,即使探测包很小,但积少成多,就会引起严重的网络拥塞。扫描策略改进的原则是,尽量减少重复的扫描,使扫描发送的数据包尽量少,并保证扫描覆盖尽量大的范围。按照这一原则,可以有如下一些策略。在网段的选择上,可以主要对当前主机所在网段进行扫描,对外网段随机选择几个小的IP地址段进行扫描。对扫描次数进行限制。将扫描分布在不同的时间段进行,不集中在某一时间内。针对不同的漏洞设计

45、不同的探测包,提高扫描效率。例如,对远程缓冲区溢出漏洞,通过发出溢出代码进行探测。对Web CGI漏洞,发出一个特殊的HTTP请求探测。攻击子模块按照漏洞攻击步骤自动攻击已经找到的攻击对象,获得一个shell,就拥有了对整个系统的控制权。对Windows 2000来说,就是cmd.exe。5)防御传统的端口扫描监测,一般是依据短时间内来自同一数据源的到达目标主机一些连续端口的数据包数量来判断的,黑客如果有意放大扫描的间隔时间,以较慢的速度来扫描,这样对端口扫描的判断就比较困难了。监测端口扫描的工具有好多种,最简单的一种是在某个不常用的端口进行监听;另一类工具,不是靠监听某些端口来发现扫描,而是

46、在混杂模式下抓包并进一步分析判断。(1)蜜罐系统蜜罐系统是一种非常好的防御方法,四种监测端口扫描的蜜罐工具有:ProtectX是通过在一些端口上监听来自外部的连接请求来判断端口扫描情况,Winetd和DTK则是典型的蜜罐工具,PortSentry作为一个基于主机的网络入侵检测系统的一部分,主要用于检测主机的端口活动情况和外部对主机的端口扫描情况。(2)安装防火墙目前,防火墙的应用已经非常普遍,它也可以用于对扫描的防御中。稍有一些安全意识的机构都会在其网络边界安装防火墙,以阻隔并控制网络内外的连接。边界防火墙虽然能够阻挡来自外部的入侵,但是在网络内部仍然隐藏着许多不安定因素。除了建立多层防护体系

47、保护重要的服务器和网络设备,也要注意保护单个桌面系统的信息不被偷窃,个人防火墙是一个比较好的选择。(3)针对Web服务的日志审计针对扫描攻击,一个很稳妥的追踪办法就是审计各种日志。以网络上的Web服务器为例,它不可避免地要面临各种蠕虫病毒和CGI漏洞扫描器的威胁,当系统遭受攻击时,分析日志记录,尤其是Web服务器的日志记录,能帮助我们跟踪客户端IP地址,确定其地理位置信息,检测访问者所请求的路径和文件,了解访问状态,检查访问者使用的浏览器版本和操作系统类型等。下面简要介绍两种服务器,IIS服务器和Apache服务器的日志文件。IIS服务器日志记录IIS服务器工作在Windows NT/2000

48、/XP/2003 Server平台上。服务器日志一般放在“%SystemRoot%/System32/LogFiles”目录下的,该目录用于存放IIS服务器关于WWW、FTP、SMTP等服务的日志目录。WWW服务的日志目录是“W3SVCn”,这里的“n”是数字,表示第几个WWW网站(虚拟主机),FTP服务的日志目录是“MSFTPSVCn”,“n”的含义与前类似。Apache服务器的日志文件在缺省安装情况下,Apache会使用两个标准的日志文件记录文件。一个是access_log,其中记录了所有对Apache Web服务器访问的活动记录;另一个是error_log,记录了Apache服务器运行期

49、间所有的状态诊断信息,包括对Web服务器的错误访问记录。这两个文件都放在/usr/local/apache/logs目录下。access_log中的日志记录包含七项内容:A.访问者的IP地址;B.一般是空白项(用-表示);C.身份验证时的用户名。在匿名访问时是空白;D.访问时间;其格式为:Date/Month/Year:Hour:Minute:Second+/-*,其中“+/-*”表示与UTC的时区差,加号表示在UTC之后,减号表示在UTC之前。E.访问者HTTP数据包的请求行;F.Web服务器给访问者的返回状态码;G.Web服务器返回给访问者的总字节数。(4)修改Banner许多网络服务器通

50、常在用户正常连接或登录时,提供给用户一些无关紧要的提示信息,其中往往包括操作系统类型、用户所连接服务器的软件版本、几句无关痛痒的欢迎信息等,这些信息可称之为旗标信息(Banner)。修改Banner的方法很多,一种是修改网络服务的配置文件,许多服务都在其配置文件中提供了对显示版本号的配置选项;第二种是修改服务软件的源代码,然后重新编译;第三种是,直接修改软件的可执行文件,这种方法往往具有一定的“危险性”,不提倡使用。当然,也可以利用一些专业的Banner修改工具。另外还有一些操作细则可供参考,比如:设置SQL Server的“su”口令,绝对避免使用缺省配置(空口令)删除不必要的扩展存储过程,

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:文库网官方知乎号:文库网

经营许可证编号: 粤ICP备2021046453号世界地图

文库网官网©版权所有2025营业执照举报