网络安全学期总结

zhyjc6于2020-01-01发布 约47067字·约104分钟 本文总阅读量

安全现状

表单劫持攻击

Formjacking 是网络攻击者窃取信用卡信息和个人信息最高效的手段之一。

攻击者将恶意JavaScript代码植入电子商务网站,当消费者在购物表格中输入银行信息并选择支付时,恶意软件将会收集消费者所有信息,包含信用卡信息、用户姓名和邮件地址等。

攻击者可能会使用盗窃来的个人信息进行其它网络购买支付,还有可能将泄露的信息抛售给暗网上的其他网络罪犯。

挖矿攻击

攻击者在目标系统中秘密地安装加密货币挖矿软件。该软件一般只消耗CPU算力和电力来处理加密货币交易,攻击者以此赚取佣金,佣金一般是匿名地加密门罗币。

供应链攻击

修改软件下载源头的软件代码,植入恶意代码,并诱导用户下载使用是这种攻击的主要特征。

例如利用用户讨厌苹果官网下载Xcode缓慢的情绪,诱导大家从百度网盘中下载修改版的Xcode,最终导致恶意程序逐步扩散开来。

离地攻击

离地攻击(living-off-the-land)二进制文件,简称为“LoLBins“。LoLBin是操作系统提供的二进制文件,通常用于合法目的,但也有可能被恶意行为者滥用。有一些默认存在的系统二进制文件可能会存在一些“副作用”,从而导致攻击者利用这些系统文件来隐藏他们的恶意活动。

一旦攻击者的恶意代码能与本地程序进行交互,那么攻击者就有可能利用系统的原生工具进行下一步攻击,包括下载附带的其它恶意代码、启动程序、执行脚本、窃取数据、横向扩展、维持访问等。

因为这些工具都是系统自带的、受信任的,所以反恶意软件技术也很难侦测和限制

MaaS

除了黄赌毒等传统的非法商品外,地下黑市还出现了包括黑客服务和恶意软件开发在内的新型服务:恶意软件即服务(Malware-as-a-Service,MaaS )。

网络犯罪分子通过地下黑客论坛浏览”商品“,同时使用匿名通讯工具进行在线交流,最后使用加密数字货币进行匿名交易,整个流程可以做到完全隐匿。即使是不具备任何技术经验的小白也可以使用购买来的工具轻易发动攻击。

RaaS

RaaS(ransomware-as-a-service,勒索软件即服务)

勒索软件是感染受害者的机器并阻止或加密他们的文件的恶意代码,黑客通过其来要求受害用户支付赎金。当勒索软件安装在受害者机器上时,它会搜索并定位敏感文件和数据,包括财务数据,数据库和个人文件。开发勒索软件的目的是为了让受害者的机器无法使用。用户只有两种选择:一是在没有获取原始文件的保证的情况下支付赎金,二是将 PC 从互联网断开。

勒索软件即服务是恶意软件销售商及其客户的盈利模式,使用这种方法的恶意软件销售商可以获取新的感染媒介,并有可能通过传统方法(如电子邮件垃圾邮件或受损网站)接触到他们无法达到的新受害者。RaaS 客户可以通过 Ransomware-as-a-Service 门户轻松获取勒索软件,只需配置一些功能并将恶意软件分发给不知情的受害者即可。

社会工程学

2002年,Kevin Mitnick 《The Art of Deception》首次提出社会工程学。

社会工程学是指,通过自然的、社会的和制度上的途径,利用人的心理弱点(如本能反应、好奇心、信任、贪婪)以及规则制度上的漏洞,在攻击者和被攻击者之间建立起信任关系,获得有价值的信息,最终可以通过未经授权的路径访问经过授权才能访问的资源。

网络安全态势

网络安全概述

资产保护

资源分类

造成损失

网络安全保障模型

网络攻击类型及分类

从安全属性来看,攻击类型可分为4类:阻断攻击、截取攻击、篡改攻击、伪造攻击

从攻击方式来看,攻击类型可以分为被动攻击和主动攻击

网络安全服务

针对不同攻击需要的安全服务:

机密性防护

完整性防护

可用性防护

可审性防护

Kerberos鉴别

Kerberos鉴别是一种使用对称密钥加密算法来实现 通过可信第三方密钥分发中心(KDC)的身份认证系统。

Kerberos 系统非常适合在一个物理网络并不安全的环境下使 用,它的安全性经过了实践的考验。

网络安全评估

安全评估准则

网络安全评估方式

风险评估常用方法

风险评估工具

风险评估基本过程

生存性评估典型方法

评估方式比较

网络安全标准

网络安全标准化组织

网络安全标准分类

网络攻击

DNS威胁与防范

DNS概述

域名系统(Domain Name System,DNS)负责在域名和IP地址间进行转换。网络上的机器是使用ip地址唯一标识的,要访问某一台主机,我们就输入其ip地址。但是人们为了方便记忆,发明了DNS,使得网站站长可以使用一个“别名”来唯一标识其网站,让用户更方便记住。如www.baidu.com.要使的别名能正确工作,就得配置好DNS.

因特网得域名系统被设计成为一个联机分布式数据库系统,并采用客户服务器方式运行。由于DNS是分布式系统,即使单个计算机出现故障,也不会妨碍整个系统得运行。

DNS使用的大多数名字都可以在本地解析,仅有少量解析需要在因特网上通信,因此效率很高

域名系统采用层次树状结构的命名方法,任何一个连接到因特网的主机或路由器都有一个唯一的层次结构的名字,即域名(Domain Name)。域还可以继续划分为子域,域名结构由若干分量组成,各分量之间用点隔开

如:三级域名.二级域名.顶级域名

域名资源记录

域名资源记录是一个五元组,可以用以下格式表示: Domain_name Time_to_live Class Type Value

其中:

域名资源类型

DNS常用命令

DNS工作流程

查询方式

递归查询:一般客户机和服务器之间是递归查询,DNS服务器如果未能在本地找到相应的信息,就代替用户向其它服务器进行查询,这时它是代替用户扮演了解析器(resolver)的角色,直到最后把结果找到,也可能根本没有结果,那就返回错误,并返回给用户为止

迭代查询:一般服务器之间属于反复查询。DNS服务器返回的要么是本地存在的结果信息,要么是一个错误码,告诉查询者你要的信息这里没有,然后再返回一个可能会有查询结果的DNS服务器地址,让查询者到那里去查一查。

DNS协议

DNS协议工作在应用层,既可以使用TCP也可以使用UDP,其端口为53。

DNS主从服务器之间使用TCP协议

客户端与DNS服务器之间使用UDP协议

DNS报文格式

DNS安全威胁

DNS应答包被客户端接受需要满足以下5个条件:

  1. 应答包question域和请求包域的域名信息一致
  2. 应答包的Transaction ID和请求包中的Transaction ID一致
  3. 应答包的源IP地址与请求包的目的地址一致
  4. 应答包的目的地址和端口与请求包的源IP地址和端口一致
  5. 第一个到达的符合以上四个条件的应答包

从以上5个条件可以看出,DNS协议存在很多漏洞。DNS的安全漏洞主要体现在以下3个方面:

  1. DNS报文只使用序列号来进行有效性鉴别,序列号由客户端程序设置并由服务器返回结果,客户端程序通过它来确定响应与查询是否匹配,这就引入了序列号攻击的危险
  2. 从协议定义上看,在DNS应答报文中可以附加信息,该信息可以和所请求的信息没有直接关系,这样,攻击者就可以在应答中随意添加某些信息,如:指示某域的权威域名服务器的域名及IP,导致在被影响的域名服务器上查询该域的请求都会被转向攻击者所指定的域名服务器上去,从而对网络的完整性构成威胁
  3. DNS的缓存机制,当一个客户端/DNS服务器收到有关域名和IP的映射信息时,它会将该信息存放在缓存中。当再次遇到对此域名的查询请求时就直接使用缓存中的结果而无需重新查询。可以通过ipconfig/displaydns命令查看本地DNS缓存信息

