第五讲系统和网络缺陷一、引言尽管网络信息系统为人们提供了巨大的方便,但是受技术和社会因素的影响,网络信息系统存在着各种安全缺陷。攻击者经常利用这些系统具有的漏洞,进行攻击和入侵,给计算机系统造成严重的损害。现在,不论是安全缺陷还是攻击事件,报告的次数一年比一年多。而且,攻击事件报告的发展特性和安全缺陷报告的发展特性基本上是一致的。第四讲系统和网络缺陷一、引言由于系统和网络存在着安全缺陷,给攻击者提供了入侵的条件,所以研究系统和网络安全缺陷受到人们的极大关注。研究系统和网络安全缺陷有以下几个重要意义:重要的防范工作被攻击后,恢复系统的主要根据网络安全风险评估第四讲系统和网络缺陷一、引言计算机网络示意图:223334411网络(TCP/IP)2操作系统3软件4用户操作第四讲系统和网络缺陷二、网络协议缺陷TCP/IP是目前互联网使用的协议。优点:简单、可扩展性强、尽力而为缺点:存在着一系列的安全缺陷第四讲系统和网络缺陷二、网络协议缺陷1、TCP/IP概述①TCP/IP的基本结构TELNETFTPSNMPTCPUDPIPARPENET应用层传输层网络层物理链路层以太网第四讲系统和网络缺陷二、网络协议缺陷1、TCP/IP概述②TCP/IP的通信模块TELNETFTPSNMPTCPUDPIPARPENET应用层传输层网络层物理链路层以太网在发送端,数据从上层传到下层,在接收端,数据从下层传到上层。第四讲系统和网络缺陷二、网络协议缺陷1、TCP/IP概述③TCP/IP的网络互联模型ARPENETIPARPENET网络层物理链路层以太网E1E2I1I2第四讲系统和网络缺陷二、网络协议缺陷2、TCP序列号预计TCP序列号预计由莫里斯首次提出,是网络安全领域中最著名的缺陷之一。正常的TCP连接建立过程是一个三次握手的过程。描述如下:客户方服务方:SYN(ISNc)服务方客户方:ACK(ISNc),SYN(ISNs)客户方服务方:ACK(ISNs)客户方服务方:数据和/或者服务方客户方:数据缺陷在哪里?第四讲系统和网络缺陷二、网络协议缺陷2、TCP序列号预计入侵者可以利用TCP序列号预计的缺陷,冒充一个信任主机对目的主机建立连接,并执行非法操作。这种攻击就是我们常说的IP欺骗攻击(IPSpoof)。入侵者还可以利用TCP序列号预计方法去预测一个正在进行的正常连接中的TCP序列号的变化过程。从而在该连接中随意插入自己的数据,甚至切断该连接。这种攻击也属于IP欺骗类型,另外它还叫做IP劫持的攻击。第四讲系统和网络缺陷二、网络协议缺陷3、路由协议缺陷(1)源路由选项的使用解决方法:在网关上禁止使用源路由的包通过是一种简单防治方法,但这种方法对于来自同一子网内机器的攻击束手无策。第四讲系统和网络缺陷二、网络协议缺陷3、路由协议缺陷(2)伪造ARP包解决方法:将交换集线器设为静态绑定。另一可行的方法也许是当发现主机运行不正常时(网速慢、IP包丢失率较高),反映给网络管理员。第四讲系统和网络缺陷二、网络协议缺陷3、路由协议缺陷(3)ICMP攻击解决方法:收到ICMP重定向信息后只对该连接的路由进行修改是一种可以普及的较为妥当的处理方法。第四讲系统和网络缺陷二、网络协议缺陷4、网络监听TCP/IP的设计原则是:保持简单。设计者不考虑传输数据的加密。这使得在网上传输的数据,如果在终端没有加以处理的话,都是明文传输。Sniffer就是一个在以太网上进行监听的专用软件。第四讲系统和网络缺陷二、网络协议缺陷4、网络监听监听这个现象对网络的安全威胁是相当大的。因为它可以:◆抓到正在传输的密码◆抓到别人的秘密或不想共享的资料◆暴露网络信息第四讲系统和网络缺陷二、网络协议缺陷5、TCP/UDP应用层服务(1)ftp的信息暴露解决方法:采用加密技术。第四讲系统和网络缺陷二、网络协议缺陷5、TCP/UDP应用层服务(2)DNS安全问题解决方法:DNSSEC的认证是一个解决方法。让DNS服务器处于一个安全的系统和子网中是一个好的解决方法。第四讲系统和网络缺陷三、软件实现缺陷●软件是指运行在计算机和设备上的程序。●操作系统就是一种软件,而应用软件是在操作系统上运行的。●软件实现缺陷是由于程序员在编程的时候没有考虑周全而造成的。软件缺陷一般分为:☆输入确认错误☆访问确认错误☆设计错误☆特殊条件错误☆竞争条件错误☆其他第四讲系统和网络缺陷◆缓冲区溢出1、什么是缓冲区溢出?缓冲区溢出的缺陷是属于输入确认错误的类型。它是一种相当普遍的缺陷,也是一种非常危险的缺陷。例:voidfuncction(char*str){charbuffer[16];strcpy(buffer,str);}第四讲系统和网络缺陷◆缓冲区溢出2、制造缓冲区溢出最常见的手段是通过制造缓冲区溢出使程序运行一个用户shell,再通过shell执行其他命令。如果该程序属于root且有suid权限的话,攻击者就获得了一个有root权限的shell,可以对系统进行任意操作了。第四讲系统和网络缺陷◆缓冲区溢出2、制造缓冲区溢出一个程序在内存中通常分为:程序段、数据段和堆栈。◆程序段里放着程序的机器码和只读数据。◆数据段放的是程序中的静态数据。◆动态数据则通过堆栈来存放。程序段数据段堆栈内存低端内存高端第四讲系统和网络缺陷◆缓冲区溢出2、制造缓冲区溢出Voidfuncction(char*str){charbuffer[16];strcpy(buffer,str);}main(){charlarge_string[256];inti;for(i=0;i256;i++)large_string[i]=‘A’;function(large_string);}第四讲系统和网络缺陷◆缓冲区溢出2、制造缓冲区溢出本地变量Buffer旧基址返回值参数*str栈顶(低内存端)栈底(高内存端)第四讲系统和网络缺陷三、操作系统危险缺陷1、公共缺陷检索(CVE)(1)什么是CVE?是信息安全确认的一个列表或者词典。它对不同信息安全缺陷的数据库之间提供一种公共的索引,是信息安全的关键。(2)CVE的特点:◆每一种缺陷都有唯一的命名和标准描述。◆CVE不是一个数据库而是一种检索词典,可以通过互联网阅读和下载。◆CVE是评价信息安全数据库的一个基础,为多个不同的数据库提供一种交流的共同语言。◆CVE的会员可以给CVE提供自己数据库的索引信息及其修改信息。第四讲系统和网络缺陷三、操作系统危险缺陷2、UNIX操作系统最危险的缺陷(1)BIND是域名服务DNS用得最多的软件包。(2)远程打印协议守护进程(LPD)解决方案:安装最新的打印补丁程序。第四讲系统和网络缺陷三、操作系统危险缺陷3、Windows操作系统最危险的缺陷(1)ISAPI缓冲区溢出安装IIS时,多个ISAPI被自动安装。多个ISAPI允许开发人员使用多种动态连接库DLLs来扩展IIS服务器的性能。(2)NETBIOS----未保护的Windows网络共享不正确的配置可能会导致系统文件的暴露,或给予黑客完全的系统访问权。第四讲系统和网络缺陷四、用户使用缺陷用户使用缺陷体现在以下几个方面:(1)易于破解的密码(2)软件使用的错误(3)系统备份不完整今天的课就到这里!谢谢!