电子商务技术与安全(铁道版) 第5章网络安全知识与安全组网技术 课件(共320张PPT)

资源下载
  1. 二一教育资源

电子商务技术与安全(铁道版) 第5章网络安全知识与安全组网技术 课件(共320张PPT)

资源简介

(共320张PPT)
*
第五章
网络安全知识与安全组网技术
*
第5章 网络安全知识与安全组网技术
5-1 网络安全问题概述
5-2 防火墙技术
5-3 网络常见的攻防技术
5-4 入侵检测技术
5-5 实例分析
*
5-1网络安全问题概述
5-1-1网络通信的威胁
5-1-2TCP/IP协议族的安全性
5-1-3有线网络协议与安全性
5-1-4无线网络协议与安全性
5-1-5混合组网结构
*
5-1-1网络通信的威胁
威胁定义为对缺陷(Vulnerability)的潜在利用,这些缺陷可能导致非授权访问、信息泄露、资源耗尽、资源被盗或被破坏等。计算机网络上的通信存在威胁的原因:
(1)资源共享是计算机网络的重要特点。
(2)网络协议(TCP/IP)的主要设计目标不是安全。
(3)缺乏系统的安全标准。
*
网络通信的威胁(续)
计算机网络上的通信面临以下的4种威胁:
(1) 截获——从网络上窃听他人的通信内容。
截获
源站
目的站
非法用户
*
网络通信的威胁(续)
计算机网络上的通信面临以下的4种威胁:
(2) 中断——有意中断他人在网络上的通信。
中断
源站
目的站
非法用户
*
网络通信的威胁(续)
计算机网络上的通信面临以下的4种威胁:
(3) 篡改——故意篡改网络上传送的报文。
篡改
源站
目的站
非法用户
*
网络通信的威胁(续)
计算机网络上的通信面临以下的4种威胁:
(4)伪造——伪造信息在网络上传送。
伪造
源站
目的站
非法用户
*
截获信息的攻击称为被动攻击,而中断、篡改和伪造信息的攻击称为主动攻击。
被动攻击目的只是获取信息而不干扰信息流。
主要攻击形式有网络sniffer侦听攻击、流量分析
难于检测
可采用各种数据加密技术
主动攻击可能改变信息或危害系统。
主要攻击形式有假冒、重放、欺骗、消息篡改、拒绝服务等等
易于探测但却难于防范
需将加密技术与适当的鉴别技术相结合
网络通信的威胁(续)
*
主动攻击的类型
更改报文流
拒绝报文服务
伪造连接初始化
恶意程序攻击(计算机病毒、计算机蠕虫、特洛伊木马、逻辑炸弹)
狭义的计算机病毒和广义的计算机病毒
网络通信的威胁(续)
5-1-2 TCP/IP协议族的安全性
*
Internet网络体系结构以TCP/IP为核心。TCP/IP体系结构共有四个层次。
网际层是整个TCP/IP协议栈的核心,其主要的协议是无连接的网际协议(IP),有IPv4和IPv6两个主要版本。
TCP/IP协议族的安全性(续)
*
与IPv4配合使用的有四个协议,即Internet控制报文协议(ICMP)[注:有时我们称这个协议为ICMPv4,以便与ICMPv6相区别]、Internet组管理协议(IGMP)、地址解析协议(ARP)和逆向地址解析协议(RARP)。
TCP/IP协议族的安全性(续)
*
与IPv6配合使用的是ICMPv6,它综合了ICMPv4、IGMP和ARP的功能。由于目前互联网上的网际协议仍以IPv4为主,也就是通常所称的IP。因此,如果不作特殊说明,提到IP时,指的就是IPv4。
*
各种应用层协议
(TELNET, FTP, SMTP 等)
IP
TCP
UDP
与各种网络的接口
应用层
运输层
网际层
网络接口层
ICMP
IGMP
RARP
ARP
物理硬件
因特网易被攻击者利用的特性
分组交换。
认证与可追踪性。
“尽力而为”的服务策略。
匿名与隐私。
对全球网络基础设施的依赖。
*
1.IP及其安全缺陷
IP协议是TCP/IP协议簇中最为核心的协议,是网络层上的主要协议。
IP(Internet Protocol)
“网络之间互连的协议”,也就是为计算机网络相互连接进行通信而设计的协议
无连接的,不可靠的
*
*
IP数据报格式
网络字节序
*
IP数据报格式(续)
版本:占4bit,目前广泛使用的IP协议的版本号是4,即IPv4。
*
IP数据报格式(续)
首部长度:指首部以4字节为单位的长度,占4bit,因此IP首部最长为60字节。最常用的首部长度是20字节。
*
IP数据报格式(续)
服务类型:占8bit,用来获得更好的服务。
*
IP数据报格式(续)
总长度:占 16 bit,指首部和数据之和的长度,
单位为字节,因此数据报的最大长度为 65535 字节。总长度必须不超过最大传送单元 MTU。
*
IP数据报格式(续)
标识:占16bit,唯一的标识主机发送的每一份数据报。
*
IP数据报格式(续)
标志:占3bit,用于记录该数据报是否分片及若分片了是否是最后一片。
*
IP数据报格式(续)
片偏移:较长的分组在分片后,某片在原分组中的相对位置,以8个字节为偏移单位。
*
IP数据报格式(续)
生存时间:记为TTL(Time To Live),即数据报在网络中可通过的路由器的最大值。TTL的初始值由源主机设置,经过一个路由器就减1,当该字段的值为0时,数据报就被丢弃。
*
IP数据报格式(续)
协议:占8bit,指出此数据报携带的数据使用何种协议。
*
IP数据报格式(续)
首部检验和:用于检验数据报的首部,不包括数据部分。若首部出错,则将数据报丢弃。
*
IP数据报格式(续)
源地址和目的地址:指明数据报发送的源IP地址和目的IP地址。
*
IP数据报格式(续)
可选字段:选项字段中提供了若干选项参数,用来支持排错、测量及安全等措施,内容很丰富。此字段的长度可变,从1字节到40字节不等,取决于所选择的项目。
*
IP缺陷
IP是无状态、无认证的协议,其自身有很多特性容易被攻击者利用。IP协议的主要缺陷是缺乏有效的安全认证和保密机制,其中最主要的因素就是IP地址问题。
*
IP缺陷(续)
1)IP协议没有认证机制。
2)数据报分片。
3)寻址与协议选项。
4)访问控制与带宽控制。
*
IPv6
IPv6是下一版本的互联网协议,即Ipng(IP Next generation)。
将地址从IPv4的32位增大到128位,几乎可以不受限制地提供地址。
IPv4协议报文头结构冗余,影响转发效率;同时缺乏对端到端安全、QOS(Quality of Service,服务质量)、移动互联网安全的有效支持。IPv6协议重点针对上述几个方面进行了改进,采用了更加精简有效的报文头结构。
IPv6报头
版本 DSCP ECN 流标签
净荷长度 下一报头 跳限
128位源IP地址
128位目的IP地址
*
版本:规定了IP协议的版本,值为6。占4比特。
IPv6报头(续)
版本 DSCP ECN 流标签
净荷长度 下一报头 跳限
128位源IP地址
128位目的IP地址
*
历史性的8位流通类别字段已被替换为两个字段:6位区分服务码点DSCP(Differentiated Services Code Point)和2位显示拥塞通知ECN(Explicit Congestion Notification)。
IPv6报头(续)
版本 DSCP ECN 流标签
净荷长度 下一报头 跳限
128位源IP地址
128位目的IP地址
*
流标签:对于一个给定的流,其流标签一经源头选定就不再改变,中间路由器不能像对待DSCP和ECN字段那样重新设置本字段。流指的是从某个特定源头到某个特定目的地的一个分组序列。
IPv6报头(续)
版本 DSCP ECN 流标签
净荷长度 下一报头 跳限
128位源IP地址
128位目的IP地址
*
净荷长度:净荷长度是40字节IPv6首部之后所有内容的字节长度(可能出现的扩展首部也计算在内)。
IPv6报头(续)
版本 DSCP ECN 流标签
净荷长度 下一报头 跳限
128位源IP地址
128位目的IP地址
*
下一报头:占8比特,下一报头字段表示第一个扩展报头(如果存在)的类型,或者上层PDU中的协议。
IPv6报头(续)
版本 DSCP ECN 流标签
净荷长度 下一报头 跳限
128位源IP地址
128位目的IP地址
*
跳限:占8比特,类似于IPv4的TTL字段。一个IPv6分组的跳限字段值由转发它的每个路由器递减,如果某个路由器把该值减为0,它就丢弃该分组。
IPv6报头(续)
版本 DSCP ECN 流标签
净荷长度 下一报头 跳限
128位源IP地址
128位目的IP地址
*
源IPv6地址和目的IPv6地址:128位的IPv6地址。
IPv6首部变换点
1)IPv6没有首部长度,因为IPv6报头没有选项字段。
2)IPv6报头没有用于分片的字段,因为IPv6另有一个独立的分片报头用于该目的。
3)IPv6报头没有其自身的校验和字段。
*
IPv6协议的安全性改进
1)可溯源
2)防网络扫描
3)IPv6集成了IPSec
4)防止碎片攻击
*
IPv6协议的安全问题
1)由于IPv6网络传输的本质没有发生变化,IPv6同样会面临一些现有IPv4网络下的攻击,如地址欺骗攻击等。2)防网络扫描
2)虽然IPSec能够防止多种攻击,但无法抵御Sniffer、DoS攻击、洪水(Flood)攻击和应用层攻击。IPSec作为一个网络层协议,只能负责其下层的网络安全,不能对其上层如Web、E-mail及FTP等应用的安全负责。
*
IPv6协议的安全问题(续)
3)扩展头攻击。当前协议对IPv6扩展头数量没有做出限制,同一类型的扩展头也可出现多次。攻击者可以通过构造包含异常数量扩展头的报文对防火墙进行拒绝服务攻击,防火墙在解析报文时耗费大量资源,从而影响转发性能。
4)IPv6强制使用IPSec,使得防火墙过滤变得困难。
*
2.ICMP及安全缺陷
ICMP报文格式
*
0
检验和
类型
代码
这4字节取决于ICMP的类型
8
16
31
ICMP数据字段(长度取决于类型)
ICMP的特点决定了它非常容易被攻击者利用
1)利用“目的站不可达”报文对攻击目标发起拒绝服务攻击。
2)利用“改变路由”报文破坏路由表,导致网络瘫痪。
3)木马利用ICMP报文进行隐蔽通信。
4)利用“回送请求或回答”报文进行网络扫描或拒绝服务攻击。
*
3.UDP及其安全缺陷
16位源端口号 16位目的端口号
16位UDP长度 16位UDP校验和
UDP数据(可选)
*
UDP数据报格式
UDP易被利用进行风暴型拒绝服务攻击
4.TCP及其安全缺陷
TCP/IP体系中面向连接的运输层协议。
提供全双工的和可靠交付的服务。
为了提供可靠的服务,TCP有确认、重传、流量控制、拥塞控制等机制。
*
*
TCP报文段格式
*
TCP报文段格式(续)
源端口和目的端口:各占2个字节,端口号可以使用0到65535之间的任何数字。
*
TCP报文段格式(续)
序号:占4个字节。用来标识从TCP源端向TCP目标端发送的数据字节流,表示在这个报文段中的第一个数据字节。
*
TCP报文段格式(续)
确认号:占4个字节。它包含期望收到对方的下一个报文段的数据的第一个字节的序号。
*
TCP报文段格式(续)
首部长度:占4bit。首部长度的单位是32bit字。由于4bit能够表示的最大十进制数字是15,因此首部长度的最大值是60字节,这是TCP首部的最大长度。
*
TCP报文段格式(续)
保留:占6bit。保留为今后使用,但目前应置为0。
*
TCP报文段格式(续)
标志位字段(U、A、P、R、S、F):占6比特。各比特的含义如下:
*
TCP报文段格式(续)
紧急比特URG:为1时有效,表明紧急指针有效。
确认比特ACK:为1时确认序号字段有效。
推送比特PSH:为1时有效,PUSH操作的标志。
复位比特RST:为1时有效,要求异常终止通信连接的标志。
同步比特SYN:发起一个连接,在连接建立时用来同步序号。
终止比特FIN:释放一个连接。本地数据发送完璧,终止连接的标志。
*
TCP报文段格式(续)
窗口:占2字节。用来进行流量控制。单位为字节数,是本机期望一次接收的字节数。
*
TCP报文段格式(续)
校验和:占2字节。对整个TCP报文段进行校验和计算,并由目标端进行验证。
*
TCP报文段格式(续)
选项:长度可变。TCP只规定了一种选项,即最大报文段长度MSS(Maximum Segment Size)。
TCP安全缺陷
1)由于一台主机或服务器所允许建立的TCP连接数是有限的。因此,攻击者常常用TCP全连接或半连接来对目标发起拒绝服务攻击,如SYN Flood攻击、TCP连接耗尽型攻击等。
*
TCP安全缺陷(续)
2)序号预测。
3)网络扫描。
*
5.ARP及其安全缺陷
ARP用于将计算机的网络地址转化为物理地址。
每台主机均有一个ARP高速缓存,保存主机知道的所有IP地址和MAC地址的对应关系。
ARP对收到的ARP响应不作任何验证就更新其ARP缓存,即允许未经请求的ARP广播或单播对缓存中的IP-MAC对应表项进行删除、添加或修改。
*
ARP安全缺陷
1)网络嗅探。
2)阻止目标数据包通过网关。
*
5-1-3 有线网络协议与安全性
有线网络,即其设备互连是通过双绞线、同轴电缆及光纤等物理电缆实现的。
有线网络协议主要有由ISP使用的几种有线网络协议,用于提供网络之间的高速连接,还包括用于提供小型网络,即局域网的连接的有线网络协议。
由ISP使用的网络协议是根据传输速度、节点之间的距离和环境变化的,这样的网络称为广域网。本书中我们不探讨广域网及其协议。
*
以太网类型
名称
速率
有线类型
设备间最大距离
10 Base2
10Mbps
同轴电缆
185m
10 BaseF
10Mbps
光线
500m
10 BaseT
10Mbps
双绞线
100m
100 BaseT
100Mbps
双绞线
100m
100 BaseFX
100Mbps
光纤
1000m
1000 BaseX
100Mbps
光线或同轴电缆
取决于电缆类型
*
以太网协议
以太网以载波侦听多路访问/冲突检测(CSMA/CD)来进行媒体访问控制,其目的是避免冲突。网络中的各个节点都能独立地决定数据帧的发送与接收。
*
以太网帧格式
目的
地址
源地址
类型
数 据
FCS
6
6
2
4
字节
46 ~ 1500
目标地址和源地址:分别占6字节,指示发送目标地址和发送方的硬件地址。
以太网帧格式(续)
目的
地址
源地址
类型
数 据
FCS
6
6
2
4
字节
46 ~ 1500
类型:占1字节,用于识别低层协议应该处理的数据包。
以太网帧格式(续)
目的
地址
源地址
类型
数 据
FCS
6
6
2
4
字节
46 ~ 1500
数据:数据段包含的是数据,这个字段的长度限制在1500字节之内。以太网有一个最小的数据长度,46字节长,用于冲突检测。
以太网帧格式(续)
目的
地址
源地址
类型
数 据
FCS
6
6
2
4
字节
46 ~ 1500
帧序检查:用于证实帧在传输期间没被破坏,采用循环冗余校验CRC。
安全性
基于验证的攻击
基于协议的攻击
基于流量的攻击
*
5-1-4 无线网络协议与安全性
无线网络,其设备互连是通过控制自由发送或接收的方式实现的。
最常用的发送方法是无线电波,其他方法有微波或光波。
近年来迅猛发展的移动电子商务就是通过无线上网来进行网络交易。
*
无线网络
无线网络按照覆盖地域范围划分为无线广域网(WWAN)、无线城域网(WMAN)、无线局域网(WLAN)和无线个人网(WPAN)。
WWAN采用的技术分为蜂窝技术和卫星技术两种。
*
无线网络(续)
蜂窝技术的移动通信可以“代(G)”来划分,
如2G标准有GSM和CDMS;
2.5G标准有GPRS、WAP、HSCSD、EDGE等;
3G标准有WCDMA、CDMA2000、TD-SCDMA;
4G标准有LTE、LTE-Advanced、WiMax、HSPA+、WiewlwssMAN-Advanced。
*
无线网络(续)
WMAN采用的标准有IEEE 802.16(解决“最后一英里”带宽接入问题)、IEEE 802.16d、IEEE 802.16e、IEEE 802.20。
WLAN采用的标准有IEEE 802.11、802.11b/a/g/i/e/f/h。
Wi-Fi是致力于推进IEEE802.11标准的联盟,一般特指802.11b。
WPAN采用的技术有蓝牙、HomeRF、IrDA、UWB。
*
无线网络(续)
线网络的特点是通信信道共享、时延较大、连接的可靠性较低、超出覆盖区域时会拒绝接入。
就本质而言,无线网所增加的安全问题主要是由于其采用了电磁波作为载体来传输数据信号,而其他方面的问题与有线网络相同。
*
无线以太网协议
帧控制:2字节的值,用于识别帧的类型和其他帧的规定信息。
延展性/ID:两个字节的值,用于管理访问控制协议。
*
帧控制
延展性/ID
地址1
地址2
地址3
序号控制
地址4
数据
FCS
无线以太网协议(续)
地址1:6字节的值,用于识别要传输的数据包的目标地址,由硬件控制器用于决定帧是否要读,如果它和控制器的地址不匹配,帧的余下部分就会被丢弃。
地址2:6字节的传输设备的地址。
*
帧控制
延展性/ID
地址1
地址2
地址3
序号控制
地址4
数据
FCS
无线以太网协议(续)
地址3:6字节的值,在访问接入点作为延伸网络的一部分,且访问接入点作为流量中继时使用。
地址4:6字节的值,在访问接入点作为延伸网络的一部分,且访问接入点作为流量中继时使用。
*
帧控制
延展性/ID
地址1
地址2
地址3
序号控制
地址4
数据
FCS
无线以太网协议(续)
序号控制:2字节的值,用于应答处理。
数据:承载数据的数据域,数据域的长度限制在2312字节。无线以太网没有最小数据长度限制。
*
帧控制
延展性/ID
地址1
地址2
地址3
序号控制
地址4
数据
FCS
无线以太网协议(续)
帧序校验(Frame check sequence,FCS):用于检测传输期间帧是否被破坏,它使用的方法是循环冗余校验码。注意,以太网协议是不处理帧的重传的。当一个帧标志为一个坏的FCS时,帧就被丢弃了,且接收硬件控制器不会通知上一协议层。
*
帧控制
延展性/ID
地址1
地址2
地址3
序号控制
地址4
数据
FCS
安全性
无线以太网协议的漏洞比有线以太网协议的漏洞要多。
不像有线以太网,对介质的直接访问很困难,无线以太网允许有天线或接近传输设备的任何人访问数据包,这样对无线以太网的攻击比对有线以太网的攻击更常见。
*
安全性(续)
1)基于协议的攻击
2)基于验证的攻击
3)基于流量的攻击
为了减少这类攻击,无线以太网标准增加了加密机制,让攻击者无法对无线以太网的数据包中的数据进行破解。
无线网络使用的加密方式主要包括WEP加密、WPA加密和WPA2加密3种。这些加密协议对无线设备和访问接入点之间的流量进行加密,但不提供端对端加密。可以使用高层协议提供端对端加密。
*
安全性(续)
WEP,全称Wired Equivalent Privacy,它可以提供简单的加密和认证。WEP使用同步流密码算法RC4。WEP并不是一个很强的协议,密码分析专家已经找到了WEP的好几个弱点
2003年推出了Wi-Fi Protected Access(WPA)
2004年推出了完整的IEEE 802.11i标准(又称为WPA2)。
*
IEEE 802.11b安全协议
1)物理地址过滤MAC
2)扩展服务集标识ESSID(Extended Service Set ID)
3)有线等效加密WEP
*
IEEE 802.11i安全协议
IEEE 802.11i是新一代安全标准,针对WEP加密机制的各种缺陷做了多方面的改进,增强无线局域网的数据加密和认证性能。
IEEE 802.11i规定使用802.1x认证和密钥管理方式。
在数据加密方面,定义了TKIP、CCMP和WRAP三种加密机制。
*
802.1x认证过程
① 无线终端向AP发出请求,试图与AP进行通信。
② AP将加密的数据发送给验证服务器进行用户身份认证。
③ 验证服务器确认用户身份后,AP允许该用户接入。
④ 建立网络连接后授权用户通过AP访问网络资源。
*
IEEE 802.11i安全协议(续)
IEEE 802.11i的一个缺陷是其对用户接入方面缺乏可控性和管理性,造成的信息失窃、非法入侵等安全问题已屡见不鲜。
*
WAP协议
WAP(Wireless Application Protocol,无线应用协议)是一项借助无线手持设备,如掌上计算机、手机、智能电话等,获取信息并在手持设备的小型屏幕上进行浏览的安全标准。
WAP本质上是无线领域的TCP/IP协议
*
WAP协议栈
*
*
针对网络存在的各种安全隐患,要组建一个安全的网络,一个完整的解决方案应从多方面入手。
首先,应对网络安全现状作出正确判断,较为准确地估计特定网络用户的风险。
其次,建立相应的控制风险的机制,并把这些机制融为一体形成防护体系,最大限度地提高系统的可用性,并把网络带来的风险减低到可接受程度。
一个可行的安全网络应能充分满足应用需求、具有较高的性价比,最大限度地保护用户的投资和网络安全。
5-1-5 混合组网结构
*
案例描述
X企业的管理信息网如下图所示 。
*
案例描述
该网络由3部分组成:
内部网络:总公司办公楼内局域网
连接分公司的广域网
连接Internet的局域网
目前X企业采取的安全措施主要有:
利用操作系统、应用系统等本身的安全性,对用户进行权限控制。
在连接分公司的广域网接口处,通过路由器的IP包过滤及访问控制列表ACL功能进行安全控制。
在Internet的接口处,通过路由器的IP包过滤及访问控制列表ACL功能进行安全控制。
*
案例描述
处于中心结点的ATM交换机和相关连接广域网和Internet的路由器直接承担对外部用户的访问控制工作,且内部网络直接与外部网络(分公司及Internet)相连,对整个网络安全构成了巨大的威胁。
*
安全需求分析
通过上面的分析,对于X企业的网络情况,现作出安全需求如下:
对于来自外部网络的访问,除了有特定的身份认证外,只能到达指定的访问处,不能访问内部资源。
网络内部用户对外的访问必须经过授权。授权和代理由防火墙完成。
对于外部网络,内部网络的核心交换机是不可见的。
入侵检测,对于试图破坏业务系统的恶意行为能够及时发现、记录和跟踪。
病毒检测、消除。
*
安全方案设计
针对安全需求,具体采用安全措施网络结构如下图所示。
*
安全方案设计
对于Internet连接处采用Gauntlet防火墙将内部网和外部网隔开,不允许内外网络直接连接。将对Internet提供信息服务的Server,独立成一个网段放到非军事区DMZ1,Internet上的用户只能访问DMZ1里的Server,并且所有访问都必须经过防火墙代理。
*
安全方案设计
对于各分公司连接处,各分公司连接到总公司的Cisco 7000主干路由器上。为了确保总公司内部网的安全性,在主干路由器和中心交换机之间设置Gauntlet防火墙,建立DMZ2,将对分公司提供服务的Server放在DMZ2中,其访问控制与Internet处相同。
*
安全方案设计
多层病毒防护体系:具体在企业内的每个台式机上安装反病毒软件,在DMZ1和DMZ2的服务器上安装反病毒软件,提供全面的基于服务器的病毒保护。
DMZ1和DMZ2的服务器上安装基于主机的入侵检测系统。
*
安全方案设计
在位置1部署网络入侵检测系统,以便发现从外部发起的、渗透网络边界防御的攻击,同时发现攻击目标可能是DMZ里的Server的攻击行为。
在位置2部署网络入侵检测系统,从而发现从因特网发起的的攻击。
返回
*
5-2防火墙技术
5-2-1防火墙基本功能
5-2-2防火墙常见体系结构
5-2-3防火墙技术分类
5-2-4防火墙应用
*
防火墙技术
防火墙(Firewall)的本义:古代人们房屋之间修建的墙,这道墙可以防止火灾发生的时候蔓延到别的房屋。
在计算机世界中,防火墙是一种形象的说法,它是一种得到广泛使用的网络安全技术。
*
防火墙技术
基于网络的防火墙