DNS欺骗攻击

DNS欺骗攻击流程

测试环境:攻击者可以监听到Client与Server之间的通信

如下图所示第2个数据包是攻击者(172.16.0.110)伪装成(172.16.0.3)返回的虚假应答包,由于它是第一个到达的符合条件的数据包,所以会被(172.16.0.2)接受。 当(172.16.0.2)通过域名hhz.242.net去访问主机时,会被错误的引导到(172.16.0.110)

DNS下毒攻击

DNS下毒攻击流程

测试环境:攻击者可以监听到DNS服务器之间的通信

下图中第三个数据包是攻击者(172.16.0.5)伪装成服务器(172.16.0.2)发送 的应答包,这样就可以把虚假信息:1.242.com对应的IP地址为222.128.5.182 放入服务器(172.16.0.4)的缓存中

下毒结果验证:172.16.0.5再次向DNS服务器172.16.0.4查询 1.242.com的信息,可以看到DNS服务器没有向172.16.0.2查询, 而是直接给出了应答,这说明它的缓存中存在1.242.com的信息, 通过抓包分析,下毒攻击是成功的。此类攻击时一般会将TTL值设 成较长的时间

DNS拒绝服务攻击

黑客向运行BIND的设备发送特定的DNS数据包请求,BIND就会自动关闭。攻击者只能使BIND停止提供域名解析服务而不能在服务器上执行任何命令

造成的危害:域名无法解析,用户无法访问互联网

DNS安全防范

应对DNS服务器面临的安全隐患主要依据以下两个准则:

BIND安全配置

  1. 隔离DNS服务器

    DNS服务器上不应该再运行其它服务,尤其是允许普通用户登录,减小攻击者利用其它服务漏洞攻击DNS服务器的概率

  2. 为BIND创建chroot

    chroot是指更改某个进程所能看到的根目录,即将某进程限制在指定的目录中,保证该进程只能对该目录及其子目录有所动作,从而保证整个服务器的安全。

  3. 隐藏BIND版本号

    通过发送特殊的DNS查询包,DNS服务器会返回其版本信息。

    通常软件的Bug信息是和特定版本相关的,因此版本号是黑客寻求的最有价值的信息。隐藏BIND版本号只需要修改配置文件/etc/name.conf,在options部分添加version声明,将BIND版本号覆盖即可:

    options{ version “I will not tell you”; };

  4. 请求限制

    DNS服务器响应任何人的任何请求是不安全的,修改BIND的配置文件/etc/named.conf,添加相应内容限制DNS服务器的服务范围

  5. 限制区传送

    默认情况下BIND的区传送是全部开放的,如果没有限制,DNS服务器允许任何人进行区传送,那么网络架构中的主机名,主机ip地址表、路由器名及路由IP表,甚至包括各主机所在的位置和硬件信息等情况很容易被入侵者得到。因此需要对区传送进行必要的限制

  6. 关闭动态更新

    在RFC2136中提出DNS动态更新,使得DNS客户端ip地址或名称出现更改时,可以利用DNS服务器注册和动态更新其资源记录。 虽然DNS动态更新规定了怎样的系统才允许更新一台DNS服务器中的 记录,但是DNS仍然可能受到威胁,比如攻击者利用IP欺骗,伪装成 DNS服务器信任的主机对系统进行更新或者删减、增加、修改资源记录。

DNS其它加固措施

ARP攻击

网卡工作模式

ARP协议

地址解析协议,即 ARP(Address Resolution Protocol),是根据IP地址获取物理地址的一个TCP/IP 协议。

报文格式

基本功能

在以太网协议中规定,同一局域网中的一台主机要和另一台主机进行直接通信,必须要知道目标主机的MAC地址。而在TCP/IP协议中,网络层和传输层只关心目标主机的IP地址。这就导致在以太网中使用IP协议时,数据链路层的以太网协议接到上层IP协议提供的数据中,只包含目的主机的IP地址。于是需要一种方法,根据目的主机的IP地址,获得其MAC地址。这就是ARP协议要做的事情。所谓地址解析(address resolution)就是主机在发送帧前将目标IP地址转换成目标MAC地址的过程。

另外,当发送主机和目的主机不在同一个局域网中时,即便知道对方的MAC地址,两者也不能直接通信,必须经过路由转发才可以。所以此时,发送主机通过ARP协议获得的将不是目的主机的真实MAC地址,而是一台可以通往局域网外的路由器的MAC地址。于是此后发送主机发往目的主机的所有帧,都将发往该路由器,通过它向外发送。这种情况称为委托ARP或ARP代理(ARP Proxy)

工作流程

在每台安装有TCP/IP协议的电脑或路由器里都有一个ARP缓存表,表里的IP地址与MAC地址是一对应的,如下表所示

以主机A(192.168.38.10)向主机B(192.168.38.11)发送数据为例:

  1. 当发送数据时,主机A会在自己的ARP缓存表中寻找是否有目标IP地址。如果找到就知道目标MAC地址为(00-BB-00-62-C2-02),直接把目标MAC地址写入帧里面发送就可
  2. 如果在ARP缓存表中没有找到相对应的IP地址,主机A就会在网络上发送一个广播(ARP request),目标MAC地址是“FF.FF.FF.FF.FF.FF”,这表示向同一网段内的所有主机发出这样的询问:“192.168.38.11的MAC地址是什么?”
  3. 网络上其他主机并不响应ARP询问,只有主机B接收到这个帧时,才向主机A做出这样的回应(ARP response):“192.168.38.11的MAC地址是00-BB-00-62-C2-02”,此回应以单播方式。这样,主机A就知道主机B的MAC地址,它就可以向主机B发送信息。同时它还更新自己的ARP高速缓存(ARP cache),下次再向主机B发送信息时,直接从ARP缓存表里查找就可

ARP缓存表采用老化机制,在一段时间内如果表中的某一行没有使用,就会被删除,这样可减少缓存表的长度,加快查询速度

ARP攻击技术

发送大量虚假MAC地址数据报
ARP欺骗

ARP欺骗(英语:ARP spoofing),又称ARP毒化(ARP poisoning,网上上多译为**ARP病毒)或ARP攻击,是针对以太网地址解析协议(ARP)的一种攻击技术,通过欺骗局域网内访问者PC的网关MAC地址,使访问者PC错以为攻击者更改后的MAC地址是网关的MAC,导致网络不通。此种攻击可让攻击者获取局域网上的数据包甚至可篡改数据包,且可让网上上特定计算机或所有计算机无法正常连线

ARP欺骗的运作原理是由攻击者发送假的ARP数据包到网上,尤其是送到网关上。其目的是要让送至特定的IP地址的流量被错误送到攻击者所取代的地方。因此攻击者可将这些流量另行转送到真正的网关(被动式数据包嗅探,passive sniffing)或是篡改后再转送(中间人攻击,man-in-the-middle attack)。攻击者亦可将ARP数据包导到不存在的MAC地址以达到阻断服务攻击的效果,例如netcut软件

注意:攻击者在监听过程中,需要不断地向主机A和主机B发送伪造的ARP应答包,因为如果没有更新信息,ARP映射项会自动删除

修改本地MAC地址

通过修改本地MAC地址为目标主机MAC地址来实现嗅探。 把主机C的MAC地址修改为目标主机B的MAC地址,交换机会将 MACB和端口c对应起来

在以后收到目的地址为MACB的数据报后,交换机会将包从端口 c发送出去。这样就达到了监听的目的

但同样地,这种方法只适用于动态生成地址映射表的交换机, 并且没有采用其它策略

