2019/10/21Internet协议安全性分析信息安全2019/10/222.1Internet的安全性需求2.2安全套接层与传输层的安全2.3Kerberos认证系统2.4PGP电子邮件加密2.5安全电子交易本章主要内容2019/10/232.1.1Internet存在的威协1.缺乏对用户身份的认证2.缺乏对路由协议的认证3.TCP/UDP的缺陷4.对Web安全性威胁–Web服务器、Web浏览器、Web传输过程2.1Internet的安全性需求2019/10/242.1.1Internet存在的威协•缺乏对用户身份的认证–在网络中传送的IP包,对IP地址不进行认证。–存在几种欺骗攻击方式:•MAC欺骗•ARP欺骗•IP欺骗•DNS欺骗2019/10/251.MAC攻击MAC攻击之一:MAC地址欺骗将合法的MAC地址修改成不存在的MAC地址或其它计算机的MAC地址,从而隐藏自己真实的MAC,来达到一些不可告人的目的,这就是MAC地址欺骗。2019/10/26MAC攻击MAC攻击之二:MAC地址洪泛攻击交换机内部的MAC地址表空间是有限的,MAC攻击会很快占满交换机内部MAC地址表,使得单播包在交换机内部也变成广播包向同一个VLAN中所有端口转发,每个连在端口上的客户端都可以收到该报文,交换机变成了一个Hub,用户的信息传输也没有安全保障了。2019/10/27MAC攻击交换机攻击者MACAPCBMACBPCCMACCMACPortH1X2Y3交换机内部的MAC地址表空间很快被不存在的源MAC地址占满。没有空间学习合法的MACB,MACC单播流量在交换机内部以广播包方式在所有端口转发,非法者也能接受到这些报文MAC攻击:每秒发送成千上万个随机源MAC的报文2019/10/28MAC攻击交换机攻击者FTP服务器PCC用户名、密码用户名:unit密码:qy7ttvj7vgSniffer截取数据包利用MAC地址洪泛攻击截获客户信息2019/10/29MAC攻击2019/10/210MAC攻击防范:1、MAC静态地址锁2、802.1x自动绑定MAC地址3、限定交换机某个端口上可以学习的MAC数量2019/10/211MAC攻击交换机攻击者当端口学习的源MAC地址数量大于一定的数量(这个值可以自己设定)或源MAC地址和端口绑定的不一样,受到的数据帧丢弃/发送警告信息通知网管员/端口可关闭MAC攻击防范2019/10/212欺骗攻击1.MAC2.ARP3.IP4.DNS2019/10/2132.ARP欺骗•ARP攻击就是通过伪造IP地址和MAC地址实现ARP欺骗,能够在网络中产生大量的ARP通信量使网络阻塞,攻击者只要持续不断的发出伪造的ARP响应包就能更改目标主机ARP缓存中的IP-MAC条目,造成网络中断或中间人攻击。ARP攻击主要是存在于局域网网络中,局域网中若有一台计算机感染ARP木马,则感染该ARP木马的系统将会试图通过“ARP欺骗”手段截获所在网络内其它计算机的通信信息,并因此造成网内其它计算机的通信故障。2019/10/214ARP攻击•ARP协议原理:•局域网中两台PC通讯,一台PCB要和另一台PCA通讯,首先需要知道PCA的MAC地址。•PCB先查找机器缓存中存贮的ARP表。如果没有,必须先发出一个ARP请求的广播报文。•局域网里的PC都会收到ARP请求报文,并查看自己的IP是否是PCA,如果是则响应。PCAPCBPCCPCDARP请求:IPA-?ARP响应:IPA-MACA2019/10/215ARP攻击•按照RFC的规定,PC在发ARP响应时,不需要一定要先收到ARP请求报文,局域网中任何一台PC都可以向网络内其它PC通告:自己就是PCA和MACA的对应关系,这就给攻击者带来可乘人之危的漏洞!ARP协议的缺陷PCAPCBPCCPCD非法ARP响应:IPA-MACC2019/10/216ARP攻击ARP攻击之一:ARP欺骗ARP欺骗:利用上页讲到的ARP漏洞,发送虚假的ARP请求报文和响应报文,报文中的源IP和源MAC均为虚假的,扰乱局域网中被攻击PC中保存的ARP表,使得网络中被攻击PC的流量都可流入到攻击者手中。2019/10/217ARP攻击PCB攻击者:发送ARP欺骗192.168.10.1MACA192.168.10.3MACC192.168.10.2MACB发送ARP响应,告诉:192.168.10.1对应的MAC是MACCARP表刷新,192.168.10.1对应的是MACC发送到PCA的流量均到攻击者手中MACC发送ARP响应,告诉:192.168.10.2对应的MAC是MACCARP表刷新,192.168.10.2对应的是MACCPCA2019/10/218ARP攻击ARP攻击之二:ARP恶作剧ARP恶作剧:和ARP欺骗的原理一样,报文中的源IP和源MAC均为虚假的,或错误的网关IP和网关MAC对应关系。它的主要目的不是窃取报文,而是扰乱局域网中合法PC中保存的ARP表,使得网络中的合法PC无法正常上网、通讯中断。2019/10/219ARP攻击PCB攻击者:发送ARP欺骗192.168.10.1MACA192.168.10.3MACC192.168.10.2MACB发送ARP响应,告诉:192.168.10.1对应的MAC是MACXARP表刷新,192.168.10.1对应的是MACX正常的网络访问数据包,、QQ、FTP网关找不到正确的网关,所有访问外网的数据都无法得到回应2019/10/220ARP攻击发包工具TouchStone2019/10/221ARP攻击ARP攻击之三:ARP洪泛ARP洪泛:网络病毒利用ARP协议,在网络中大量发送伪造ARP报文,扰乱网络中主机和设备的ARP缓存,导致无法正常访问网络的攻击行为。相关病毒:TrojanDropper.Win32.Juntador.cWin32.Troj.Mir2Win32.Troj.Zypsw.339522019/10/222ARP攻击防范:需要使用专用的交换机端口ARPCheck功能ARP-Check技术对流入的ARP报文内容进行合法性检查,丢弃非法报文,防止受控端口下联的主机对网关或其它主机发起ARP欺骗攻击。ARP-Check通常需要结合SAM认证,用户通过认证后将在NAS上绑定用户的IP和MAC信息;ARP-Check根据在NAS上动态绑定用户的IP和MAC信息来检查ARP报文内容,转发合法报文,丢弃非法报文。2019/10/223ARP攻击PCB攻击者:发送ARP欺骗192.168.10.3MACC192.168.10.2MACB发送ARP响应,说:PCA对应的MAC是MACC发送ARP响应,说:PCB对应的MAC是MACCARP攻击防范192.168.10.1MACAPCA2019/10/2244.4欺骗攻击1.MAC2.ARP3.IP4.DNS2019/10/2253、IP欺骗攻击IP欺骗:盗用合法用户的IP地址,隐藏自己的真正身份。IP欺骗和MAC欺骗相结合,伪装成其他人进行网络访问。不断修改IP,发送TCPSYN连接,攻击Server,造成SYNFlood攻击。2019/10/226IP欺骗攻击过程2019/10/227IP欺骗•用网络配置工具改变机器的IP地址–注意:•只能发送数据包•收不到回包•防火墙可能阻挡•在Linux平台上–用ifconfig方式1:改变自己的地址2019/10/228IP欺骗•发送IP包,IP包头填上假冒的源IP地址–在Unix/Linux平台上,直接用socket就可以发送,但是需要root权限–在Windows平台上,不能使用Winsock•可以使用winpcap–可以用libnet构造IP包方式2:用程序实现2019/10/229Libnet(1)•在Unix系统平台上的网络安全工具开发中,目前最为流行的CAPIlibrary有libnet、libpcap、libnids和libicmp等。它们分别从不同层次和角度提供了不同的功能函数。使网络开发人员能够忽略网络底层细节的实现,从而专注于程序本身具体功能的设计与开发。其中,–libnet提供的接口函数主要实现和封装了数据包的构造和发送过程。–libpcap提供的接口函数主要实现和封装了与数据包截获有关的过程。–libnids提供的接口函数主要实现了开发网络入侵监测系统所必须的一些结构框架。–libicmp相对较为简单,它封装的是ICMP数据包的主要处理过程(构造、发送、接收等)。2019/10/230Libnet(2)•libnet库一共约7600行C源代码,33个源程序文件,12个C头文件,50余个自定义函数,提供的接口函数包含15种数据包生成器和两种数据包发送器(IP层和数据链路层)。目前只支持IPv4,不支持IPv6。•libnet提供的接口函数按其作用可分为四类:–内存管理(分配和释放)函数–地址解析函数–数据包构造函数–数据包发送函数2019/10/231WinPcap•winpcap(windowspacketcapture)是Win32平台下一个免费的包截获与网络分析系统。开发winpcap这个项目的目的在于为win32应用程序提供访问网络底层的能力。它提供了以下的各项功能:–捕获原始数据报,包括在共享网络上各主机发送/接收的以及相互之间交换的数据报;–在数据报发往应用程序之前,按照自定义的规则将某些特殊的数据报过滤掉;–在网络上发送原始的数据报;–收集网络通信过程中的统计信息。2019/10/232用程序实现IP欺骗代码示例sockfd=socket(AF_INET,SOCK_RAW,255);setsockopt(sockfd,IPPROTO_IP,IP_HDRINCL,&on,sizeof(on));structip*ip;structtcphdr*tcp;structpseudohdrpseudoheader;ip-ip_src.s_addr=xxx;//填充IP和TCP头的其他字段,并计算校验和pseudoheader.saddr.s_addr=ip-ip_src.s_addr;tcp-check=tcpchksum((u_short*)&pseudoheader,12+sizeof(structtcphdr));//计算校验和sendto(sockfd,buf,len,0,(constsockaddr*)addr,sizeof(structsockaddr_in));在Linux平台上,打开一个rawsocket,自己填写IP头和传输层数据,然后发送出去2019/10/233IP欺骗攻击SYNFlood利用TCP协议缺陷,变化IP,发送了大量伪造的TCP连接请求,使得被攻击方资源耗尽,无法及时回应或处理正常的服务请求;在服务器端发送应答包后,如果客户端不发出确认,服务器会等待到超时,期间这些半连接状态都保存在服务器一个空间有限的缓存队列中;如果大量的SYN包发到服务器端后没有应答,就会使服务器端的TCP资源迅速耗尽,导致正常的连接不能进入,甚至会导致服务器的系统崩溃。2019/10/234IP欺骗攻击防范:1、交换机端口静态绑定IP地址2、交换机端口静态绑定IP和MAC地址3、802.1x自动绑定IP和MAC地址4、DHCP动态绑定5、路由器上设置欺骗过滤器入口过滤,外来的包带有内部IP地址出口过滤,内部的包带有外部IP地址2019/10/2354.4欺骗攻击1.MAC2.ARP3.IP4.DNS2019/10/2364.DNS欺骗攻击•与DNS相关的一些攻击案例–事件1:百度遇DDOS攻击事件2006年09月12日17点30分,有北京、重庆等地的网友反映百度无法正常使用,出现“请求超时”(Requesttimedout)的信息。这次攻击造成了百度搜索服务在全国各地出现了近30分钟的故障。随后,百度技术部门的员工们快速反应,将问题解决并恢复百度服务。9月12日晚上11时