访问控制策略允许TCP端口80访问,
拒绝TCP端口440
TCP Port 80
TCP Port 440
被保护的网络
未被保护的网络
*
防火墙技术
基于主机的防火墙 :在系统本身内部实施,如微软的因特网连接防火墙ICF
防火墙是一种由计算机软件或/和硬件的组合,它定义了接入访问控制策略以保护内部网络或计算机系统免受非法用户的侵入 。
防火墙必须具有以下特性:所有信息都必须经过它;只有经过授权的访问通过它;本身能抗攻击。
*
5-2-1防火墙基本功能
防火墙是网络安全的屏障
防火墙可以强化网络安全策略
对网络存取和访问进行监控审计
防止内部信息外泄
向客户发布信息
防火墙的抗攻击能力
*
防火墙基本功能(续)
防火墙只是能提高网络的安全性,不能保证网络绝对的安全。
事实上,仍然存在一些防火墙不能防范的安全威胁,如防火墙无法防范不经过防火墙的攻击。
防火墙很难防范来自于网络内部的攻击以及病毒的威胁。
*
5-2-2防火墙常见体系结构
防火墙的体系结构:防火墙在网络中的放置方式。
只有正确合理地配置防火墙在整个网络中的拓扑位置,才能完全发挥其作用。
防火墙可以分为三种体系结构,分别是双宿主主机体系结构、主机屏蔽体系结构和子网屏蔽体系结构。
*
一些基本概念
非军事区(DMZ):为了配置和管理的方便,通常将内网中需要向外提供服务的服务器设置在单独的网段,这个网段被称为非军事区(DMZ)。
非军事区位于内网之外,使用与内网不同的网络号连接到防火墙,并对外提供服务。
*
一些基本概念
堡垒主机:经过加固、安装了防火墙软件、但没有IP转发功能的计算机。该主机对外提供一些必要的服务,也可以被内部用户访问。堡垒主机一般位于非军事区。具体来说,堡垒主机的配置有以下几种类型:
单宿主堡垒主机
双宿主堡垒主机
内部堡垒主机
外部堡垒主机
*
一些基本概念
屏蔽路由器(Screening Router):在路由器上安装包过滤软件,实现包过滤功能,由此可以实现一部分防火墙的功能,因此,有人把屏蔽路由器也称为防火墙的一种。
在内网和外网之间放置,用于执行包过滤功能。该路由器作为内外连接的唯一通道,所有经过的数据包都必须检查。
*
双宿主主机(Dual Homed)体系结构
双宿主堡垒主机作为防火墙,两块网卡分别与内部网和外部网相连。
双宿主堡垒主机上运行着防火墙软件(通常是代理服务器),可以转发应用程序,提供服务等。
建立双宿主堡垒主机防火墙的关键是要禁止路由功能。
*
双宿主主机(Dual Homed)体系结构
双宿主堡垒主机体系结构如下图所示:
*
主机屏蔽(Screened Host)体系结构
在堡垒主机的前面增加屏蔽路由器,即堡垒主机并不直接与Internet相连。
主机屏蔽结构防火墙又分为单宿主堡垒主机和双宿主堡垒主机两种类型。
*
单宿主堡垒主机结构
由一个屏蔽路由器连接外部网络,同时一个堡垒主机安装在内部网络上。
通常在路由器上设立过滤规则,并使这个单宿主堡垒主机成为从 Internet惟一可以访问的主机,确保了内部网络不受未被授权的外部用户的攻击。
Intranet内部的客户机,可以受控制地通过屏蔽路由器和堡垒主机访问Internet。
主机屏蔽(Screened Host)体系结构
*
主机屏蔽(Screened Host)体系结构
单宿主堡垒主机结构
*
双宿堡垒主机结构
堡垒主机有两块网卡,一块连接内部网络,一块连接包过滤路由器 。
双宿主堡垒主机在应用层提供代理服务,因此它实现了网络层安全(包过滤)和应用层安全(代理服务),与单宿型相比更加安全。
主机屏蔽(Screened Host)体系结构
*
双宿堡垒主机结构
主机屏蔽(Screened Host)体系结构
*
屏蔽子网体系结构
在外网和内网之间建立一个DMZ网络,用两个屏蔽路由器将DMZ网络分别与外网和内网分开。
两个屏蔽路由器放在DMZ网络的两端,在DMZ网络构成一个“缓冲地带” ,如下图所示。
*
屏蔽子网体系结构
两个路由器一个控制内网数据流,另一个控制外网数据流,内网和外网均可访问DMZ网络,但禁止它们穿过DMZ网络通信。
可根据需要在DMZ网络中安装堡垒主机,为内部网络和外部网络的互相访问提供代理服务。
对于向Internet公开的服务器,如WWW、FTP、Mail等Internet服务器也可安装在DMZ网络内,这样无论是外部用户,还是内部用户都可访问。
安全性能高,具有很强的抗攻击能力,但需要的设备多,造价高。
*
5-2-3防火墙技术分类
防火墙技术可根据防范的方式和侧重点的不同而分为很多种类型,但总体来讲可分为包过滤、应用层网关、状态检测等几大类型。
*
包过滤(Packet Filtering)技术
包过滤技术是基于可以提供给IP转发过程的包的协议头进行过滤的。
包过滤防火墙对接收的每个数据包进行审查以便确定其是否与某一条包过滤规则匹配来做允许或拒绝的决定。
*
包过滤(Packet Filtering)技术
*
包过滤(Packet Filtering)技术
优点:简单实用、实现成本低、在应用环境比较简单的情况下能够以较小的成本在一定程度上保证系统的安全。
缺点:
完全基于网络层的安全技术,只能根据数据包的来源、目标和端口等网络信息进行判断,无法识别基于应用层的恶意侵入 。
许多过滤器中过滤规则的数目是有限制的,且随着规则数目的增加,性能会受到很大地影响。
对安全管理人员素质要求高。
*
应用层网关技术
在网络应用层上建立协议过滤和转发功能,如下图所示。
应用层
表示层
会话层
传输层
网络层
数据链路层
物理层