ARP攻击溯源

方法一:捕包分析

在网络内任意一台主机上运行抓包软件,捕获所有到达本机的数据包。 如果发现有某个IP不断发送ARP Request请求包,那么这台电脑一般就是攻击源

原理:ARP攻击行为方式主要有两种,一是欺骗网关,二是欺骗网内的所有主机。最终的结果是,在网关的ARP缓存表中,网内所有活动主机 的MAC地址均为中毒主机的MAC地址;网内所有主机的ARP缓存表中, 网关的MAC地址也成为中毒主机的MAC地址。前者保证了从网关到网内主机的数据包被发到中毒主机,后者相反,使得主机发往网关的数据包均发送到中毒主机。

方法二:使用arp-a命令

任意选两台不能上网的主机,在DoS命令 窗口下运行arp-a命令。如果在结果中,两台电脑除了网关的IP, MAC地址对应项,都包含了192.168.0.186的这个IP,则可以断定 192.168.0.186这台主机就是攻击源

原理:一般情况下,网内的主机只和网关通信。正常情况下,一台主机的ARP缓存中应该只有网关的MAC地址。如果有其他主机 的MAC地址,说明本地主机和这台主机最后有过数据通信发生。 如果某台主机(例如上面的192.168.0.186)既不是网关也不是服务器,但和网内的其他主机都有通信活动,且此时又是ARP攻击发作时期,那么攻击源也就是它了

方法三:使用tracert命令

在任意一台受影响的主机上,在 DoS命令窗口下运行如下命令:tracert 61.135.179.148

假定设置的缺省网关为10.8.6.1,在跟踪一个外网地址时, 第一跳却是10.8.6.186,那么,10.8.6.186就是攻击源

原理:中毒主机在受影响主机和网关之间,扮演了“中间人” 的角色。所有本应该到达网关的数据包,由于错误的MAC 地址,均被发到了中毒主机。此时,中毒主机越俎代庖,起 了缺省网关的作用

ARP攻击防御办法

方法一:减少过期时间

加快过期时间,并不能避免攻击,但是使得攻击更加困难,带来的影响是在网络中会大量的出现 ARP 请求和回复,请不要在繁忙的网络上使用

方法二:建立静态ARP表

这是一种很有效的方法,而且对系统影响不大。缺点是破坏了动态 ARP 协议。可以建立如下的文件:

test.nsfocus.com 08:00:20:ba:a1:f2 
user. nsfocus.com 08:00:20:ee:de:1f

使用arp –f filename加载进去,这样的ARP映射将不会过期和被新的ARP数据刷新,除非使用arp –d才能删除。但是一旦合法主机的网卡硬件地址改变,就必须手工刷新这个arp文件。这个方法不适合于经常变动的网络环境

方法三:禁止ARP

可以通过ipconfig interface –arp完全禁止ARP,这样, 网卡不会发送ARP和接收ARP包。但是使用前提是使用静态的ARP表,如果不在ARP表中的计算机 ,将不能通信

这个方法不适用于大多数网络环境,因为这增加了网络管理的成本。但是对小规模的安全网络来说, 还是有效可行的

拒绝服务攻击

基本概念

拒绝服务攻击,英文名称是Denial of Service,简称DOS,即拒绝服务,造成其攻击行为被称为DoS攻击,其目的是使计算机或网络无法提供正常的服务。最常见的DoS攻击有计算机网络带宽攻击和连通性攻击

带宽攻击指以极大的通信量冲击网络,使得所有可用网络资源都被消耗殆尽, 最后导致合法的用户请求无法通过

连通性攻击指用大量的连接请求冲击计算机,使得所有可用的操作系统资源都被消耗殆尽,最终计算机无法再处理合法用户的请求

典型的拒绝服务攻击

Ping of Death

死亡之ping是如何工作的呢?首先是因为以太网长度有限,IP包片段被分片。当一个IP包的长度超过以太网帧的最大尺寸(以太网头部和尾部除外)时,包就会被分片,作为多个帧来发送。接收端的机器提取各个分片,并重组为一个完整的IP包。在正常情况下,IP头包含整个IP包的长度。当一个IP包被分片以后,头只包含各个分片的长度。分片并不包含整个IP包的长度信息,因此IP包一旦被分片,重组后的整个IP包的总长度只有在所在分片都接受完毕之后才能确定。

在IP协议规范中规定了一个IP包的最大尺寸,而大多数的包处理程序又假设包的长度超过这个最大尺寸这种情况是不会出现的。因此,包的重组代码所分配的内存区域也最大不超过这个最大尺寸。这样,超大的包一旦出现,包当中的额外数据就会被写入其他正常区域。这很容易导致系统进入非稳定状态,是一种典型的缓存溢出(Buffer Overflow)攻击。在防火墙一级对这种攻击进行检测是相当难的,因为每个分片包看起来都很正常。

预防死亡之ping的最好方法是对操作系统打补丁,使内核将不再对超过规定长度的包进行重组

Teardrpop

Teardrop攻击是一种畸形报文攻击。是基于UDP的病态分片数据包的攻击方法,其工作原理是向被攻击者发送多个分片的IP包(IP分片数据包中包括该分片数据包属于哪个数据包以及在数据包中的位置等信息),某些操作系统收到含有重叠偏移的伪造分片数据包时将会出现系统崩溃、重启等现象(假设数据包中第二片IP包的 偏移量小于第一片结束的位移,而且算上第二片IP包的Data, 也未超过第一片的尾部,这就是重叠现象)

检测方法

对接收到的分片数据包进行分析,计算数据包的片偏移量(Offset)是否有误。

反攻击方法:添加系统补丁程序,丢弃收到的病态分片数据包并对这种攻击进行审计。尽可能采用最新的操作系统,或者在防火墙上设置分段重组功能,由防火墙先接收到同一原包中的所有拆分数据包,然后完成重组工作,而不是直接转发。因为防火墙上可以设置当出现重叠字段时所采用的规则

Land攻击

LAND攻击(局域网拒绝服务攻击,英语:Local Area Network Denial attack,缩写:LAND attack),是拒绝服务攻击(DoS攻击)的一种。利用特殊的TCP封包传送至目标主机,使其因无法判别而宕机或被迫重新启动

攻击原理是:用一个特别构造的SYN包,它的源地址和目标地址都被设置成某一个服务器地址。此举将导致接受服务器向它自己的地址发送SYN一ACK消息,结果这个地址又发回 ACK消息并创建一个空连接。被攻击的服务器每接收一个这 样的连接都将保留,直到超时

防范

大多数防火墙都能拦截类似的攻击包,以保护系统。部分操作系统通过发布安全补丁修复了这一漏洞。另外,路由器应同时配置上行与下行筛选器,屏蔽所有源地址与目标地址相同的数据包

SYN洪水

原理

攻击细节

检测

检测SYN攻击非常方便,当你在服务器上看到大量的半连接状态时,特别是源IP地址是随机的,基本上可以断定这是一次SYN攻击

攻击防范

SYN攻击不能完全被阻止,我们所做的是尽可能的减轻SYN攻击的危害,除非将TCP协议重新设计

Smurf

攻击者向一个具有大量主机和因特网连接的网络的广播地址发送一个欺骗性Ping分组(echo 请求),这个目标网络被称为反弹站点,而欺骗性Ping分组的源地址就是攻击者希望攻击的目标地址。

最终导致该网络的所有主机都对此ICMP应答请求做出答复,第三方崩溃

这种攻击的前提是,路由器接收到这个发送给IP广播地址(如206.121.73.255)的分组后,会认为这就是广播分组,并且把以太网广播地址FF:FF:FF:FF:FF:FF:映射过来。这样路由器因因特网上接收到该分组,会对本地网段中的所有主机进行广播

