常见网络攻击手段原理分析

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

2、控制程序转移到攻击代码的方法
最基本的思想就是溢出一个没有边界检查或者具有 其它弱点的缓冲区,这样就扰乱了程序的正常的执 行顺序。通过溢出一个缓冲区,攻击者可以强行改 写相邻的程序空间而直接跳过系统的检查。 控制程序转移到攻击代码的方法主要有以下三种:
– 活动纪录(Activation Records):活动纪录包含了 函数结束时返回的地址。这类的缓冲区溢出被称为 堆栈溢出攻击(Stack Smashing Attack)。 – 函数指针(Function Pointers):函数指针可以用来 定位任何地址空间。(superprobe程序) – 长跳转缓冲区(Longjmp buffers):在C语言中包含 了一个简单的检验点设定/恢复系统,称为 setjmp/longjmp。用“longjmp(buffer)”来恢复检验点。
Return
§三 缓冲区溢出攻击
缓冲区溢出是一种非常普遍 普遍、非常危险 危险的漏洞。 普遍 危险
攻击原理 通过往程序的缓冲区写超出其长度的内容,造成缓冲区 的溢出,从而破坏程序的堆栈,使程序转而执行其它指 令,以达到攻击的目的。 造成缓冲区溢出的原因是程序中没有仔细检查用户输入 的参数。例如下面程序:
void function(char *str) { char buffer[16]; strcpy(buffer,str) }
上面的strcpy()将直接把str中的内容copy到buffer中。这样只 要str的长度大于16,就会造成buffer的溢出,使程序运行 出错。
随便往缓冲区中填东西造成它溢出一般只会出现 “分段错误”(Segmentation fault),而不能达到攻 击的目的。最常见的手段是通过制造缓冲区溢出使 程序运行一个用户shell,再通过shell执行其它命令。 如果该程序属于root且有suid权限的话,攻击者就获 得了一个有root权限的shell,可以对系统进行任意操 作了。 缓冲区溢出攻击之所以成为一种常见安全攻击手段 其原因在于缓冲区溢出漏洞太普遍了,并且易于实 现。缓冲区溢出成为远程攻击的主要手段,其原因 在于缓冲区溢出漏洞给予了攻击者所想要的一切: 植入并且执行攻击代码。被植入的攻击代码以一定 的权限运行有缓冲区溢出漏洞的程序,从而得到被 攻击主机的控制权。
– – – – 关闭不必要的服务 限制同时打开的Syn半连接数目 缩短Syn半连接的time out 时间 及时更新系统补丁
2、网络设备设置 网络设备的设置可以从防火墙与路由器上考虑。
– 防火墙: 禁止对主机的非开放服务的访问;限制同时打开 的SYN最大连接数;限制特定IP地址的访问;启 用防火墙的防DDoS属性;严格限制对外开放的服 务器的访问。 – 路由器: 访问控制列表(ACL)过滤; 设置SYN数据包流量速率; 升级版本过低的IOS; 为路由器建立log server。
对访问进行限制: – IP地址、子网、域的限制。预先对允许 的IP地址子网和域进行授权。 – 使用用户名和密码。 – 加密。所有传输内容加密,除接收者外 无人能懂。 JavaScript,ActiveX和Java都使得假冒越来 越方便了,最好在浏览器上全部关闭它们。
Return
§二 分布式拒绝服务攻击 二
– 试图破wenku.baidu.com和毁坏资源。 – 过载一系列服务或者消耗一些资源。
过载攻击:进程过载;磁盘攻击
网络拒绝服务攻击 网络对拒绝服务的抵抗力很有限,攻击者可以通过攻 击阻止合法用户使用网络和服务。 (1) 服务过载
产生:当大量的服务请求发向一台计算机中的服务守护进 程时,就会发生服务过载。 发现:可以使用网络监视工具来发现这类攻击,甚至发现 攻击的来源。
防范措施 Web欺骗攻击的危害性很大,上当的用户不但 会泄露机密信息,还可能会蒙受经济等方面的 损失。上网的用户应该提高警惕,不要成为牺 牲品。 为确保安全,用户可以采取一些应急的措施:
– 关闭浏览器的JavaScript选项,使得攻击者不能隐 藏攻击的痕迹。 – 确信你的浏览器的地址行总是可见的。注意浏览 器地址行上显示的URL,确信他们一定指向所希 望的服务器。 – 进入SSL安全连接时,仔细查看站点的证书是否与 其声称的一致,不要被相似的字符所欺骗。
1. 拒绝服务(DOS)攻击的含义 拒绝服务攻击是指一个用户占用了大量的共享资源, 使系统没有其他的资源给其他合法用户使用的攻击。 拒绝服务攻击降低了系统资源的可用性。 系统资源包括:CPU时间、磁盘空间、网络带宽、 打印机、MODEM、甚至是系统管理员的时间等。 2. 拒绝服务攻击分类 拒绝服务攻击可分为两类:
攻击过程 DDoS并不象入侵一台主机那样简单。一般来 说,黑客进行DDoS攻击时会经过这样的步骤:
– 搜集了解目标的情况(被攻击目标主机数目、地址 情况;目标主机的配置、性能;目标的带宽;有 多少台主机在支持这个站点 )。 – 占领傀儡机。黑客最感兴趣的是有下列特点的主 机:链路状态好的主机、性能好的主机、安全管 理水平差的主机。 – 实际攻击。如果前面的准备工作做得好,实际攻 击过程反而是比较简单的。黑客登录到作为控制 台的傀儡机,向所有的攻击机发出命令,潜伏在 攻击机中的DDoS攻击程序就会响应控制台的命令, 一起向受害主机以高速度发送大量的数据包,导 致目标死机或是无法响应正常的请求。
– 在程序的地址空间里安排适当的代码。 – 让程序跳转到入侵者安排的地址空间执行。
1、在程序地址空间中安排适当代码的方法有两种: 植入法:攻击者向被攻击的程序输入一个字符串, 程序会把这个字符串放到缓冲区里。这个字符串 包含的资料是可以在这个被攻击的硬件平台上运 行的指令序列。在这里,攻击者用被攻击程序的 缓冲区来存放攻击代码。缓冲区可以设在任何地 方:堆栈、堆和静态资料区。 利用已经存在的代码:有时,攻击者想要的代码 已经在被攻击的程序中了,攻击者所要做的只是 对代码传递一些参数。比如,攻击代码要求执行 “ exec (“/bin/sh”)” , 而 在 libc 库 中 的 代 码 执 行 “exec (arg)”,其中arg是一个指向一个字符串的 指针参数,那么攻击者只要把传入的参数指针改 向指向“/bin/sh”即可。
攻击过程 缓冲区溢出攻击的目的在于扰乱具有某些特权 运行的程序的功能,这样可以使得攻击者取得 程序的控制权,如果该程序具有足够的权限, 那么整个主机就被控制了。一般而言,攻击者 攻击具有root权限的程序,然后执行类似 “exec(sh)”的执行代码来获得root权限的shell。 exec(sh) root shell 为了达到这个目的,攻击者必须达到如下两个 目标:
(2) SYN-Flooding攻击
– 在SYN-Flooding攻击中,使用一个伪装的地址向目标计算 机发送TCP请求,当目标计算机收到请求后,会回复请求 一个确认答复(SYN-ACK)。由于SYN-ACK是返回到一个 伪装的地址,没有任何响应,于是目标计算机将继续设 法发送SYN-ACK。
最基本的DoS攻击就是利用合理的服务请求 来占用过多的服务资源,从而使合法用户无 法得到服务的响应。DDoS攻击手段是在传统 的DoS攻击基础之上产生的一类攻击方式。 单一的DoS攻击一般是采用一对一方式的, 当攻击目标CPU速度低、内存或者网络带宽 等各项性能指标不高时,它的攻击效果是明 显的。 分布式的拒绝服务攻击(DDoS)的原理很简单。 DDoS就是利用更多的傀儡机来发起进攻,以 比从前更大的规模来进攻受害者。 高速广泛连接的网络为DDoS攻击创造了极为 有利的条件。
常用网络攻击原理与防范
§一. Web欺骗攻击 §二. 分布式拒绝服务攻击(DDoS) §三. 缓冲区溢出攻击 §四. IP地址欺骗 §五.网络监听 §六.电子邮件攻击
§一 Web欺骗攻击 Web欺骗攻击
Web欺骗的行为特点 攻击者建立一个人们相信的Web站点的拷贝,然后控制这个 Web站点的拷贝,攻击者控制被攻击对象和真的Web服务器 之间的所有信息流。攻击者既可以假冒用户给服务器发送数 据,也可以假冒服务器给用户发送假冒的信息。 1、静态观察 被动地观察整个数据流。 记录浏览者所访问的页面和页面的内容。 记录用户输入的数据和服务器的响应。 大多数在线商务都要填充表格,所以可简单地获得用户的 口令。 2、实施破坏 攻击者可以随意修改来往于浏览者和服务器间的信息。
2、攻击过程 可通过下列方法诱惑被攻击对象连接到攻击者 的假Web上:
– 把一个指向假Web的链接放到一个流行的Web页上。 – 使用电子邮件系统发邮件引诱。 – 使Web搜索引擎指向假Web。
当浏览者浏览页面时,他实际上向攻击服务器 询问这个文档,而攻击服务器再去真正的服务 器取回这个文档。文档取回后,攻击者在该文 档的所有URL前面加上自己的地址来改写这个 文档,攻击者向浏览者提供改写后的文档。 攻击者通常都会对攻击过程进行伪装,以防浏 览者发现。状态行;地址行。
防范措施 目前有四种基本的方法保护主机免受缓冲区溢 出的攻击和影响。 1、非执行缓冲区
通过使被攻击程序的数据段地址空间不可执行, 从而使得攻击者不可能执行已植入到被攻击程序 输入缓冲区的代码,这种技术被称为非执行的缓 冲区技术。在早期的Unix系统设计中,只允许程 序代码在代码段中执行。但是近来的Unix和MS Windows系统由于要实现更好的性能和功能,往 往在数据段中动态地放入可执行的代码,这也是 缓冲区溢出的根源。为了保持程序的兼容性,不 可能使得所有程序的数据段不可执行。但是可以 设定堆栈数据段不可执行,这样可以保证程序的 兼容性。
攻击原理与过程 1、攻击原理 攻击的关键在于攻击者的Web服务器能够插在浏览者 和其他Web服务器之间。攻击者改写某个页面上的 URL使得连接都指向攻击者的机器。如攻击者的服 务器在机器www.attacker.edu.cn上运行,那么攻击者 要 在 页 面 上 所 有 的 URL 前 加 上 http://www.attacker.edu.cn 。 如 原 来 的 URL 为 http://home.netscape.com就变成 http://www.attacker.edu.cn/http://www.netscape.com。 浏览者请求一个页面时将发生如下事情: – 浏览者请求来自于攻击者服务器的页面。 – 攻击服务器请求真正的服务器的相应页面。 – 真正服务器向攻击服务器提供真正页面。 – 攻击服务器重写页面。 – 攻击服务器向浏览者提供一个经过修改的页面。
2、编写正确的代码 编写正确的代码是一件非常有意义的工作, 特别象编写C语言那种风格自由而容易出错的 程序,这种风格是由于追求性能而忽视正确性 的传统引起的。人们开发了一些工具和技术来 帮助经验不足的程序员编写安全正确的程序。
攻击原理
一个DDoS攻击体系分成四大部分,第2和第3部分分 别用作控制和实际发起攻击,对第4部分的受害者来 说,DDoS的实际攻击包是从第3部分攻击傀儡机上 发出的,第2部分的控制机只发布命令而不参与实际 的攻击。对第2和第3部分计算机,黑客有控制权或 者是部分的控制权,并把相应的DDoS程序上传到这 些平台上,这些程序与正常的程序一样运行并等待 来自黑客的指令,通常它还会利用各种手段隐藏自 己不被别人发现。
防范措施 遭受DDoS攻击的主机和网络会有一些表现特 征:
– 被攻击主机上有大量等待的TCP连接。 – 网络中充斥着大量的无用的数据包,源地址为假。 – 制造高流量无用数据,造成网络拥塞,使受害主 机无法正常和外界通讯。 – 利用受害主机提供的服务或传输协议上的缺陷, 反复高速的发出特定的服务请求,使受害主机无 法及时处理所有正常请求。 – 严重时会造成系统死机。
到目前为止,进行DDoS攻击的防御还是比较 困难的。
防止DDoS的核心目标是应力争不要成为黑客 的傀儡机。对于网络管理员来说,如果所维护 的网络中有一些服务器需要向外提供WWW服 务,就要注意不要成为DDoS的攻击目标,可 以两个角度去考虑: 1、主机设置 几乎所有的主机平台都有抵御DoS的设置:
相关文档
最新文档