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