防御

挫败一个Smurf攻击的最简单的方法就是对边界路由器的应答(echo reply)信息包进行过滤,然后丢弃他们,使网络避免被湮没

HTTP洪水

CC攻击

CC(ChallengeCollapsar,挑战黑洞)攻击是DDoS攻击的一种类型,使用代理服务器向受害服务器发送大量貌似合法的请求。攻击者使用代理机制,利用众多广泛可用的免费代理服务器发动DDoS攻击。许多免费代理服务器支持匿名模式,这使追踪变得非常困难

CC攻击的原理就是攻击者控制某些主机不停地发大量数据包给对方服务器造成服务器资源耗尽,一直到宕机崩溃

CC主要是用来攻击页面的,每个人都有这样的体验:当一个网页访问的人数特别多的时候,打开网页就慢了,CC就是模拟多个用户(多少线程就是多少用户)不停地进行访问那些需要大量数据操作(就是需要大量CPU时间)的页面,造成服务器资源的浪费,CPU长时间处于100%,永远都有处理不完的连接直至就网络拥塞,正常的访问被中止

如何防御

对于CC攻击.其防御必须采用多种方法,而这些方法本质上也是在提高服务器的并发能力

慢速DDoS攻击

Slow headers:Web应用在处理HTTP请求之前都要先接收完所有的HTTP头部,因为HTTP头部中包含了一些Web应用可能用到的重要的信息。而HTTP协议规定,HTTP Request以\r\n\r\n(0d0a0d0a)结尾表示客户端发送结束,服务端开始处理。那么,如果永远不发送\r\n\r\n会如何?攻击者利用这点,发起一个HTTP请求,一直不停的发送HTTP头部,消耗服务器的连接和内存资源。抓包数据可见,攻击客户端与服务器建立TCP连接后,每30秒才向服务器发送一个HTTP头部,而Web服务器再没接收到2个连续的\r\n时,会认为客户端没有发送完头部,而持续的等待客户端发送数据。如果攻击者使用多线程或者傀儡机来做同样的操作,服务器的Web容器很快就被攻击者占满了TCP连接而不再接受新的请求

Slow body:攻击者发送一个HTTP POST请求,该请求的Content-Length值很大,使得Web服务器或代理认为客户端要发送很大的数据。服务器会保持连接准备接收数据,但攻击客户端每次只发送很少量的数据,使该连接一直保持存活,消耗服务器的连接和内存资源。抓包数据可见,攻击客户端与服务器建立TCP连接后,发送了完整的HTTP头部,POST方法带有较大的Content-Length,然后每10s发送一次随机的参数。服务器因为没有接收到相应Content-Length的body,而持续的等待客户端发送数据

Slow read:客户端与服务器建立连接并发送了一个HTTP请求,客户端发送完整的请求给服务器端,然后一直保持这个连接,以很低的速度读取Response,比如很长一段时间客户端不读取任何数据,通过发送Zero Window到服务器,让服务器误以为客户端很忙,直到连接快超时前才读取一个字节,以消耗服务器的连接和内存资源。抓包数据可见,客户端把数据发给服务器后,服务器发送响应时,收到了客户端的Zero Window提示(表示自己没有缓冲区用于接收数据),服务器不得不持续的向客户端发出ZeroWindowProbe包,询问客户端是否可以接收数据

DoS检测

分类

按检测模式分类

按算法部署位置分类

基于误用的DDoS检测

基于误用的DDoS攻击检测是指事先收集已有DDoS攻击的各种特征, 然后将当前网络中数据包的特征和各种攻击特征相互比较,如果 特征匹配则发现DDoS攻击

基于误用方法依赖于攻击特征的选取, 一般用于检测利用漏洞型 的DDoS攻击。

基于异常的DDoS检测

基于异常的DDoS攻击检测是指通过监视系统审计记录上系统使用的异常情况,可以检测出违反安全的事件。目前,大多数的DDoS攻击检测都属于异常检测

基于异常的DDoS检测取决于检测模型的建立,不同的模型对应着不同的检测方式,主要包括统计检测、模式预测、人工智能检测、机器学习检测四种方法

基于混合模式DDoS检测

混合模式DDoS攻击检测是将误用DDoS攻击检测和异常DDoS攻击检测两种方式混合使用

通常使用数据挖掘的方法, 由异常检测发现攻击, 从发现的攻击中摘录特征放入误用模式特征库中, 再利用误用检测的方法来检测DDoS攻击。但实际效果根据具体情况的不同也有差异

源端检测

源端DDoS攻击检测指的是将检测算法布置在发出攻击数据包的主机所处网络的边界路由器上

将DDoS攻击检测系统部署在源端,可以使得攻击数据流在进入网络之前被阻止

中间网络检测

中间网络DDoS攻击检测是指将攻击检测算法部署在整个网络上,包括路由器、交换机或其它网络设备

通常是在核心路由器上部署分布式的DDoS防御系统

目的端检测

目的端DDoS攻击检测是指将攻击检测算法部署在被攻击的主机和相关网络设备上。目前应用最多的攻击检测都是在目的端进行的

DDoS攻击检测方法的分析

基于数据挖掘的DDoS检测技术

利用数据挖掘算法中的关联算法和聚类算法分步处理数据, 能够自动地、实时地、有效地检测DoS攻击

低速率拒绝服务

低速率拒绝服务攻击(low-rate denial-of-service,简称LDoS)是近年来提出的一类新型攻击,其不同于传统洪(flood)泛式DoS攻击,主要是利用端系统或网络中常见的自适应机制所存在的安全漏洞,通过低速率周期性攻击流,以更高的攻击效率对受害者进行破坏且不易被发现

特点

检测

SQL注入

SQL注入攻击简介

SQL是操作数据库数据的结构化查询语言,网页的应用数据和后台数据库中的数据进行交互时会采用SQL

SQL注入是将Web页面的原URL、表单域或数据包输入的参数,修改拼接成SQL语句,传递给Web服务器,进而传给数据库服务器以执行数据库命令。如Web应用程序的开发人员对用户所输入的数据或cookie等内容不进行过滤或验证(即存在注入点)就直接传输给数据库,就可能导致拼接的SQL被执行,获取对数据库的信息以及提权,发生SQL注入攻击

SQL攻击示例

ASP/SQL注入

结果是由于or 1=1的永真语句和 --注释的存在,使得攻击者可以不需要提供正确的用户名密码就能登陆系统

PHP/MySQL注入

SQL注入攻击原理

本质

把用户输入的数据当作代码执行

关键

SQL盲注

所谓盲注即在服务器没有错误回显提示的情况下完成SQL注入攻击

简单盲注

基于时间的盲注

当简单的盲注不起作用时,可以使用另一个盲注技巧:Timing Attack

MySQL中的benchmark()函数用于测试函数性能。benchmark(count, expr)表示将表达式expr执行count次

攻击者正是利用该函数,使一个函数执行若干次以增加响应时间。通过响应时间长短的变化判断注入语句是否成功执行

SQL常见攻击技巧

SQL命令执行

SQL攻击存储过程

存储过程(Stored Procedure)是在数据库系统中,一组为了完成特定功能的SQL 语句集,它存储在数据库中,一次编译后永久有效,用户调用存储过程并传递参数来执行它

SQL其它方式

编码问题

sql column truncation

SQL注入基本流程

寻找注入点

注意

信息采集

在判断出注入点之后就可以进行一些基本的信息采集:

数据库类型

一般ASP最常搭配的数据库是Access和SQLServer,网上超过99%的网站都是其中之一

判断的方法有很多,如:

版本号

其它信息

还可以通过一些工具来进行信息采集,如Pangolin

权限判断

攻击系统

SQL注入攻击工具

SQL注入攻击防范

从两方面入手:

服务器安全