流量的过滤是基于特定的应用规则
不确定的流量在应用层上被阻止

*
应用层网关技术
应用层网关采用为每种所需服务在网关上安装一些特定的应用程序或服务器程序的方式来管理Internet服务。
这些特定的应用程序或服务器程序代表两个端系统的应用服务,因此应用层网关又称为代理防火墙,其工作原理如下图所示。
*
应用层网关技术
应用协
议分析
代理
服务器
代理
客户
内网
服务器
外部
客户机
应用层网关
发出请求
转发请求
转发响应
响应
应用层网关能够让网络管理员对服务进行全面控制。缺点是对用户来说是不透明的,且会深入检查应用报文从而增加延迟。
*
电路层网关技术
电路层网关也称回路层代理,工作原理与组成结构和应用层网关相似。
电路层网关并不针对专门的应用协议,它用来监控受信任的客户或服务器与不受信任的主机间的TCP握手信息,这样来决定该会话是否合法。
*
电路层网关技术
优点:能够提供网络地址转换(NAT)功能,在使用内部网络地址机制时为网络管理员实现安全提供了很大的灵活性。
缺点:要求终端用户通过身份认证;不能很好地区分包的真实意图,容易受到诸如IP欺骗等攻击。
*
状态检测技术
状态检测技术既具备包过滤的速度和灵活,也有应用层网关的安全特点。
状态检测技术采用的是一种基于连接的状态检测机制,将属于同一连接的所有包作为一个整体的数据流看待,构成连接状态表,通过规则表与状态表的共同配合,对表中的各个连接状态因素加以识别。
*
状态检测技术
与传统的包过滤防火墙相比,状态检测防火墙具有识别带欺骗性源IP地址包的能力,检查的层面能够从网络层至应用层,并且具有详细记录通过的每个包的信息的能力。
缺点:记录、测试和分析工作都可能会造成网络连接的某种迟滞。当然,如果硬件速度比较快,可以有效地缓解这个问题。
返回
5-2-4防火墙应用
网络卫士防火墙4000组成
一套专用硬件设备(Firewall)
认证客户端软件
防火墙集中管理软件组成
*
*
防火墙应用(续)
网络卫士4000典型应用拓扑图
实例中网络划分为三个区域:内网、外网和SSN。管理员位于内网。SSN中有三台服务器,一台是HTTP服务器(IP地址:192.168.47.99),一台是FTP服务器(IP地址:192.168.47.100),一台是邮件服务器(IP地址:192.168.47.98)。Eth1属于外网区域,IP为202.102.92.31;Eth2属于SSN区域,IP为192.168.47.97;Eth0属于内网区域,IP为192.168.41.25。
现要求:内网的机器可以任意访问外网,也可访问SSN中的邮件服务器、HTTP服务器和FTP服务器;外网和SSN中的机器不能访问内网;允许外网的机器访问SSN中的HTTP服务器。应用拓扑如下图所示。
*
防火墙应用(续)
网络卫士4000典型应用拓扑图
*
防火墙应用(续)
典型应用配置
上图中的防火墙工作于路由模式。具体配置如下:
(1)配置防火墙接口地址,分别为Eth0、Eth1和Eth2接口IP地址。
(2)内网管理员通过浏览器登录防火墙,设置区域对象绑定属性,设置权限。设置内网绑定属性为Eth0,权限为禁止;外网绑定属性为Eth2,权限为允许;SSN绑定属性为Eth2,权限为禁止。
(3)定义地址对象,设置HTTP服务器、FTP服务器、邮件服务器、虚拟HTTP服务器的IP地址,主机名分别为HTTP_SERVER,FTP_SERVER,MAIL_SERVER,V_SERVER。
(4)定义访问规则,如下表所示。
*
防火墙应用(续)
允许内网用户访问HTTP服务器 源区域:内网, 目的区域:SSN,目的地址:HTTP_SERVER
服务:HTTP,控制:允许
允许内网用户访问邮件服务器 源区域:内网, 目的区域:SSN,目的地址:MAIL_SERVER
服务:POP3,SMTP,控制:允许
允许内网用户访问FTP服务器 源区域:内网, 目的区域:SSN,目的地址:FTP_SERVER
服务:FTP,控制:允许
允许外网用户访问HTTP服务器 源区域:外网, 目的区域:SSN,目的地址:HTTP_SERVER
服务:HTTP,控制:允许
*
防火墙应用(续)
典型应用配置
(5)定义地址转换规则,如下表所示。
内网用户通过源地址转换访问外网 源区域:内网,目的区域:ANY, 服务:全部服务
转换控制:源地址转换,转换地址对象:Eth1
外网用户通过目的地址转换访问HTTP服务器 源区域:外网,目的区域:SSN
目的地址:V_SERVER,服务:HTTP
转换控制:目的地址转换
转换地址对象:HTTP_SERVER
*
防火墙应用(续)
典型应用配置
(6)定义缺省路由:为内网用户访问Internet添加缺省路由,目的地址设为0.0.0.0,网关地址设为202.102.92.254。
*
5-3网络常见的攻防技术
5-3-1口令破译
5-3-2Web网站攻击技术
5-3-3网络扫描技术
5-3-4网络侦听Sniffer攻击
5-3-5拒绝服务DoS攻击
5-3-6欺骗攻击
5-3-7特洛伊木马
5-3-8蠕虫
*
5-3-1口令破译
现代计算机安全体系结构中,大多数系统的安全性都以某种形式依赖于口令的安全性 。一旦口令被破译,用户就没有安全可言。
口令破译:用一些软件或方法解开已经得到的但被加密的口令。
*
口令破译
从某种程度上说,口令的安全问题不仅仅是技术上的问题,更主要的是人的安全意识问题。
*
内容
口令破译方法
口令跟踪
穷举法
字典法
选择安全的口令
口令破译程序
*
口令破译方法
口令跟踪即软件脱壳,它的原理是在需要口令认证的软件验证口令时开启汇编软件,跟踪找到口令存放地址,然后将此地址的内容反汇编从而得到口令。
*
口令破译方法
穷举法(暴力破解法、强力破解法)
原理:口令都是由有限的字符排列组合而成的,且口令的位数也是有限的,因此理论上任何口令都可以穷举出来。
穷举法通过对所有可能的口令组合进行猜测,最终找到口令。
*
口令破译方法
穷举法(暴力破解法、强力破解法)
口令破译器:基于穷举法进行口令猜测的软件,如下图所示。
候选口令
发生器
口令
加密
密文
比较
加密算法
待破解的
口令密文
穷举、字典
*
口令破译方法
字典法
原理:在实际使用中,人们选择口令往往有一定的规律,穷举猜测的时候没有必要将所有的字符组合都试验一遍。
字典法将字典文件作为口令猜测的来源交由验证程序进行验证。
字典文件就是一个文件,里面存的内容多为单词及姓名、生日、电话号码、邮编等。
*
选择安全的口令
理论角度,任何口令都是不安全的。
实际的角度讲,很少有攻击者有足够的耐心和时间去破译一个口令,因此可以选择一个安全的口令提高一个系统的安全性。
*
选择安全的口令
设置安全的口令
保证足够的口令长度,至少应有8位 。
没有任何规律且由字母、数字和特殊符号交叉组合而成。
设置口令过期时间和口令历史。
*
口令破译程序
要进行口令破译,需要有如下的条件:
足够的硬件
一个口令破译程序(John the Ripper、Crack、L0phtCrack等)
一个口令文件(/etc/shadow、windows中的SAM文件等)
*
口令破译程序
UNIX的口令破译
在UNIX系统中,所有用户登录所使用的ID和口令集中保存在两个文件中,passwd文件和shadow文件。登录ID以明文方式存放,口令以加密的形式存储。加密过程采用Crypt(3),这是一个基于DES的加密程序。如果正确设置UNIX口令,其安全性还是相当可靠的,主要的问题仍是人们使用弱口令。
需要注意的是,UNIX是一个多用户的系统,设置弱口令会给其他用户带来安全隐患。
*
口令破译程序
UNIX的口令破译
John the Ripper
开源软件,是当今适用范围最广的一种口令破译程序,
主页地址是http://www./john。
可以在DOS、Windows和大多数流行的UNIX平台上运行。 John的优势即在于其适用范围广,用它可以在一台主机上进行跨平台的口令破译。
John可以对口令文件实施真正的暴力破解。
Crack
专门用来破解UNIX口令的破译程序
*
口令破译程序
Windows的口令破译
微软做了两种类型的口令散列:Windows散列和LANMAN散列。
Windows口令散列存储在安全账户管理数据库(Security Accounts Manager)中,其文件为Windows目录下的\system32\config\SAM。在Windows运行过程中这个文件被锁定,该文件的一个备份保存在Windows目录下的\repair目录中。
*
口令破译程序
Windows的口令破译
LOphtCrack (LC5)
用于破解Windows口令的图形用户界面工具。最初由@Stake公司开发,于2004年被Symantec公司收购。从2006年开始,Symantec不再发行LC5。
可以从http://download.insecure.org/stf/lc5-setup.exe下载 LC5安装程序。
能够进行字典破译、暴力破译和混合破译(字典破译和暴力破译结合在一起)。
下面用L0phtcrack阐述一个实际的例子。
*
口令破译程序
步骤1:取得加密口令,即从哪得到加密口令文件,在这里我们选择从本地计算机导入,如下图所示。
*
口令破译程序
步骤2:选择破译方法,在这里我们选择普通口令破译,如下图所示。
*
口令破译程序
步骤3:选择报告风格,如下图所示。
*
口令破译程序
最后,执行口令破译,下图是破译后的界面。
*
口令破译程序
Windows的口令破译
John the Ripper
Windows口令攻击辅助程序Pwdump 6
免费的Windows实用程序(http://www./fizzgig/ pwdump/),可将Windows口令从SAM文件中提取出来,并存储在指定的文件中。
*
口令破译程序
其他口令类型破译
许多人认为应用程序级的口令保护机制是安全的,然而实际上大多数应用程序级的口令保护机制对入侵者是没有什么作用的。任何人都可以使用一款价值很低的破译软件在几秒钟内破译口令。
*
口令破译程序
其他口令类型破译
破译Cisco IOS口令
Boson GetPass,如图所示
*
口令破译程序
其他口令类型破译
Mark Miller的PGPCrack
其他一些商业应用软件口令破译程序
PWD Service公司(http://www.)
Password Crackers公司(http://www.)
返回
OWASP(The Open Web Application)统计,2013年十大网站安全漏洞
1)注入漏洞;
2)失效的身份认证和会话管理;
3)跨站脚本(XSS);
4)不安全的直接对象引用;
5)安全配置错误;
6)敏感信息泄露;
7)功能级访问控制缺失;
8)跨站请求伪造;
9)使用含有已知漏洞的组件;
10)未验证的重定向和转发。
*
5-3-2Web网站攻击技术
内容
Web应用体系结构脆弱性分析
SQL注入攻击
跨站脚本攻击
*
Web应用体系结构脆弱性分析
*
Web客户端
Web服务器
Web应用程序
Web应用程序
Web应用程序
数据库
HTTP
请求
HTTP响应(HTML,Javascript等)
数据库
Web应用体系结构脆弱性分析(续)
1)Web客户端的脆弱性
2)Web服务器的脆弱性
3)Web应用程序的脆弱性
4)HTTP的脆弱性
5)Cookie的脆弱性
6)数据库的安全脆弱性
*
SQL注入攻击
SQL注入(SQL Injection)攻击属于数据库安全攻击手段之一,通过精心构造的字符串达到非法访问数据库内容或在数据库执行命令的目的。
*
SQL注入攻击(续)
用做实验的靶网如图
*
SQL注入攻击
此网站登录页面存在SQL注入漏洞,可以在登录的用户名admin后加一单引号,或在URL地址栏直接输入http://192.168.1.102:81/login.asp name=admin'&pass=admin。
*
SQL注入攻击
当用户没有正确的密码时,可以通过构造http://192.168.1.102:81/login.asp name=admin &pass=xxr’ or ‘1=1成功登录系统
*
SQL注入攻击
其登录页面的部分代码如下:
username=Request("name")
userpass=Request("pass")
……
sqlstr="select * from data where uname='" & username & "' and upass='" & userpass & "'"
rs.open sqlstr,conn,1
if rs.recordcount>0 then
response.write("

登录成功!

")
……
else
response.write("

登录失败!

")
……
end if
*
SQL注入攻击
SQL注入漏洞探测方法
1)整型参数时的SQL注入漏洞探测
select * from 表名 where 字段=zz
①在URL链接中附加一个单引号,即http://xxx.xxx.xxx/yyy.asp id=zz’,此时xxx.asp中的SQL语句变成如下形式:
select * from 表名 where 字段=zz’
测试结果为xxx.asp运行异常。
②在URL链接中附加字符串“and 1=1”,即http://xxx.xxx.xxx/yyy.asp id=zz and 1=1,测试结果为xxx.asp运行正常,且与http://xxx.xxx.xxx/yyy.asp id=zz运行结果相同。
*
SQL注入攻击
SQL注入漏洞探测方法
1)整型参数时的SQL注入漏洞探测
select * from 表名 where 字段=zz
③在URL链接中附加字符串“and 1=2”,即http://xxx.xxx.xxx/yyy.asp id=zz and 1=2,测试结果为xxx.asp运行异常。
*
SQL注入攻击
SQL注入漏洞探测方法
2)字符串型参数时的SQL注入漏洞探测
select * from 表名 where 字段=’zz’
①在URL链接中附加一个单引号,即http://xxx.xxx.xxx/yyy.asp id=zz’,此时xxx.asp中的SQL语句变成如下形式:
select * from 表名 where 字段=’zz’’
测试结果为xxx.asp运行异常。
②在URL链接中附加字符串“’and ‘1’=’1”,即http://xxx.xxx.xxx/yyy.asp id=’zz’ and ‘1=’1’,测试结果为xxx.asp运行正常,且与http://xxx.xxx.xxx/yyy.asp id=zz运行结果相同。
*
SQL注入攻击
SQL注入漏洞探测方法
2)字符串型参数时的SQL注入漏洞探测
select * from 表名 where 字段=’zz’
③在URL连接中附加字符串“’and ‘1’=’2”,即http://xxx.xxx.xxx/yyy.asp id=’zz’ and ‘1=’2’,测试结果为xxx.asp运行异常。
*
SQL注入攻击
SQL注入漏洞探测方法
3)特殊情况的处理
①UNICODE法。在IIS中,以UNICODE字符集实现国际化,我们完全可以在IE中将输入的字符串变成UNICODE字符串进行输入,如空格=%20。
②ASCII码法。可以把输入的部分或全部字符用ASCII码代替。
*
SQL注入攻击
SQL注入漏洞的防范
1)过滤单引号
2)禁止将敏感性数据以明文存放在数据库中,这样即使数据库被SQL注入攻击,也会减少泄密的风险。
3)遵循最小特权原则。只给访问数据库的Web应用所需的最低权限。例如,如果Web应用不需要访问某些表,那么应确认它没有访问这些表的权限;如果Web应用只需要读权限,则应确认已禁止它对此表的插入、更新、删除等权限。
*
跨站脚本攻击
跨站脚本攻击(Cross Site Scripting,XSS)指攻击者利用Web程序对用户输入过滤不足的缺陷,把恶意代码(包括HTML代码和客户端脚本)注入到用户浏览器显示的页面上执行,从而进行窃取用户敏感信息,伪造用户身份等恶意行为的一种攻击。
*
跨站脚本攻击(续)
本地脚本漏洞攻击
1)Alice给Bob发送一个恶意构造的URL。
2)Bob点击并查看了这个URL。
3)恶意页面中的JavaScript打开一个具有漏洞的HTML页面,并将其安装在Bob计算机上。
4)具有漏洞的HTML页面包含了在Bob计算机本地域执行的JavaScript。
5)Alice的恶意脚本可以在Bob的计算机上执行Bob所持有的权限下的命令。
*
跨站脚本攻击(续)
反射式跨站脚本攻击
1)Alice经常浏览Bob建立的网站,在Bob的网站上,Alice使用用户名和密码进行登录,并存储敏感信息(如银行账户信息)。
2)Clarly发现Bob的网站包含反射性的XSS漏洞。
3)Clarly编写一个利用漏洞的URL,并将其冒充为来自Bob的邮件发送给Alice。
4)Alice在登录Bob的网站后,浏览Charly提供的URL。
5)嵌入到URL的恶意脚本在Alice的浏览器中执行,就像它直接来自Bob的服务器一样。此脚本盗窃敏感信息(授权、信用卡、帐号信息等),然后在Alice完全不知情的情况下将这些信息发送到Charly的Web站点。
*
跨站脚本攻击(续)
储存式跨站脚本攻击
1)Bob拥有一个Web站点,该站点允许用户发布信息和浏览已发布的信息。
2)Charly注意到Bob的站点具有储存式跨站脚本漏洞。
3)Charly发布一个热点信息,吸引其他用户纷纷阅读。
4)Bob或者是任何其他人如Alice浏览该信息时,其会话Cookie或者其他信息将被Charly盗走。
*
跨站脚本攻击实例
浏览该网站的留言版模型,进入签写留言功能,在“内容”处填写“”,其他输入任意。
*
跨站脚本攻击实例(续)
提交留言后,恶意脚本就被存储到数据库中。系统默认要求必须管理员审核浏览版内容。只要点击恶意留言就会触发一次XSS攻击。这里只是简单地弹出一个警告框。
*
跨站脚本攻击实例(续)
……
usercontent=Replace(Request.Form(“usercontent”),”’”,” ”);’得到内容,过滤单引号
……
set rs=Server.CreateObject(“ADODB.RecordSet”);
sql=”select * from Feedback where online=’1’ order by Postdate desc”
rs.open sql,conn,1,3
rs.Addnew
……
rs(“usercontent”)=usercontent ’将过滤的内容插入数据库
……
rs.Update
rs.close
set rs=nothing
……
admin/check.asp引起问题的代码如下:
……
set rs=Server.CreateObject(“ADODB.Recordset”)
sql=”select * from Feedback where del=false order by top desc,PostDate desc”
rs.cursorlocation=3
……
rs.open sql,conn,1,1
……
<%=rs(“userMail”)%> 
……
rs.close
set rs=nothing
……
*
跨站脚本攻击
跨站脚本攻击的防范
在将HTMl返回给Web浏览器之前,对用户输入的所有内容进行过滤控制或进行编码。例如,HTML编码使用其他一些没有特定HTML意义的字符来代替那些标记自符,如把“<”转换为“<”,把“>”转换为“>”,这样可以保证安全的存储和显示括号。
*
*
5-3-3网络扫描技术
网络扫描技术是获取攻击目标信息的一种重要技术,能够为攻击者提供大量攻击所需的信息。一般来说,攻击者通过网络扫描达到以下目的:
1)判断目标主机的工作状态,即判断目标主机是否联网并处于开机状态。
2)判断目标主机端口的工作状态,即端口处于监听还是关闭状态。
3)判断目标主机的操作系统类型。
4)判断目标主机可能存在的漏洞。
5)判断某个应用程序或某个特定服务的版本号。
内容
主机发现
端口扫描
操作系统检测
漏洞扫描
*
主机发现
基于ICMP协议的主机发现
基于IP协议的主机发现
发送首部异常的IP数据包
有意造成分片时间超时
*
*
端口扫描
“端口扫描”(port scanning)是向目标系统的TCP协议或UDP协议端口发送探测数据包,并记录目标系统的响应。通过分析响应来判断服务端口是打开还是关闭,就可以得知端口提供的服务或信息。
这里要注意的是端口扫描仅能对收到的响应数据进行分析,以得到目标系统的某些内在的弱点,而不会提供进入目标系统的详细步骤。
*
端口扫描(续)
下面是一个简单的Windows端口扫描程序,它是一个典型的TCP Connec扫描,功能很简单,没有对返回的数据进行分析。
*
#include
#include
#include
#include
#pragma comment (lib,"ws2_32.lib")
int main (int argc, char *argv[])
{ int iportFrom,iportTo;
int testsocket;
int iopenedport = 0;
struct sockaddr_in target_addr;
WSADATA wsaData;
WORD wVersionRequested=MAKEWORD(1,1);
if (argc <= 3)
{ cout << "使用格式: "<< "主机IP地址 开始端口号 结束端口号\n" << endl;
exit(1);
}
if (atoi (argv[2]) > atoi (argv[3]))
{ cout << "错误!开始端口号必须小于结束端口号" << endl;
exit(1);
}
else
{
if (WSAStartup (wVersionRequested , &wsaData) )
{
cout << "连接socket库失败,请检查版本号是否为1.1\n" << endl;
exit(1);
}
iportFrom=atoi (argv[2]);
iportTo=atoi (argv[3]);
for (int i=iportFrom; i <= iportTo; i++)
{
if ((testsocket=socket (AF_INET,SOCK_STREAM,0) ) == INVALID_SOCKET)
*
{ cout << "Socket建立失败!" << endl;
exit(0);
}
target_addr.sin_family = AF_INET;
target_addr.sin_port = htons(i);
target_addr.sin_addr.s_addr = inet_addr (argv[1]);
cout << "正在扫描端口:" << i << endl;
if (connect (testsocket, (struct sockaddr *) &target_addr, sizeof(struct sockaddr)) == SOCKET_ERROR)
cout << "端口" << i << "关闭!" << endl;
else
{
iopenedport++;
cout << "端口" << i << "开放......" << endl;
}
}
cout << "目标主机" << argv[1] << "从" << iportFrom << "--" << iportTo << "共有" << iopenedport << "个端口开放" << endl;
closesocket (testsocket);
WSACleanup();
}
return 0;}
*
端口扫描(续)
程序运行结果如图所示。
*
端口扫描技术
TCP connect Scan(TCP连接扫描)
最基本、最简单的一种扫描技术,也称为TCP全连接扫描。
利用TCP协议的三次握手过程,直接连接到目标端口并完成一个完整的3次握手过程(SYN、SYN/ACK和ACK),与目标计算机建立标准的TCP连接。
这种方法的缺点是很容易被目标主机记录。
*
端口扫描技术(续)
TCP SYN Scan(TCP同步序列号扫描)
也称“半开式扫描”(Half Open Scan)或“间接扫描”,它不进行完整的TCP连接,即在和目标主机的端口建立连接的时候,只完成前两次握手。
由于扫描过程中,全连接尚未建立,所以大大降低了被目标计算机的记录的可能性,并且加快了扫描的速度。
*
端口扫描技术(续)
TCP FIN Scan(TCP结束标志扫描)
向TCP端口发送一个设置了FIN位的连接终止数据报,关闭的端口会回应一个设置了RST的连接复位数据报;而开放的端口则会对这种可疑的数据报不加理睬,将它丢弃。因此可以根据是否收到RST数据报来判断对方的端口是否开放。
这种扫描方式比前两种都要隐秘,不容易被发现。
这种方式对一些系统是无效的,最典型的就是Windows操作系统 。
这种方式探测目标主机端口是否开放必须等待超时,增加了探测时间,而且容易得出错误的结论。
*
端口扫描技术(续)
IP Scan(IP协议扫描)
这种方法是其他扫描方式的一种变形,不是直接发送TCP协议扫描数据包,而是在发送扫描数据包时人为地将数据包分成许多IP分片,从而包过滤器就很难探测到。
需要注意的是,有些程序不能正确处理IP分片,分片扫描可能会造成目标系统崩溃。
*
端口扫描技术(续)
TCP Xmas Tree Scan
向目标端口发送一个含有FIN(结束)、URG(紧急)和PUSH(弹出)标志的分组。根据RFC793,对于所有关闭的端口,目标系统应该返回RST标志。根据这一原理就可以判断哪些端口是开放的。
TCP Null Scan
这种方法向目标端口发送一个不包含任何标志的分组。根据RFC793,对于所有关闭的端口,目标系统也应该返回RST标志。根据这一原理就可以判断哪些端口是开放的。
*
端口扫描技术(续)
UDP Scan(UDP协议扫描)
该种扫描使用UDP协议。其向目标端口发送一个UDP分组。如果目标端口响应一个“ICMP port Unreachable”(ICMP端口不可到达)消息,那么该端口是关闭的。相反,如果没有收到这个消息那可以推断该端口打开着。
由于UDP是无连接的不可靠协议,因此这种方式的准确性很大程度上取决于网络等多个因素。
另外,当试图扫描一个大量应用分组过滤功能的设备时,UDP扫描将是一个非常缓慢的过程。
*
常用扫描器介绍
X-Port
X-Port提供了两种端口扫描方式: TCP连接扫描和TCP SYN扫描。下图是使用X-Port扫描目标主机的结果。
*
常用扫描器介绍(续)
Advanced Port Scanner
Advanced Port Scanner是图形界面端口扫描工具,扫描实例如图所示 。
*
常用扫描器介绍(续)
Nmap
Nmap是一款针对大型网络的端口扫描工具。 。直接在命令提示符下输入Nmap命令即可得到如下图所示的功能和使用介绍。
*
常用扫描器介绍(续)
SuperScan
SuperScan是一个集“端口扫描”、“ping”、“主机名解析”于一体的扫描器。下图是SuperScan的扫描结果界面。
操作系统检测
主机使用的操作系统不同,主机可能存在的漏洞也大相径庭。
操作系统检测的方法主要有三类:一是通过获取旗标信息,二是利用端口信息,三是分析TCP/IP协议栈指纹。
*
操作系统检测(续)
(1)获取旗标信息
(2)利用端口信息
(3)分析TCP/IP协议栈指纹
FIN标志位探测
TCP ISN取样
TCP初始化窗口大小
ACK确认号的值
TCP选项
ICMP差错报告报文统计
ICMP消息引用
*
漏洞扫描
漏洞是信息系统在硬件、软件、协议的具体实现和系统安全策略等方面存在的缺陷和不足。
漏洞的存在使得攻击者有可能在未授权的情况下访问系统,甚至对系统进行破坏。
漏洞扫描对计算机管理员和攻击者而言都有重要意义。
*
漏洞扫描(续)
根据扫描方法的不同,可以将漏洞扫描分为基于主机的漏洞扫描和基于网络的漏洞扫描。
基于主机的漏洞扫描要求在被检查系统上安装特定的扫描程序,并且赋予程序管理员权限,以确保程序能够访问操作系统内核、系统配置文件以及系统中的各类应用程序。
*
漏洞扫描(续)
基于网络的漏洞扫描要求扫描主机与被扫描的目标系统通过网络相连,两台主机之间能够进行正常的网络通信。在扫描的过程中主要综合两方面的信息掌握目标系统的漏洞情况。首先,利用端口扫描的结果。其次,模拟简单的攻击活动,对目标系统进行攻击性测试。
*
漏洞扫描(续)
例如,要判别“HTTP IIS sample”漏洞,可以向目标IIS服务器发出如下一些HTTP请求。
1)GET/iissamples/exair/howitworks/codebrws.asp;
2)GET/iissamples/sdk/asp/docs/codebrws.asp;
3)GET/iissamples/ exair/howitworks/code.asp;
4)GET/msadc/samples/selector/showcode.asp;
5)GET/scripts/tools/newdsn.exe。
*
*
5-3-4网络侦听Sniffer攻击
网络侦听Sniffer攻击是一种威胁性极大的被动攻击。通过它可以监视网络的状态、数据流动情况以及网络上传输的信息。
在向内网入侵渗透时,经常会用到嗅探手法,也就是利用嗅探器来截获网络上传输的口令。
*
内容
攻击原理
交换网络侦听攻击
Sniffer工具
*
攻击原理
共享以太网数据传输通过广播传输媒体实现,即从理论上讲,同一个网段的所有网络接口都有访问在物理媒体上传输的所有数据的能力。如果某个网络接口处于混杂(promiscuous)模式,那么它就可以捕获网络上的所有数据帧。
Sniffer就是一种利用以太网的这种特性将网卡设置为混杂模式状态的工具,一旦网卡设置为这种模式,它就能接收传输在网络上的每一个数据包。
*
交换网络侦听攻击
对于被嗅探而言,交换以太网的确比共享以太网安全许多,但也非绝对免疫。下面的方法可以用来嗅探交换环境下的数据。
ARP欺骗
MAC泛滥(MAC Flooding)
伪造MAC地址
ICMPRouterAdvertisements
*
Sniffer工具
Microsoft's Net Monitor:这个工具运行在MS Windows 平台上。它能够对MAC地址(或主机名)进行网络统计和会话信息监视。只需简单地单击某个会话即可获得tcpdump标准的输出。
*
Sniffer工具
x-sniffer
命令行方式的嗅探工具,其嗅探到的数据经过多重过滤,很容易得到想要的数据。可捕获局域网内FTP/SMTP/POP3/HTTP协议密码。如下图是使用x-sniffer对TCP协议的一个密码嗅探任务的返回信息。
*
Sniffer工具
EffeTech HTTP Sniffer
针对HTTP协议进行嗅探的sniffer工具,如图所示 。
*
Sniffer工具
Ethereal
Ethereal 是一种开发源代码的许可软件,允许用户向其中添加改进方案。
Ethereal 适用于当前所有较为流行的计算机系统,包括 Unix、Linux 和 Windows。Ethereal对数据的抓取很全面,不过在辅助方面就比较粗糙,例如流量分析。
*
Sniffer工具
SnifferPro
NAI的一款Sniffer软件。SnifferPro在协议的过滤和流量分析的一些小细节上做得很出色,但对于一些比较琐碎的数据进行分析时,Ethereal要好一些。
对于想从大量的已获数据中分析和获得一些小的获比较零散的信息时,推荐使用Ethereal;而对于大型网络的流量分析和观察,则使用SnifferPro。
*
网络侦听攻击的防范
加密:目前有许多软件包可用于加密连接,从而使入侵者即使捕获到数据,但无法将数据解密而失去窃听的意义。
入侵检测:使用诸如Tripwire之类的工具,生成文件系统的MD5"数据指纹",及时发现被修改的系统文件。
使用antisniffer软件。
*
5-3-5拒绝服务DoS攻击
拒绝服务DoS(Denial of Service):任何对服务的干涉并且使得其可用性降低或者失去可用性均称为拒绝服务。
*
拒绝服务DoS攻击
DoS攻击:造成拒绝服务的攻击,具体来说即攻击者通过某种手段,有意地造成计算机或网络不能正常运转从而不能向合法用户提供所需要的服务或者使得服务质量降低。
*
拒绝服务DoS攻击
从20世纪90年代到现在,DoS技术主要经历了以下阶段:
技术发展时期
从实验室向产业化转换
商业时代
*
内容
概述
分布式拒绝服务攻击
典型的拒绝服务攻击
拒绝服务攻击工具
DDoS攻击工具
UDP FLOOD攻击实例
DDoS攻击的解决办法
*
概述
DoS攻击大致可分为三类
由于协议漏洞导致的,也称杀手包或剧毒包(Killer Packet)型攻击
利用合理的服务请求来占用过多的服务资源,致使服务超载,无法响应其他的请求,称为风暴型(Flood Type)攻击 ,或带宽攻击(Bandwidth Attack)
另一类是重定向型攻击,它通过修改网络中的一些参数,如ARP表、DNS缓存,使得受害者发出的或发向受害者的数据包被重定向到别的地方。
*
分布式拒绝服务攻击
分布式拒绝服务攻击:攻击的发出点是分布在不同地方的,处于不同位置的多个攻击者同时向一个或数个目标发起攻击,或者一个或多个攻击者控制了位于不同位置的多台机器并利用这些机器对受害者同时实施攻击。
*
分布式拒绝服务攻击(续)
DDoS攻击与DoS攻击
一般而言,除了规模以外,DDoS攻击与DoS攻击没有本质上的区别
广义上讲,DDoS攻击也是DoS攻击,只是把多个攻击主机发起的协同DoS攻击称为DDoS攻击。
狭义上讲,DoS是传统的拒绝服务攻击,指的是单一攻击者针对单一受害者的攻击。而DDoS攻击则是相对较新型的拒绝服务攻击,指多个攻击者向一个受害者发起攻击,具有攻击来源的分散性和攻击力度的汇聚性(攻击力度比单一的DoS攻击大很多)。
*
分布式拒绝服务攻击(续)
一个完善的DDoS攻击体系可由攻击者、主控端、代理端和被攻击者四部分组成,如下图所示。
攻击者
主控端
代理端
被攻击者
主控端
代理端
代理端
代理端
……
*
分布式拒绝服务攻击(续)
一般来说,DDoS攻击的典型过程可以分为3个阶段,即信息收集、占领傀儡计算机和攻击实施。
*
典型的拒绝服务攻击
(1)剧毒包型DoS攻击
典型的剧毒包型DoS攻击有Ping of death攻击和循环攻击等。
典型的拒绝服务攻击(续)
循环攻击
循环攻击,也称为死锁(Deadlock)或振荡攻击(Oscillate Attack)。其原理是当两个都会产生输出的端口之间建立连接以后,第一个端口的输出成为第二个端口的输入,导致第二个端口产生输出,同时第二个端口的输出又成为第一个端口的输入,如此,在两个端口间将会有大量的数据包产生,导致拒绝服务,如Echo Chargen攻击。
*
*
典型的拒绝服务攻击(续)
Ping of death攻击 :也称为Ping O‘ death,国内有的译作“死亡之Ping”。
利用协议实现时的漏洞,向受害者发送超长的Ping数据报,导致受害者系统异常。
现在常用的操作系统已经改正了某些错误,不允许轻易的发超大数据包了。如下图。
典型的拒绝服务攻击(续)
(2)风暴型DoS攻击
风暴型DoS攻击典型的有Ping风暴攻击、SYN风暴攻击、TCP链接耗尽攻击、UDP风暴攻击、HTTP风暴攻击和Smurf攻击等。
风暴型拒绝服务攻击一般又分为两类:直接风暴型和反射型
*
典型的拒绝服务攻击(续)
直接风暴型拒绝服务攻击
典型的代表有SYN风暴攻击、Ping风暴攻击、TCP连接耗尽攻击、HTTP风暴型攻击、UDP风暴攻击
*
*
典型的拒绝服务攻击(续)
SYN风暴攻击(SYN Flood攻击)
SYN Flood攻击是最常见的一种攻击。据统计,有90%的拒绝服务攻击使用的是TCP协议,而SYN Flood攻击又是其中最常用的一种攻击。
在TCP的连接建立过程中,服务器需要保持所有未完成的握手信息即半开连接直到握手完成或超时以后丢弃该信息。由于半开连接的数量是有限的,如果攻击者不停地向受害者发送连接请求,而又不按协议规定完成握手过程,则服务器的半开连接栈可能会用完,从而不再接受其他的连接请求。
*
典型的拒绝服务攻击(续)
PING风暴攻击
向受害者发送大量的ICMP回应请求(ICMP Echo Request,即Ping)消息,使受害者系统忙于处理这些消息而降低性能,可能导致系统无法对其他的消息做出响应。
*
典型的拒绝服务攻击(续)
TCP连接耗尽攻击
TCP连接耗尽攻击向受害着主机发起连接请求,即发送TCP SYN数据包。
与SYN Flood攻击不同的是,它通常会完成三次握手过程,即建立TCP连接。通过建立很多的TCP连接耗尽受害主机的连接资源,从而无法接受正常用户的连接请求,因此也称为空连接攻击。
与SYN Flood攻击还有一点不同的是,它不需要不停地向受害主机发起请求,只需要连接数量到达一定程度即可。而SYN Flood攻击必须不停地发送连接请求,一旦停下来受害主机即可恢复。
典型的拒绝服务攻击(续)
HTTP风暴型攻击
HTTP风暴型攻击的攻击原理是利用HTTP对网页进行的语义上合法的请求,不停地从受害主机处获取数据,占用连接的同时占用网络带宽。
为了尽可能扩大攻击效果,这种攻击一般会不停地从受害着网站上下载大的文件(如大的图像和视频文件),从而使一次请求占用系统更多的资源。
一般的连接耗尽型攻击只占用连接,并见得有太多的数据传输。
这种攻击的缺点是一般要使用真实的IP地址(通常是被攻击者控制的傀儡主机的IP地址)。
*
*
典型的拒绝服务攻击(续)
UDP风暴攻击(UDP Flood攻击)
UDP风暴通常的主要目的是占用网络带宽,达到阻塞网络的目的,因此通常UDP风暴攻击的数据包会比较长。
UDP风暴也用来攻击终端结点,如果处于网络终端结点的受害者收到的UDP包足够多,则受害者系统可能崩溃。
典型的拒绝服务攻击(续)
反射型拒绝服务攻击
与直接风暴型拒绝服务攻击不同的是,反射型拒绝服务攻击在实施时并不直接向目标主机发送数据包,而是通过中间主机(反射器)间接向目标主机发送大量数据包,以达到拒绝服务器攻击的目的。
反射型拒绝服务攻击的典型代表如Smurf攻击。
*
*
典型的拒绝服务攻击(续)
Smurf攻击
攻击者假冒受害者的IP向网络上的某个或一些IP广播地址发送大量的ICMP回应请求(即Ping)消息,由于多数的网络主机会监听广播地址,因此当这些主机收到这些ICMP回应请求消息时,就会向请求包的源IP地址回应一条ICMP应答消息。
这样,攻击者每发送一个数据包,受害者就会收到很多的回应包,从而对受害者机器造成拒绝服务攻击。
典型的拒绝服务攻击(续)
(3)僵尸网络
僵尸网络(Botnet)是僵尸主人(BotMaster)通过命令与控制信道控制具有协同性的恶意计算机群。其中,被控制的计算机称为僵尸主机(Zombie,俗称“肉鸡”);僵尸主人用来控制僵尸主机的计算机程序称为僵尸程序(Bot)。
僵尸网络在控制者和被感染主机之间形成一对多控制的网络。在执行恶意行为的时候,僵尸网络充当了攻击平台的角色,是一种效能巨大的攻击武器。
僵尸网络的一个主要威胁是作为攻击平台对指定的目标发起DDos攻击。
*
典型的拒绝服务攻击(续)
按照Botnet控制方式,主要有IRC僵尸网络和P2P僵尸网络。
1)IRC僵尸网络。IRC僵尸网络是指控制和通信方式为利用IRC协议的僵尸网络。
*
IRC服务器
bot
bot
bot
被攻击对象
控制者
典型的拒绝服务攻击(续)
按照Botnet控制方式,主要有IRC僵尸网络和P2P僵尸网络。
2)P2P Botnet。这类Botnet中使用的bot程序本身包含了P2P的客户端,可以连入已有的P2P服务器,因此利用公开的P2P协议可以方便地进行相互通信。
*
*
DDoS攻击工具
Trinoo和Wintrinoo :通常采用UDP Flood攻击方式向目标主机发送大量无用的UDP数据包,达到消耗网络和主机资源的目的 .
*
DDoS攻击工具(续)
TFN和TFN2K
TFN(Tribe Flood Network)是Unix环境中一款经典的DDoS攻击工具,包括主控端程序和代理端程序,可以进行SYN Flood、Smurf、ICMP Flood等攻击。
TFN2K是TFN的一个改进版本,它在原有TFN功能基础上,增加了主控端和代理端的保密通信功能以及源地址伪装功能,并且可以随机指定相互间通信时采用的端口
*
DDoS攻击工具(续)
Stacheldraht:由TFN派生出来并在功能上得到了大大增强,例如增加了主控端和代理端的保密通信功能,并且可以自动升级守护程序。
*
UDP FLOOD攻击实例
UDP Flooder是一种采用UDP风暴攻击方式的DoS软件,它可以向特定的IP地址和端口发送UDP包,如下图所示。
*
UDP FLOOD攻击实例(续)
在被攻击计算机上用系统监视器对UDP监视可以看出UDP包数量的突然增加,如图5-36。
*
5-3-6欺骗攻击
在网络上,计算机之间进行相互交流是建立在认证和信任的前提下。欺骗攻击就是通过伪造源于可信任地址的数据包以使一台机器相信和认证另一台机器的复杂技术。
常见的欺骗攻击方式有:IP欺骗、ARP欺骗、DNS欺骗等。
*
内容
IP欺骗
DNS欺骗
*
IP欺骗
在TCP/IP网络上的每一个数据包都包含着源系统和目标系统的IP地址。
IP欺骗就是通过伪造其他系统的IP地址,使得攻击者能够获得未被授权访问的信息。
IP欺骗是利用了主机间的信任关系发动的。
*
IP欺骗原理
在UNIX主机中,存在着基于IP地址的信任关系。
例如主机A和B之间的信任关系是基于IP地址而建立起来的,那么加入能够冒充主机B的IP,就可以使用Rlogin登录到主机A,而不需要任何密码验证。这就是IP欺骗的最根本的理论依据。
*
IP欺骗攻击过程
攻击者使被信任主机的网络功能暂时瘫痪,以免对攻击造成干扰。
攻击者连接到目标主机的某个端口来猜测ISN基值和增加规律。
攻击者发送带有SYN标志的数据段给目标主机请求建立连接,该数据段的源IP地址被伪装成被信任主机的IP。
*
IP欺骗攻击过程(续)
攻击者等待目标主机发送SYN+ACK包给已经瘫痪的被信任主机。
攻击者伪装成被信任的主机向目标主机发送ACK,此时发送的数据段带有预测的目标机的ISN+1。
连接建立,发送命令请求。
*
IP欺骗攻击实例
IP欺骗是一种复合型网络攻击技术,主要技术包括IP地址伪造技术、TCP SYN洪流攻击技术与TCP序列号猜测等技术。下面我们通过一个真实实例来分析一个完整的攻击过程。
IP欺骗的创始人凯文·米特尼客成功地使用IP欺骗技术攻破了SanDiego计算机中心。
*
IP欺骗攻击实例(续)
整个过程卷入三台主机:  
Server:一台运行Solaris的Sparc工作站
x-terminal:被一台运行Solaris的无盘工作站
target:攻击的主要目标
*
IP欺骗攻击实例(续)
是他事先攻破的系统,用来做跳板。他在上运行了以下命令:
#finger Cl @target
#finger Cl @server
#finger Cl root@server
#finger Cl @x-terminal
#shownoumt Ce x-terminal
#rpcinfo Cp x-terminal
#finger Cl root@x-terminal
*
IP欺骗攻击实例(续)
大约在六分钟之后,tcpdump检测到TCP SYN包从130.92.6.7猛烈的涌向Server的513(rlogin)端口,即使用SYN Flood拒绝服务攻击server,以使他失去工作能力。这也就是前面提到的第一步。因为513端口是以root权限运行的,所以现在server.login可以被用来作为进行IP欺骗的伪造源了。攻击方IP130.92.6.97 也是一个伪造的IP,这样它才不会接收到server的回应包。Tcpdump记录如下:
*
IP欺骗攻击实例(续)
14:18:22:516699 130.92.6.97.600 > server.login: S 1382726960:1382726960(0) win 4096
14:18:22:566069130.92.6.97.600 > server.login: S 1382726961:1382726961(0) win4096
14:18:22:744477 130.92.6.97.600 > server.login: S 1382726962:1382726962(0) win 4096 14:18:22:830111 130.92.6.97.600 > server.login: S 1382726963:1382726963(0) win 4096 14:18:22:886128 130.92.6.97.600 > server.login: S 1382726964:1382726964(0) win 4096
……
*
IP欺骗攻击实例(续)
在连接序列被塞满之前,Server对前八个SYN请求做出了SYN+ACK回应,一旦没有ACK包回应它,server将周期性地重发SYN+ACK包。
接下来我们看到20个从apollo.it.luc.edu发向x-terminal.shell的连接请求,其目的是预测 server的TCP序列号生成器的行为。从每个连接的初始序号的增量可以看出SYN包不是通过系统的TCP执行产生的。因为x-terminal是黑客所要攻击的目标,因此对于每个连接,攻击者立刻RST包来断开,以使x-terminal的连接序列不至于被塞满。
*
IP欺骗攻击实例(续)
下面是这个过程:
14:18:25.906002 apollo.it.luc.edu.1000> x-terminal.shell:S 1382726990:1382726990(0) win 4096
14:18:26.094731 x-terminal.shell > appollo.it.luc.edu.1000:S 2021824000:20218240000(0) ack 1382826991 win 4096
…………………………………………
*
IP欺骗攻击实例(续)
x-terminal 发出的每一个SYN+ACK包的初始序例号都比前一个增加了128000字节。Server.lgoin的伪造SYN请求发往了x-terminal.shell。x-terminal信任server,因此会响应来自server 或者伪装成server的主机的所有请求。
之后x-terminal用SYN+ACK包回应了server的连接请求,这时因为server仍然处于瘫痪状态,所以它不会响应来自于x-terminal的包。因为攻击者能够预测出x-terminal的TCP序列号,所以他不用看到SYN+ACK就可以发出回应的ACK包,如下:
*
IP欺骗攻击实例(续)
14:18:36.245045 server.login > x-terminal.shell: S 1382727010(0) win 4096
14:18:36.755522 server.login >x-terminal.shell .ack 2024384001 win 4096
到目前为止,伪装成server的主机已经通过IP欺骗与x-terminal.shell建立了一次正常的rsh连接,这时一旦x-terminal做出任何应答,攻击者就可以维持连接并且发送出数据,下面是用tcpdump记录下来的他发送的数据:
14:18:37.265404 server.login > x-terminal.shell: P 0:2(2)ack 1 win 4096
14:18:37.775872 server.login > x-terminal.shell: P 2:7(5)ack 1 win 4096
14:18:37.287404 server.login > x-terminal.shell: P 7:32(25)ack 1 win 4096
*
IP欺骗攻击实例(续)
这些数据对应的命令是server#rsh x-terminal “echo ++ >>/.rhosts”,即在x-terminal上建立起使得任何主机都可以无须口令而进行访问的/.rhosts文件。之后,攻击者断开了欺骗连接。到目前为止,IP欺骗攻击已经完成了,米特尼克成功地获得了x-terminal上的一个Shell。
*
IP欺骗的预防
抛弃基于地址的信任策略
进行包过滤
使用加密方法
使用随机化的初始序列号
DNS欺骗
DNS欺骗即域名信息欺骗是最常见的DNS安全问题。
当一个DNS服务器使用了来自恶意DNS服务器的错误信息时,该DNS服务器就被欺骗了。
DNS欺骗会导致许多安全问题,如,将用户引导到错误的网站,发送一个电子邮件到一个未经授权的邮件服务器。通常有以下几种方法进行DNS欺骗。
*
DNS欺骗(续)
缓存感染
攻击者会熟练地使用DNS请求,将数据放入一个没有设防的DNS服务器的缓存中。这些缓存信息会在客户进行DNS访问时返回给客户,从而将客户引导到入侵者所设置的运行木马的Web服务器或邮件服务器上。
DNS信息劫持
攻击者通过监听客户端和DNS服务器的对话及猜测服务器响应给客户端的DNS查询ID。每个DNS报文包括一个相关联的16位ID号,服务器根据这个ID号获取请求源位置。攻击者在DNS服务器之前将虚假的响应返回给客户,从而欺骗客户段去访问恶意的网站。
*
DNS欺骗(续)
防范DNS欺骗攻击可以采取如下措施
① 关闭DNS服务器的递归功能。
② 不要依赖DNS。
③ 使用入侵检测系统。
④ 使用DNSSEC(Domain Name System Security Extensions)。
*
*
5-3-7特洛伊木马
特洛伊木马(Trojan Horse),简称木马,其名称来源于希腊神话 。
一种恶意程序,一旦侵入用户的计算机,就悄悄地在用户计算机上运行,在用户毫无察觉的情况下攻击者便获得了远程访问和控制系统的权限。
*
内容
木马定义
木马基本原理
木马开发技术
木马攻击示例
反木马软件开发思路
*
木马定义
一种基于远程控制的黑客工具 。
与合法的远程控制软件比较
隐蔽性
非授权性
与计算机病毒的比较
病毒的最大特点是自我复制即传染性,而木马一般不进行自我复制
不具有普通病毒所具有的自我繁殖、主动感染传播等特点
木马具有寄生性
*
木马定义(续)
木马特点
隐蔽性
非授权性
自动运行
欺骗性。
体积小,执行时不会占太多的资源
自动恢复
*
木马基本原理
C/S(Client/Server,客户/服务器)结构
配置程序
木马程序
控制程序
木马服务器端
木马控制端(客户端)
配置
控制
响应
*
木马开发技术
特洛伊木马是从Unix平台上产生出来,在Windows操作系统上“发扬光大”的。木马技术发展至今,经历了四代 。
第一代木马,只是进行简单的密码窃取、发送等,在隐藏技术和通信技术方面没有特别之处。
第二代木马,技术和功能出现了质的变化。现代木马的雏形,提供了几乎所有的远程控制操作。典型代表如:BO2000和Sub7 、冰河等。
第三代木马,在信息传输方式上有了很大的突破,出现了反弹端口、ICMP等类型的木马 。 典型代表如灰鸽子等。
第四代木马 ,在进程隐藏方面做了很大的改进。典型代表如广外男生等。
*
木马开发技术(续)
自启动技术:自启动功能是必不可少的,这样可以保证木马不会因为用户的一次关机操作而彻底失去作用。自启动方法有很多,现将一些方法列举如下:
加载程序到启动组
写程序启动路径到注册表的自启动项
修改文件关联
捆绑文件
*
木马开发技术(续)
隐藏技术:木马的服务器端为了避免被发现,要进行隐藏处理。
隐藏方式:真隐藏和伪隐藏
伪隐藏即程序的进程仍然存在,只不过不显示在进程列表中
真隐藏则是让程序彻底消失,不是以一个进程或服务的方式工作
特洛伊DLL技术和远程线程技术
*
木马开发技术(续)
秘密通信技术:不让用户察觉到服务器端和客户端的数据通信。
端口隐藏技术
反向连接技术
隐蔽通道技术
*
木马攻击示例
下面以广外男生为例介绍木马的配置和攻击 ,广外男生界面如下图所示 。
*
木马攻击示例(续)
配置该木马的思路为:客户端设置、服务端设置、种植木马、等待自动上线、远程控制主机。
步骤1:客户端设置。打开广外男生客户端,选择菜单“设置”|“客户端设置”,打开“广外男生客户端设置程序”向导对话框进行客户端设置,如下图所示。
*
木马攻击示例(续)
*
木马攻击示例(续)
步骤2:服务端设置。选择菜单“设置”中的“生成服务端”,打开“广外男生服务端生成向导”进行服务端设置,如下图所示。
*
木马攻击示例(续)
步骤3:种植木马。当服务端程序配置成功后,下一步入侵者就要想方设法让受害者主机执行该木马服务端程序,即种植木马。
步骤4:等待服务端自动上线。远程主机执行木马服务端后建立连接,一旦连接建立,在客户端便可看到自动上线的主机,如下图所示。通过服务端的主机,还能直接访问这台主机所在的内网。
步骤5:远程控制主机。
*
木马攻击示例(续)
*
反木马软件开发思路
目前,在反病毒技术领域中有特征码、虚拟机等技术,这些技术对木马不适合。
木马虽然种类繁多,功能各不相同,但其都具有一些关键的行为特征。因此对于木马的识别应该从木马程序行为角度考虑,而不是从木马的文件结构上考虑。如VCS抓毒精灵技术 。
*
5-3-8蠕虫
原本是个生物学名词
1982年Xerox PARC的John F.Shoch等人将其引入计算机领域,并给出了计算机蠕虫的两个基本特征:“可以从一台计算机移动到另一台计算机”和“可以自我复制”。
1988年Morris蠕虫,开启了
蠕虫新纪元。
*
内容
蠕虫的定义
蠕虫的基本原理
“SQL Slammer”蠕虫分析
蠕虫的检测
*
蠕虫的定义
Lover Letter网络蠕虫病毒、Melissa网络蠕虫宏病毒、冲击波病毒、红色代码病毒等是蠕虫还是病毒?
*
蠕虫的定义(续)
蠕虫的原始定义:”Worm is a program that can run by itself and can propagate a fully working version of itself to other.”(计算机蠕虫是可以独立运行,并能把一个包含其自身所有功能的一个版本传播到另外的计算机上。)
计算机病毒的定义:”A program that can ‘infect’ other programs by modifying them to include a possibly evolved copy of itself.”(计算机病毒是一种可以感染其他程序的程序,感染的方式为在被感染程序中加入计算机病毒的一个副本,这个副本可能是在原病毒基础上演变过来的。)
*
蠕虫的定义(续)
1988年Morris蠕虫爆发后,Engene H. Spafford为了区别蠕虫和病毒,将病毒的含义作了进一步的解释:”Virus is a piece of code that adds itself to other programs, including operating system. It cannot run independently and it requires that its ‘host’ program be run to activate it.”(计算机病毒是一段代码,能把自身添加到其他程序中,包括操作系统上。它不能独立运行,需要由它的宿主程序运行来激活它。)
*
蠕虫的定义(续)
类别 计算机病毒 计算机蠕虫
存在形式 寄生 独立个体
复制机制 插入到宿主程序中 自身的拷贝
传染机制 宿主程序运行 系统存在漏洞
传染目标 主要针对本地文件 主要针对网络上的其他计算机
触发传染 计算机使用者 程序自身
影响重点 文件系统 网络性能、系统性能
计算机使用者所处角色 病毒传播的关键环节 无关
防治措施 从宿主程序中删除 为系统打补丁
对抗主体 计算机使用者、反病毒厂商 系统提供商、网络管理员
*
蠕虫的基本原理
蠕虫程序的工作流程可以分为漏洞扫描、攻击、复制三个阶段。
漏洞扫描
当程序向某个主机发送探测漏洞的信息并收到成功的反馈信息后,就得到一个可攻击(传播)的对象。
按蠕虫对目标地址空间的选择方式进行分类,扫描策略包括:选择性随机扫描、顺序扫描、基于目标列表的扫描、基于路由的扫描、基于DNS扫描、分治扫描等。
复制
蠕虫通过原主机和新主机之间的交互,将蠕虫程序复制到新主机并启动
*
“SQL Slammer”蠕虫分析
“SQL Slammer”蠕虫,大量占用网络带宽,最终导致网络瘫痪。
本身非常小,仅仅是一段376个字节的数据。
利用Microsoft SQL Server 2000 Resolution服务远程栈缓冲区溢出漏洞,通过向其解析端口1434(SQL Server Resolution服务)发送包含恶意代码的数据包进行攻击。
*
“SQL Slammer”蠕虫分析(续)
抓包分析结果如图所示
*
“SQL Slammer”蠕虫分析(续)
“SQL Slammer”攻击成功时的内存布局
FF E4 “JMP ESP”
HKLM\Software\Microsoft\Microsoft SQL Server\
04 01 01 01 01 01 01 01 01 01 01 01 01 01
42B0C9DC
EB 0E 01 01 01 01 01 01 01 70 AE 42 01
\MSSQLServer\CurrentVersion
缓冲区
函数返回地址
42B0C9DC
*
蠕虫的检测
基于特征的检测技术
模式匹配
高效、准确
不能检测未知蠕虫
网络黑洞检测技术
通过对与网络黑洞相关的数据包的监控来实现恶意行为的检测
对所有扫描全网的蠕虫都适用
对于采用队列扫描和基于目标列表扫描的蠕虫来说不适用
*
蠕虫的检测(续)
基于流量的检测方法
利用没有蠕虫与有蠕虫时流量的差异性来实现蠕虫的检测
难点是各种参数阈值的确定,它影响着检测结果的准确性
能及时地检测未知的蠕虫
校验和技术
首先在系统没有感染蠕虫的情况下生成检测数据,然后周期性地用校验和检测文件的改变
校验和技术不能检测文件是否被蠕虫感染,它只是查找变化。另外,蠕虫可以采用各种手段欺骗校验和检测法,使之认为文件没有改变
*
5-4入侵检测技术
5-4-1入侵检测技术分类
5-4-2入侵检测基本工作原理
5-4-3入侵检测系统应用
*
入侵检测技术(续)
入侵检测,是对入侵行为的发觉。它通过对计算机网络或计算机系统中的若干关键点收集信息并对其进行分析,从中发现网络或系统中是否有违反安全策略的行为和被攻击的迹象。
入侵检测系统(Intrusion Detection System,简称IDS):进行入侵检测的软件与硬件的组合。
*
入侵检测技术(续)
入侵检测作为一种积极主动地安全防护技术,提供了对内部攻击、外部攻击和误操作的实时保护,在网络系统受到危害之前拦截和响应入侵。
IDS是防火墙的合理补充。
*
5-4-1入侵检测技术分类
根据数据来源(信息源)分类
基于主机的入侵检测
基于网络的入侵检测
混合型入侵检测
*
入侵检测技术分类(续)
基于主机的入侵检测
主要用于保护运行关键应用的服务器
获取数据的依据是系统运行所在的主机,保护的目标也是系统运行所在的主机
通过监视与分析主机的审计记录和日志文件,并辅以主机上的其他信息,例如文件系统属性、进程状态等来检测入侵
一类特殊的基于主机的入侵检测系统是基于应用的入侵检测系统,数据源是应用程序的日志
早期的系统原型有SRI的IDES和NIDES、Haystack系统、Los Alamos的NADIR、Wisdom&Sense系统等
*
入侵检测技术分类(续)
基于网络的入侵检测
数据来源是网络传输的数据包,保护的目标是网络的运行。
它实时监控网络关键路径的信息,采集数据,并通过协议分析、特征匹配、统计分析等手段发现当前的攻击行为。
*
入侵检测技术分类(续)
基于网络的入侵检测和基于主机的入侵检测比较
检测到的内容
受加密和交换设备等的影响
移植性
对所保护主机的影响
入侵活动识别
网络环境下发生的大量攻击行为的及时反应
*
入侵检测技术分类(续)
混合型入侵检测
既基于主机又基于网络,因此混合型一般也是分布式的
典型系统有:DIDS系统 、SRI的EMERALD系统 、UC Davis设计的GrIDS(Graph-based IDS)系统、Purdue大学设计的AAFID系统
*
入侵检测技术分类(续)
根据分析方法分类
异常检测(Anomaly Detection)
检测系统的行为或使用情况的变化
可以检测到未知的入侵行为
误用检测(Misuse Detection)
Misuse Detection也被译为滥用入侵检测。误用检测基于已知的系统缺陷和入侵模式,故又称为特征检测。
收集入侵行为的特征,建立相关的特征库;在后续的检测过程中,将收集到的数据与特征库中的特征代码进行比较,得出是否是入侵的结论 。
*
入侵检测技术分类(续)
根据时效性分类
脱机检测
非实时工作的系统
在行为发生后,对产生的数据进行分析
联机检测
在数据产生或者发生改变的同时对其进行检查,以发现攻击行为
*
入侵检测技术分类(续)
根据分布性分类
集中式
系统的各个模块包括数据的收集与分析以及响应模块都集中在一台主机上运行
分布式
系统的各个模块分布在网络中不同的计算机、设备上,一般来说分布性主要体现在数据收集模块上
*
5-4-2入侵检测基本工作原理
下图所示是一个通用的入侵检测系统结构
数据
数据采集
数据
数据预处理
事件
数据分析
事件
结果处理
数据
事件
*
入侵检测基本工作原理(续)
数据采集
数据的来源可以是主机上的日志信息、变动信息,也可以是网络上的数据信息,甚至是流量变化等
获取数据的途径:抓包、日志工具等。
数据预处理
去除一些明显无用的信息;数据分类;将相关的数据合并;格式转换
数据分析
数据分析模块又称为检测引擎,是IDS的核心模块
完成对事件的分析和处理
*
入侵检测基本工作原理(续)
结果处理
根据报警信号,人工或自动做出反应动作,采取相应措施,可以是重新配置路由器或防火墙、终止进程、切断连接、改变文件属性,也可以只是简单的报警。
“蜜罐”(Honeypot)诱饵机
现在某些IDS可能还包括一个所谓的“蜜罐”(Honeypot)诱饵机
作为IDS中一个专门提供给攻击者进行入侵的探测器来使用,从而提供关于某次攻击行为发生过程的相关信息
*
5-4-3入侵检测系统应用
Snort是Martin Roesch等人开发的一种开放源代码的入侵检测系统,符合GPL(GNU General Public License)的要求。
Snort是一个轻量级、跨平台的网络入侵检测系统,基于误用检测技术,可支持Linux、Windows等多种操作系统平台。
*
入侵检测系统应用(续)
Snort采用基于规则的网络信息搜索机制,对数据包进行内容的模式匹配,从而发现入侵和探测行为,并进行实时报警。
Snort安装在一台主机上对整个网络进行监视,其典型运行环境如下图所示。
*
入侵检测系统应用(续)
Snort的组成
数据包解码器:对各种协议栈上的数据包进行解析、预处理,以便提交给检测引擎进行规则匹配。
检测引擎:用一个二维链表存储检测规则,其中一维称为规则头,另一维称为规则选项。
日志与报警系统
*
入侵检测系统应用(续)
Snort的规则
Snort的规则在逻辑上分为两部分:规则头和规则选项。
规则头定义了规则的行为,所匹配网络报文的协议、源地址、目标地址及其子网掩码、

展开更多......

收起↑

资源预览