代码安全

MySQL的安全配置

SQL Server的安全配置

PHP代码安全

该选项来设置启用/禁止PHP 为用户输入创建全局变量,设置为“off”表示:如果用户提交表单变量“a”,PHP 不会创建“&a”, 而只会创建“HTTP GET/POST VARS[‘a’]”

ASP代码安全

目前有很多编译软件在修改源代码后回自动生成备份文件,用户提交 URL来获得这些文件就可以轻易的查看ASP 源代码,攻击者通过分析其内部运行机理来进行攻击。所以开发人员应该尽量避免使用这种编译软件,或及时删除备份文件

SQL注入防御方法

恶意代码

恶意代码概念

恶意代码是指一切旨在破坏计算机或网络资源的可用性、机密性和完整性的程序

2010年CNCERT发布的《网络安全属于解释》:恶意代码是指在未经授权的情况下,在信息系统中安装、执行并达到不正当目的的程序

现在还没有一个针对恶意代码的统一分类标准,但一般分为

等八类

病毒

定义

广义定义一:计算机病毒是一种人为制造的、能够进行自我复制的、具有对计算机资源的破坏作用的一组程序或指令的集合

广义定义二:能够引起计算机故障,破坏计算机数据的程序都统称计算机病毒

特征

生命周期

  1. 开发期:即病毒的编写调试期
  2. 传染期:即病毒的发布期,通过各种途径传播病毒
  3. 潜伏期:病毒休眠或隐藏
  4. 发作期:即表现期,即病毒的表现形式或破坏能力
  5. 发现期:病毒被检测、发现、隔离并被通报研究
  6. 消化期:反病毒技术人员修改软件来检测和消除病毒
  7. 消亡期:由于用户的防护,病毒难以生存和传播

病毒发展简史

计算机病毒的通用命名规则

计算机病毒命名的国际惯例

每个反病毒公司的命名规则都不太一样,但大体都是采取一个统一的命名方式来命名的,一般为:

**<病毒前缀>.<病毒名>.<病毒后缀>**

常见的病毒前缀

  1. 系统病毒:前缀为W2K、PE、WNT、W32、W95等。这些病毒一般可以感染Windows的*.exe*.dll文件,并通过这些文件进行流传
  2. 蠕虫病毒:前缀为Worm,通过网络或系统漏洞进行流传
  3. 木马病毒:前缀为Trojan
  4. 黑客病毒:前缀为Hack
  5. 脚本病毒:前缀是Script、VBS、JS等
  6. 宏病毒:前缀是Macro、Word、Word97、Excel、Excel97等
  7. 后门病毒:前缀是Backdoor
  8. 病毒种植程序病毒:前缀是Drop,从体内释放出一个或几个新的病毒到系统目录下,由释放出来的新病毒产生破坏
  9. 损坏性程序病毒:前缀是Harm
  10. 玩笑病毒:前缀是Joke
  11. 捆绑机病毒:前缀是Binder
  12. 其它前缀:Dos、Exploit、Hacktool等

计算机病毒的结构组成

病毒一般包含3大模块:引导模块、感染模块和表现(破坏)模块

计算机病毒的传播途径

病毒的感染对象

感染对象主要有两种:一种是寄生在磁盘引导扇区;另一种是寄生在可执行文件中。另外,宏病毒、脚本病毒比较特殊,是在用户使用Office或浏览器的时候获取执行权;还有一些蠕虫只寄生在内存中而不感染引导扇区和文件

病毒感染过程

一般分为三步:

病毒感染机理

文件型病毒的感染方式

  1. 寄生感染

  2. 无入口点感染

  3. 滋生感染

  4. 链式感染

  5. OBJ、LIB和源码感染

木马

定义

木马程序一般由客户端和服务端组成:

木马和病毒的区别

木马的发展史

蠕虫

定义

可以独立运行,并且自动复制自身并传播到另一台主机

病毒与蠕虫的区别

网络蠕虫的功能结构

主题功能主要由5个模块构成,主要完成攻击传播的过程:

未来蠕虫可能出现的模块:

网络蠕虫扫描策略

网络蠕虫传播途径

网络蠕虫一般通过以下几种方式进行传播:

病毒、蠕虫和木马的比较

恶意代码技术

启动

1.通过注册表启动

Windows的注册表(Registry)是一个庞大的数据库,存储软硬件的有关配置和状态等信息

2.通过启动项启动

3.通过任务计划启动

任务计划服务让用户指定系统在一个特定的时间、特定的日期或者 特定事件发生时(计算机启动时、登录时)执行特定的程序。用户可 以通过“添加任务计划”向导或者代码来添加自己的任务计划。 Windows提供了六个有关任务计划的API函数

4.通过配置文件启动

5.通过文件关联启动

所谓文件关联,就是指规定某种格式的文件用哪个程序打开。

在注册表的HKEY_CLASSES_ROOT主键下,可以看到许多扩展名。所有的文件类型都必须在这里注册,才是系统识别的文件类型

6.通过伪装成服务来启动

主要属性有四个:DisplayName显示名称、ImagePath执行文件路径、Start启动类型和Type服务类型

Start启动类型:

Type服务类型:

原理:木马将自己注册为一个服务程序,设置对应的服务启动类型为0x00、0x01或0x02,就可以实现自启动了

7.通过其它特定程序启动

8.通过驱动启动

9.通过自动运行功能启动

10.通过浏览器启动

隐藏

隐藏方式

进程隐藏技术

文件隐藏技术

通信隐藏技术

通信隐藏是在用户毫无感知的情况下完成木马客户端与服务器端的数据交互

早期是是使用简单的TCP连接方式,后来出现了端口反弹技术、ICMP型木马技术等隐蔽通信技术

传播

网络蠕虫传播模型

传染病模型

SI模型

SIS模型

SIR模型

无尺度网络模型

恶意代码分析

见“恶意代码分析”课件

网络扫描

网络安全扫描概述

网络安全扫描简介

网络安全扫描技术是一类重要的网络安全技术,基于Internet远程检测目标网络或本地主机安全性脆弱点

通过对网络的扫描,系统管理员可以发现所维护的Web服务器的各种TCP/IP端口的分配、开放的服务、Web服务软件版本和这些服务及软件呈现在Internet上的安全漏洞

网络安全扫描步骤

  1. 发现目标主机或网络

    这一阶段就是通过发送不同类型的ICMP或者TCP\UDP请求,从多个方面检测目标主机是否存活。在这一阶段使用的技术通常称作ping扫射(Ping Sweep),包括以下:

  2. 端口扫描

    端口扫描就是要取得目标主机开放的端口和服务信息,从而为下一步的“漏洞检测”做准备。端口扫描时最基本的网络安全扫描技术,基本流程为:

    通常由端口获取服务类型是根据RFC1700直接推断的:

    但这还不够,因为Web服务不一定开在80/tcp端口,端口号可能采用动态分配方法等

  3. 操作系统探测

    许多安全漏洞都是和操作系统紧密相关,只有精确地判断出目标主机的操作系统及版本才能针对地对其进行攻击或安全评估

  4. 漏洞检测

    • 直接测试:使用针对漏洞特点设计的脚本或程序检测漏洞
    • 推断:不利用系统漏洞而判断漏洞存在。间接寻找漏洞存在的证据
    • 带凭证的测试:赋予测试进程目标系统的角色,能够检查出更多的漏洞

网络安全扫描技术

端口扫描技术

原理

向目标主机的TCP/IP服务端口发送探测数据包,并记录目标主机的响应,通过分析响应来判断服务端口是打开还是关闭,即可得知端口提供的服务或信息。

分类

全连接扫描

包括:

半连接扫描

也叫间接扫描,是指端口扫描没有完成一个完整的TCP连接(只完成了前两次握手,在第3步的时候中断本次连接)。包括:

秘密扫描

秘密扫描是一种不被审计工具所检测的扫描技术,现有的秘密扫描主要有:

其它扫描

漏洞扫描技术

漏洞扫描技术主要分为以下两种:

基于网络系统漏洞库的漏洞扫描

这类漏洞扫描大致包括:CGI漏洞扫描、POP3漏洞扫描、FTP漏洞扫描、HTTP漏洞扫描等

这些漏洞扫描基于漏洞库,将扫描结果与漏洞库相关数据比较得到漏洞信息

漏洞库的匹配方法:通过采用基于规则的匹配技术,即根据安全专家对网络系统安全漏洞、黑客攻击案例的分析和系统管理员对网络系统安全配置的实际经验,可以形成一套标准的网络系统漏洞库,然后在此基础上构成相应的匹配规则,由扫描程序自动进行漏洞扫描工作

基于模拟攻击的漏洞扫描

主要包括:Unicode遍历目录漏洞探测、FTP弱势密码探测、OPENreply邮件转发漏洞探测等

这些扫描通过使用插件(功能模块技术)进行模拟攻击,测试出目标主机的漏洞信息

插件是由脚本语言编写的子程序,扫描程序可以通过调用它来执行漏洞扫描,检测出系统中存在的一个或多个漏洞。添加新的插件就可以使漏洞扫描软件增加新的功能,扫描出更多的漏洞

操作系统探测技术

分为主动探测和被动探测:

主动探测:

被动探测:

网络协议安全

对于底层的网络协议来说,对于安全的考虑有着先天的不足,部分网络协议具有严重的安全漏洞;

由于先天的不足,一些协议上的漏洞是无法通过修改来弥补的

TCP协议的缺陷

TCP(Transmission Control Protocol,传输控制协议)在建立连接时所采用的三次握手机制提供了比其它协议更安全的措施,但攻击者还是可以通过发送伪造的数据包来迷惑目标主机,以达到攻击效果:

IP协议的缺陷

IP(Internet Protocol,网际协议)协议是其它协议的基础,可以说是TCP/IP协议族中最核心的协议,主要威胁有:

ARP协议的缺陷

ARP(Address Resolution Protocol,地址解析协议)是一种将IP地址解析成局域网硬件所使用的媒体访问控制地址(MAC)的协议

缺陷有:

UDP协议的缺陷

UDP(User Datagram Protocol,用户数据报协议)是一种无连接的协议,而且它不需要用任何程序建立连接来传输数据

缺陷:

ICMP协议的缺陷

ICMP(Internet Control Message Protocol,因特网控制报文协议)协议用于差错控制和拥塞控制

缺陷:

RIP协议的缺陷

RIP(Routing Information Protocol,路由信息协议)是动态发现合适的因特网路径的协议,它是运行TCP/IP的基础,因此也常容易受到攻击

缺陷:

其它协议的缺陷
TCP/IP协议族的安全性改进

网络层的安全性改进

传输层的安全改进

Netscape通信公司制定了建立在可靠的传输服务基础上的安全套阶层协议(SSL),该协议主要包含SSL记录协议和SSL握手协议

缺点:基于UDP的通信很难在传输层上建立安全机制

应用层的安全性改进

网络层和传输层安全协议提高了主机或进程之间的数据通道安全性,却不能区分在同一通道上传输的一个具体文件的安全性要求

如果要区分一个具体文件的不同安全性需求,必须借助于应用层的安全协议,如:

一个电子邮件系统可能需要对信件的个别段落实施数字签名,底层协议一般不知道信件的段落结构,从而不知道该对哪一部分进行签名,只有应用层是唯一能够提供这种安全服务的层次

安全漏洞概述

在计算机安全领域,安全漏洞通常又称作脆弱性(vulnerability),一般认为,漏洞是指硬件、软件或策略上存在的安全缺陷,从而使得攻击者能够在未经授权的情况下访问、控制系统

安全漏洞存在的原因

安全漏洞的来源

公开的漏洞信息

漏洞本身不会对系统造成损坏,而只是为入侵者侵入系统提供了可能。但是,并不是知道漏洞的人越少系统就越安全

比较权威的漏洞信息资源:

安全漏洞发现与防御

漏洞发现

漏洞发现就是对计算机信息系统进行检查,发现其中可被黑客利用的漏洞

漏洞发现技术分为两种:

基于主机的发现技术

基于网络的发现技术

漏洞防御

漏洞防御就是在漏洞发现的基础上,采取各种技术对漏洞进行防御,达到保护系统的目的。漏洞防御技术主要有:

基于源码的防御技术

漏洞产生的根源在于编写程序的机制,防御漏洞首先应该确保程序代码的正确性和安全性,避免程序中有不检查变量、缓冲区大小边界等情况存在

主要有:

基于操作系统的防御技术

漏洞信息发布机制

漏洞信息的发布应该做好以下几个方面:

防火墙

防火墙概述

防火墙发展史

防火墙概念

什么是防火墙

防火墙满足以下条件:

一个典型的防火墙使用形态

为什么需要防火墙

防火墙实现层次

防火墙功能

防火墙访问控制方法

防火墙的局限性

防火墙分类

防火墙技术

网络地址翻译

定义

地址翻译NAT(Network Address Translation)就是将一个IP地址用另一个IP地址代替。主要用在两个方面:

网络地址转换就是在防火墙上装一个合法的IP地址集,然后当内部某一用户要访问Internet时,防火墙动态地从地址集中选一个未分配的地址分配给该用户;同时,对于内部的某些服务器如Web服务器,网络地址转换器允许为其分配一个固定的合法地址(公网IP)

NAT的三种类型

包过滤防火墙

判断依据

优缺点

电路级网关

实现方式

优缺点

应用层网关

应用网关防火墙(AGF,Application Gateway Firewall),又称代理防火墙或简称应用网关

应用网关在应用层处理信息;AGF可以支持多个应用如Email,Web,DNS,Telnet,FTP等

工作过程

首先它对该用户的身份进行验证

若为合法用户,则把请求转发给真正的某个内部网络的主机,同时监控用户的操作,拒绝不合法的访问

当内部网络向外部网络申请服务时,代理服务器的工作过程刚好相反

优缺点

状态检查包过滤

状态检测防火墙是在动态包过滤防火墙的基础上,增加了状态检测机制而形成的。具有连接的跟踪能力

以TCP协议为例:所谓的状态检测机制关注的主要问题不再仅是SYN和ACK标志位,或者是 源端口和目的端口,还包括了序号、窗口大小等其它TCP协议信息

原理

优缺点

优点:

缺点:

防火墙体系架构

双重宿主主机体系结构

双重宿主主机体系结构至少有两个网络接口:

两个网络之间的通信可春通过应用层数据共享和应用层代理服务的方法来实现。一般情况下采用代理服务的方法

特点

缺点

双重宿主主机是隔开内外网络的唯一屏障,一旦它被入侵,内部网络便向入侵者敞开大门

屏蔽主机体系结构

屏蔽路由器可按如下规则之一进行配置:

优缺点

安全性高,双重保护:实现了网络层安全(包过滤)和应用层安全(代理服务)

过滤路由器能否正确配置是安全与否的关键。如果路由器被损坏,堡垒主机将被穿过,整个网络对入侵者是开放的

屏蔽子网体系结构

屏蔽子网体系结构在本质上与屏蔽主机体系结构一样,但增加了额外的一层保护体系——周边网络

堡垒主机位于周边网络上,周边网络和内部网络被内部路由器分开

原因:堡垒主机是用户网络上最容易被入侵的机器。通过在周边网络上隔离堡垒主机,能减少堡垒主机被入侵的影响

周边网络

周边网络是一个防护层,在其上可放置一些信息服务器,它们是牺牲主机,可能会受到攻击,因此又被称为非军事区(DMZ)

周边网络的作用:即使堡垒主机被入侵者控制,它仍可消除对内部网络的侦听

堡垒主机

外部路由器

作用:保护周边网络和内部网络不受外部网络的侵犯

它把入站的数据包路由到堡垒主机;

它还可以防止部分IP欺骗,可分辨出数据包是否真正来自周边网络,而内部路由器不可

内部路由器

作用:保护内部网络不受外部网络和周边网络的侵害,执行大部分过滤工作

外部路由器一般与内部路由器应用相同的规则

优点

iptables

定义

iptables是与Linux内核继承的IP信息包过滤系统,是一种功能强大的工具,由两个组件netfilter和iptables组成

netfilter组件也称为内核空间(kernelspace),是内核的一部分,由一些信息包过滤表组成,这些表包含内核用来控制信息包过滤处理的规则集,这些规则是在做信息包过滤决定时,防火墙所遵循和组成的规则

主要的规则表有4个,分别是:

链是数据包传播的路径,每一条链其实就是众多规则中的一个检查清单,每一条链中可以有一条或数条规则。iptables从链中第一条规 则开始依次检查,看该数据包是否满足规则所定义的条件

主要的规则链有五个分别为:

使用

网络隔离技术

物理隔离技术

定义

物理隔离的指导思想与防火墙截然不同:防火墙的思路是在保障互联互通的前提下,尽可能安全,而物理隔离的思路是在保证必须安全的前提下,尽可能互联互通

物理隔离技术实质就是一种将内外网络从物理上断开, 但保持逻辑连接的信息安全技术。这里,物理断开表示任何时候内外网络都不存在连通的物理连接,逻辑连接表示能进行适度的数据交换。“物理隔离”是指内部网不直接通过有线或无线等任何手段连接到公共网,从而使内部网络和外部公共网络在物理上处于隔离状态的一种物理安全技术

安全要求

  1. 在物理传导上使内外网络隔断,确保外部网不能通过网络连接而侵入内部网。同时防止内部网信息通过网络连接泄露到外部网
  2. 在物理辐射上隔断内部网与外部网,确保内部网信息不会通过电磁辐射等方式泄露到外部网
  3. 在物理存储上隔断两个物理网络环境,对于断电后会遗失信息的部件,如内存、处理器等暂存部件,要在网络转换时做清除处理,防止残留信息泄露;对于断电非遗失性设备如磁带机、硬盘等存储设备,内部网与外部网信息要分开存储

实现原理

物理隔离实现的原理主要包括以下两类:

一个典型的物理隔离方案

网络隔离技术分类

网络隔离技术应用

入侵检测技术IDS

入侵检测概述

定义

IDS,Instrusion Detection System,入侵检测系统

入侵检测是从计算机网络或计算机系统中的若干关键点搜集信息并对其进行分析,从中发现网络或系统中是否有违反安全策略的行为和遭到袭击的迹象的一种机制

是一种主动保护自己的网络和系统免遭非法攻击的网络安全技术

为什么需要IDS

主要有两点:

网络入侵主要流程

  1. 目标探测和信息收集
  2. 自身隐藏
  3. 利用漏洞侵入主机
  4. 稳固和扩大战果
  5. 清除日志

入侵检测的功能

入侵检测的分类

根据不同的方式可以有多种不同的分类方法:

根据原始数据的来源分类:

根据检测原理分类:

根据体系结构分类:

根据工作方式分类:

入侵检测结构

基于主机系统结构

定义

HIDS:Host-Based IDS

检测的目标主要是主机系统和系统本地用户。检测原理是根据主机的审计数据和系统的日志发现可疑事件,检测系统可以运行在被检测的主机或单独的主机上

优缺点

基于网络系统结构

定义

NIDS:Network-Based IDS

根据网络流量、协议分析、单台或多台主机的审计数据检测入侵

优缺点

基于分布式系统的结构

传统的集中式IDS的基本模型是在网络的不同网段放置多个探测器收集当前网络状态的信息,然后将这些信息传送到中央控制台进行处理分析

分布式结构采用了本地主体处理本地事件,中央主体负责整体分析的模式

集中式IDS的缺陷

分布式IDS的优点

入侵检测技术

异常检测技术

思想:任何人的行为都有一定的规律,而入侵会引起用户或系统行为的异常

异常检测模型

Anomaly Detection:首先总结正常操作应该具有的特征(用户轮廓),当用户活动与正常行为有重大偏离时即被认为是入侵

检测原理

优点

缺点

误用检测技术

思想:主要是通过某种方式预先定义入侵行为,然后监视系统,从中找出符合预先定义规则的入侵行为

误用信号需要对入侵的特征、环境、次序以及完成入侵的事件相互间的关系进行描述

优点

缺点

其它检测技术

入侵检测部署

检测器部署位置:

入侵检测实例

snort

实例一:DoS检测——Land

编写规则:

alert ip $HOME_NET any -> $HOME_NET any (msg:“DoS Land attack”; flags:S; flow:stateless classtype:attempted-dos; sid:6001; rev:1;sameip)

实例二:TCP NULL扫描

编写规则:

alert tcp $EXTERNAL_NET any -> $HOME_NET any (msg:“SCAN NULL”;flags:0; flow:from_client;classtype:attempted-recon; sid:6002; rev:1;)

实例三:SQL注入漏洞

编写规则:

alert tcp $EXTERNAL_NET any -> $HOME_NET any (msg:“SQL Injection found”; flow:from_client,established; content:“’%20and%201=1#”; classtype: web-application-attack; sid:6003; rev:1;)

KDD Cup

KDD Cup is the annual Data Mining and Knowledge Discovery competition organized by ACM Special Interest Group on Knowledge Discovery and Data Mining, the leading professional organization of data miners. Year to year archives including datasets, instructions, and winners are available for most years.

虚拟专用网VPN

TCP/IP不同层次的安全机制

上述协议能够提供以下安全服务:

VPN概念

定义

VPN:virtual private network,虚拟专用网,是指依靠ISP或其它NSP在公用网络基础设施之上构建的专用的数据通信网络,这里所指的公用网络有多种,包括IP网络、帧中继网络和ATM网络

IETF对基于IP的VPN定义:使用IP机制仿真出一个私有的广域网

VPN特点

实现要求

VPN技术

隧道技术

隧道协议

隧道的定义:实质上是一种封装,将一种协议(协议X)封装在另一种协议(协议Y)中传输,从而实现协议X对公用传输网络(采用协议Y)的透明性

隧道协议内包括以下三种协议:

密钥管理

VPN技术的开放性预示着必须采取各种公开密码算法,这样算法的安全强度不能仅依赖于算法本身,只能依靠密钥的机密性。大规模部署VPN,也离不开自动密钥管理协议的支持

VPN系统中常用的几种密钥管理协议包括:IKE协议、SKIP协议、Kerberos协议

VPN分类

按VPN业务类型划分:

按VPN发起主体划分:

按隧道协议层次划分:

此外,根据VPN实现方式的不同,还可进一步分为软件实现和硬件实现等

VPN应用类型

根据网络类型的差异,一般可以把VPN分为Client-LAN和LAN-LAN两种类型

VPN功能

数据机密性保护

数据完整性保护

数据源身份认证

重放攻击保护

链路层安全

PPTP

PPTP(Point to Point TunnelingProtocol,点对点通道协议)

PPTP 提供PPTP客户机和PPTP服务器之间的加密通信

PPTP 可看作是PPP 协议的一种扩展,提供了一种在Internet 上建立多协议的安全虚拟专用网(VPN) 的通信方式。远端用户能够透过任何支持PPTP的ISP 访问公司的专用网络

PPTP由微软公司设计,用于将PPP分组通过IP网络封装传输

数据封装

通过PPTP,客户可采用拨号方式接入公共IP网络Internet:

L2TP

L2TP协议结构

数据封装

特点

L2TP与PPTP不同点

L2F

网络层安全

IPSec

定义

IPSec,即IP层安全协议,是由Internet组织IETF的IPSec工作组制定的IP网络层安全标准。它通过对IP报文的封装以实现TCP/IP网络上数据的安全传送

IPSec体系结构

IPSec协议框架

AH协议

传输模式下的AH认证工作原理

隧道模式下的AH认证工作原理

ESP协议

传输模式下的ESP工作原理

隧道模式下的ESP工作原理

AH+ESP组合IPSec协议

AH\ESP协议分工

IPSec传输模式

IPSec隧道模式

安全联盟数据库(SADB)

安全策略数据库(SPD)

IPSec流程——数据包输出处理

IPSec流程——数据包输入处理

IKE

IKE基本情况

定义

IKE: Internet Key Exchange,互联网密钥交换

功能

IKE交换格式

密钥交换包格式(ISAKMP)

第一阶段交换

阶段一交换(phase1 exchange):在“阶段一”周期里,两个IKE实体建立一个安全的,经验证的信道进行后续通信,要建立这样的安全信道, 双方会建立一对ISAKMP安全联盟。阶段一交换可以用身份保护模式(也叫主模式)或野蛮模式来实现,而这两种模式也仅用于阶段一中

主模式交换

主模式交换提供了身份保护机制,经过三个步骤,共交换了六条消息。三个步骤分别是策略协商交换、Diffie Hellman共享值、nonce交换以及身份验证交换

野蛮模式交换

野蛮模式交换也分为三个步骤,但只交换三条消息:头两条消息协商策略,交换Diffie Hellman公开值必需的辅助数据以及身份信息;第二条消息认证响应方;第三条消息认证发起方,并为发起方提供在场的证据

主模式和野蛮模式

第一阶段的主要任务是建立IKE SA,为后面的交换提供一个安全通信信道。使用主模式交换和野蛮模式交换。这两种模式都可以建立SA,两者的区别在于野蛮模式只用到主模式一半的消息,因此野蛮模式的协商能力受到限制的,而且它不提供身份保护

但是野蛮模式可以有一些特殊用途,比如远程访问等。另外如果发起者已经知道响应者的策略,利用野蛮模式可以快速的建立 IKE SA。主模式和野蛮模式都允许4中不同的验证方法:(1)预共享密钥(2)DSS数字签名(3)RSA数字签名(4)交换加密

阶段一协商流程简图

阶段一身份保护模式

Diffie-Hellman密钥交换

野蛮模式交换状态转换图

阶段一工作原理

第二阶段交换

阶段二交换(phase2 exchange):“阶段二”周期里,IKE实体会在阶段一建立起来的安全信道中,为某种进程协商和产生需要的密钥材料和安全参数,在VPN实现中,就是建立IPSec安全联盟。快速模式交换可用来实现阶段二交换并且仅用于此阶段中

阶段二快速模式

阶段二工作原理

传输层安全

SSL基本情况

历史

SSL:Secure Socket Layer,安全套接字层。1994年由Netscape开发,专门用于保护Web通讯

设计目标

SSL协议体系

SSL被设计用来使用TCP提供一个可靠的端到端安全服务

协议分为两层:

SSL记录协议

建立在可靠的传输协议(如TCP)之上,为更高层提供基本安全服务,特别是HTTP。

它提供连接安全性,有两个特点:

SSL连接

SSL会话

SSL记录层协议

记录层数据封装过程

SSL高层协议

SSL密钥交换

协议整体情况

各阶段交互

简化交互过程

会话密钥生成

应用安全——PGP

PGP概述

PGP功能列表

PGP操作

PGP所使用的符号

PGP操作描述

功能:身份认证

身份认证说明

保密性与认证

保密性说明

保密与认证的结合

电子邮件的兼容性

PGP消息的传输与接收

PGP消息的一般格式

PGP密钥管理

加密密钥和密钥环

PGP使用四种类型的密钥:

PGP对密钥的需求:

密钥标识符和钥匙环

PGP私钥环

PGP公钥环

公钥环和私钥环结构

邮件数据处理

PGP发送方处理消息的过程

PGP接收方处理消息的过程

公钥管理

由于PGP重在广泛地在正式或非正式环境下地应用,所以它没有建立严格地公钥管理模式

一旦用户私钥泄露,存在两种危险:

保证公钥环上公钥的正确性

PGP公钥信任模型

PGP信任模型示例

PGP公钥的注销

PGP证书管理软件

PGP用法

用法一

用法二

用法三

社会工程学

终于到最后一章了,我可要累死了!

社会工程学概述

基本概念

社会工程学攻击与传统攻击的区别

发展史

传统的社会工程学

网络中的社会工程学

电信诈骗

社会工程学形式

高级持续性威胁(APT)

社会工程学模型

六个阶段

阶段一:确定攻击对象

阶段二:收集信息

阶段三:攻击准备

阶段四:建立信任关系

阶段五:利用信任关系

阶段六:维护对象情绪

社会工程学经典案例

希拉里邮件门

京东内鬼泄露用户信息

高考考生徐玉玉案

社会工程学诱因

社会工程学常用的心理弱点

人格弱点

定义

人格:是构成一个人的思想、情感以及行为的特有模式,这个独特模式包含了一个人区别于他人的稳定而统一的心理品质

人格具有独特性、稳定性、统合性、功能性

人格的成分

五大人格理论

研究表明:外倾性、宜人性和开放性的人格相对于其他人格来说更容易回复钓鱼邮件

人格成因

情绪

定义

情绪是指人对客观事物的态度体验以及相应的行为反应,具有较大的情境性、激动性和暂时性

情绪是人格系统的核心动力,会影响人的思维、语言等过程

良好的情绪调节有利于身心健康

影响与操作

权威

从众

说服

恐惧

社会工程学攻击

信息收集

信息收集的主要方式:

电话诱导

电话诱导的形式五花八门:

网络钓鱼

邮件钓鱼

社交网络钓鱼

鱼叉式钓鱼

定义

鱼叉式钓鱼邮件(Spear Phishing)是近年来新兴的一种网络钓鱼方式。它针对特定的个人或组织进行的网络钓鱼攻击,通过伪装成目标信任的发件人,并精心构造邮件内容来对目标发起攻击

有研究表明,多数鱼叉式钓鱼邮件攻击者都是先设法获取到目标的信任关系及兴趣爱好,并根据其信任关系和兴趣爱好捏造相关的虚假邮件内容,有针对性的进行网络钓鱼。因此,鱼叉式钓鱼邮件具有很高的成功率,造成的财产或精神损失也更加巨大

特点

鱼叉式钓鱼的成本与收益

社会工程学防御

人员安全工程

保护个人信息资料不外泄

时刻提高警惕,不要轻信网络中所看到的信息

保持理性思维

不要随意丢弃废物

钓鱼网站检测与防御

基于黑名单、白名单形式的钓鱼网站检测

主要是维护一个已经出现的钓鱼网站的黑名单和确定是正常网址的白名单。每次要访问某个网址时,通过对比名单上的网址,可以知道这个网址的可以程度

基于网站特征的启发式钓鱼网站检测

基于页面特征、URL特征等自身特征进行机器学习,从而得到检测钓鱼网站的系统

钓鱼邮件检测

目前的钓鱼邮件主要是基于邮件特征的启发式检测方式。特征包括:邮件文本特征、URL链接特征以及情感特征等,均能达到较为理想的效果

基于邮件特征的启发式检测:

28号开始,到1号,5天搞完,又得马上投入下一科,谁叫你平时不去上课呢!

参考资料