信息犯罪与计算机取证
上QQ阅读APP看书,第一时间看更新

1.2.4 通信安全

现在很少有机器不连接在网络上,除非一些绝密部门或有特殊安全需要的地方,从物理上和外部网络隔离。因此通信安全是信息系统安全体系中的一个重要组成部分,有时候甚至是核心部分。

通信安全包括很多内容,是一个很大的专题,这里不可能面面俱到。本节主要从一个信息安全系统的角度出发,对通信中涉及的主要和典型的安全问题进行介绍。

1. 无线和有线物理层安全

根据网络的分层结构,无论是ISO组织提出的OSI七层模型,还是TCP/IP栈的四层模型,最底层的仍然是物理层。它是网络运行的基础也是安全的基础。从网络的连接方式而言,可以分成有线网和无线网两大类。这两类网络的物理层安全由于采用的传输介质不同,在安全方面有较大的差异。

有线信道的物理安全主要涉及物理配线安全、拓扑扩展安全等。对物理配线安全主要考察三个方面:授权连接、信号辐射和连接完整性[9]。授权连接和连接完整性主要检查铺设的电缆及其走向是否通向已知位置,防止攻击者进行搭线窃听。系统标记所有信道和中间节点,确保在通信范围内所有网络连接都是被授权的,没有被攻击者破坏整体网络机器拓扑的完整性。

信号辐射主要是控制信号的辐射范围,为了避免影响广播通信和预防边界信道攻击,信号在传输过程中应尽可能少地辐射到其空中范围。但这并不意味着减小信息传输能量,让接收方无法收到信息。

对无线信道而言,被窃听的概率更高,且更隐蔽和容易。因此,无线信道在无法控制其拓扑完整性和连接完整性的情况下,只能通过加密和授权的方式保障其信道安全。通常基于无线通信的网络会采用加密技术保护在它上面传输的信息,并且在用户接入网络之前需要通过口令验证其合法性。

2. 路由器和交换机安全

在通信网络中,作为转发和连接节点的路由器和交换机对整个通信网络的安全也起着重要的作用。目前已经出现针对路由器和三层交换机的攻击,如篡改路由表、从转接点插入窃听点等。

路由器(或三层交换机)实际上是一个嵌入式系统,它有自己的操作系统,并能执行相应的配置、包过滤等操作。在骨干网络中,大量的通信从路由器中经过,各种各样的信息都要从相关的路由器上进行存储转发。因此,一旦路由器或交换机被非法控制,对整个通信系统的安全将造成极大的威胁和危害。而路由器安全本身是一种发展很快且较为复杂的技术,通常需要专业人员的参与。因此,如何保护路由器和交换机安全是加强通信网络安全的一个重要方面和关键部分。

3. 协议安全

在物理信道之上,为了保证信息的准确传输,出现了各种类型的协议,尤其在应用层上,出现了各种各样的安全协议和通信协议。有的协议在设计之初并没有考虑到安全因素,只是完成某个通信功能,在普遍使用之后发现,协议的安全性对维护整个通信系统的安全性是至关重要的。目前很多针对网络的攻击,都是从已有的协议漏洞着手,通过协议中的设计缺陷或功能不完善的地方攻入网络。

安全协议是一个较大的主题,本节不深入讨论如何设计一个安全的协议,而是让读者了解协议安全在整个通信系统安全,乃至整个信息安全系统中的地位。

在分布式环境下实现安全的信息共享是开发安全协议的需求动力。已有的安全协议很多,但是要保证协议的安全性却是一个难题。目前还没有找到一种有效的方法,可以保证或者用来证明所设计的协议是安全的。而要证明协议是不安全的,只需要举一个反例即可。因此,协议的安全证明是信息安全的一个前沿课题。

对信息安全系统而言,协议是通信系统中不可或缺的部分,协议的安全性是通信安全的重要保障,因此,它在信息安全体系结构中有着重要作用,安全协议的形式化分析作为协议分析的一个重要方法,已经成为一个研究专题。

最早提出对安全协议进行形式化分析思想的是Needham和Schroeder[10]。而真正在这一领域首先做出工作的是Dolev和Yao[11],他们提出了多个协议并行执行环境的形式化模型。此后的协议形式化分析模型大多是基于该模型的一个变体。早期的形式化分析工具大都采用状态探测技术。直到1989年,Burrows、Abadi和Needham提出了BAN逻辑,这是一种与状态探测完全不同的方法,它是关于主体拥有的知识与信仰以及用于从已有信仰推知新的信仰的推理逻辑规则。但是BAN逻辑本身也存在许多不足之处。

目前,协议形式化分析技术主要分为三类:一是以BAN逻辑为代表的基于推理结构性方法;二是基于攻击结构性方法;三是基于证明结构性方法。

对协议的安全证明除了形式化方法外,还有一大类属于非形式化方法,如聚类分析等。它们是对形式化分析的补充,用于解决协议分析中状态空间爆炸问题。

4. 应用程序安全

在信息系统中与用户接触最为密切的就是应用程序和各项服务。而与网络相关的应用程序非常多,如Web应用程序、分布式数据库、各种聊天工具、文件传输工具、电子邮件软件等。很多应用程序本身存在漏洞和缺陷,相当一部分应用程序的漏洞和缺陷成为攻击者入侵的入口。

对基于网络的应用程序而言,除了正确实现软件应有的功能外,提高自身的安全性能有重要的意义。网络入侵技术的发展十分迅速,软件的漏洞和缺陷从被发现到被非法利用的周期越来越短。因此,提高应用程序的安全性是软件设计的一个重要研究领域。下面对几类常用的基于网络技术的应用程序安全进行介绍。

(1)Web应用程序的安全

通过浏览器作为客户端程序,获取网站信息或者进行数据库数据共享等应用非常普遍。而Web应用程序本身安全性的不足使基于Web应用程序的攻击发生频率很高,种类繁多。常见的攻击有拒绝服务攻击、改变Web页面内容、窃取个人或组织的敏感信息、窃取银行账号等。

上述攻击的特点是攻击不易检测,并且攻击者可以是任何在线用户,甚至是合法的认证用户。由于很多企业或公司的防火墙都会开放80端口,因此,防火墙对来自80端口的信息检测大大不如来自其他端口的信息,从而使Web应用程序攻击十分广泛。攻击者主要利用了以下一些信息和技术。

① 缓冲区溢出

在一些Web服务器端程序中,由于编程时的疏漏,对一些变量的边界检查和类型检查不是十分严格,在程序中可以出现缓冲区溢出的缺陷。攻击者利用这一点将非法信息串,如系统命令以参数的形式传到服务器上,并进一步获取更高的权限,一般攻击者的目标是获得管理员权限。

② 已知的安全漏洞

在一些与Web相关的应用中,已经被使用者或开发商发现的安全漏洞,需要安装额外的补丁才能弥补原有程序的安全缺陷。例如,微软的IIS(Internet Information Server)在2000年10月发布了一个安全漏洞,即可以利用扩展统一编码目录通过该漏洞访问Web服务器所在的逻辑盘(安全公告MS00-078)。攻击者可以利用IIS中一些不妥当的UNICODE编码处理方式,键入特定格式的URL地址,从而可以访问Web服务器所在的逻辑盘。进而获取并运行IUSR_machinename账号下的文件。

如果某台安装有该IIS版本的Web服务器,没有及时下载并安装补丁,那么攻击者有可能利用该安全漏洞入侵该机器。

③ 错误的配置

有时买来的软件是安全的,但是使用时没有正确地配置其运行参数,如该关闭的权限没有关闭,将不需要开放的端口开放,匿名账户或系统默认账户没有关闭等。这些问题并不是程序本身的安全问题,而是使用者不了解或疏忽了,造成攻击者有机可乘。

④ 陷门

有的程序员在编辑程序时,为了方便程序的调试以及后期维护,在程序中设置一个后门,并在程序交付使用时,没有妥善地将这些后门去掉。这些后门(或称为陷门)有时具有管理员权限,却没有被监管。在正式使用后,这些陷门一旦被其他使用者发现,或者被程序编写者不正当利用,将为攻击者提供一个非常好的控制和入侵的途径。

⑤ Cookie中毒

Cookie是Web站点用于用户认证时在用户系统上存储的一些与用户认证相关的信息,如用户的ID号、密码以及账号等信息。Cookie中毒就是攻击者修改这些数值,或者窃取他人的Cookie,其目的是为了盗用或冒充其他合法用户。

⑥ 跨站脚本运行

通常情况下,当用户在HTML的表单中输入一些数据并将表单提交到服务器时,服务器会将用户输入的数据通过应答页面返回给用户,让用户确认这些输入的信息。攻击者利用服务器的这个特性,将有恶意行为的JavaScript程序等代码信息作为表单数据发给服务器,而服务器并不检查这些数据,当另一个用户需要这些数据时,直接将内嵌有恶意脚本的页面发送给其他用户,而这些恶意脚本将在另一位用户的机器上运行。由于用户完全信任来自于服务器的数据,因此用户会认为这是来自于服务器的合法代码。

一个典型的例子是在BBS上投递信息,一个用户将一个表单投递到BBS上,其中包含有恶意代码,而另一个用户浏览该BBS时,就有可能将带有恶意代码的表单下载到本地机器运行,而以为该表单是来自BBS服务器的合法页面。

⑦ 隐藏字段

在HTML页面中有些字段是隐藏的,经常用于存储系统密码或商品价格等较敏感信息。但是这些字段并非如同其名字一样是完全隐藏的,在Web页面上通过“查看源文件”命令可以将这些隐藏字段的内容看见,并且进行修改。攻击者可以通过修改隐藏字段的数据将价格等信息降低,而传到服务器端的数据若没有进行校验和比对直接进行账单生成,则可以花很少的钱甚至不付钱买到对应的产品。

⑧ 直接存取浏览

在有的Web程序中,需要用户先输入登录信息,进行身份认证之后,才可以进入下一个页面进行进一步的访问。如果没有正确配置Web程序,攻击者有可能绕过该认证过程,直接输入他/她想访问页面的具体URL地址,同样可以进行访问。

除了上述几种典型的对Web应用程序的威胁意外,还有很多其他的方式。这里需要说明的是,应用程序安全是信息系统安全体系中重要的一个环节,但也是比较难控制的一个环节。程序是多样的,使用的程序来自于多个供应商。要做到程序安全需要大家的共同努力。

(2)电子邮件的安全

电子邮件是信息时代人们日常使用的通信方式之一,自电子邮件出现以来,其利用率逐年增长,以至于成为现代生活中不可或缺的一部分。随着电子邮件的普及,其安全问题也越来越被人们重视。在通信系统中,电子邮件的安全问题主要有以下几个方面。

① 电子邮件欺骗

这种方式是指修改邮件的实际发送者,邮件发送者使用工具将其真实的IP地址换成其他IP地址(伪造的IP地址)。这种工具目前在Internet上已经出现。典型的电子邮件欺骗方式是利用发送邮件协议伪造。

发送电子邮件必须遵循一定的规则[12],在计算机网络中通过协议来规范。电子邮件系统协议比较复杂,但发送邮件与接收邮件均采用不同的协议,发送邮件一般采用SMTP(简单邮件传输协议),接收邮件时常使用POP3协议(邮局协议)和IMAP(由于IMAP实际可以与服务器同步,是一种在线连接的方式,这里不讨论通过IMAP伪造的情形)。通过协议伪造电子邮件主要利用电子邮件传送协议的漏洞进行。通常又可分为两种不同的伪造办法。

第一种:利用无需验证的SMTP漏洞。

从电子邮件的数据结构看,电子邮件包括两部分,一是电子邮件头,二是电子邮件正文。电子邮件正文包括电子邮件内容和附件[13],电子邮件头则包括信封头和路由信息,根据RFC822规定,在邮件正文(或称信体)与邮件头之间有一空行把它们隔开。电子邮件与服务器通信过程中,一般均采用服务器/客户端模式,当客户端提出服务请求时,服务器响应客户端的请求,把请求的结果与状态返回到客户端,服务器与客户端不断通过这样的过程,最后完成通信。一个正常SMTP的相应对话过程如图1-1所示。

47398-00-034-1

图1-1 正常SMTP的相应对话过程

当利用SMTP伪造时,只需要在图1-1对话过程中,添加部分虚假的信息便可以完成。下面是服务器响应客户端请求时的一个最简单流程。

a. 客户端连接到服务器,通过HELO命令向服务器标识用户身份;服务器返回欢迎信息。

b. 客户端通过MAIL FROM 命令指定发件人地址,如果服务器不需要验证用户的身份,此时,欺骗者可以在此处输入一个虚假的电子邮件地址;服务器返回确认信息。

c. 客户端通过RCPT TO 命令标识邮件接收人,指定被害人的电子邮件信箱;服务器返回确认信息。

d. 客户端通过DATA命令进入初始化数据传输状态;服务器返回确认信息。

e. 客户端输入电子邮件主题信息、正文内容,并以CRLF.CRLF 结束;服务器返回确认信息。

f. 通过QUIT 结束会话。

从这个伪造流程看,伪造最为关键的步骤在于上述流程中MAIL FROM时,客户端伪造了虚假的发送人电子邮件地址,当接收方收到电子邮件时,显示的发送者便变成伪造的电子邮件地址。这种伪造是目前最常见的电子邮件伪造形式之一,实际伪造可能会利用专用的软件进行,但目前较多邮件服务器进行了升级、改善。很多邮件服务器不支持未通过身份验证便可以发送邮件的流程,但是只要在网络中找到一个可以支持无需验证的SMTP服务器,则电子邮件伪造仍然可以进行,因为几乎所有后续的电子邮件服务器均不会验证发送者信息是否伪造。

第二种:利用身份验证的ESMTP。

目前,新一代电子邮件协议均采用扩展的SMTP,即需要身份验证的ESMP,在此协议中,当用户使用电子邮箱发送电子邮件时,必须键入对应的电子邮箱账号的密码才可使用邮件服务器的发送邮件服务。主要在MAIL FROM前必须通过验证才可以使用发送邮件协议,增加步骤如下。

a. 客户端通过EHLO命令要求按照ESMTP方式进行通信,服务器返回欢迎信息并要求选择认证方式后进行身份认证(如250-PIPELINING 250-AUTH=LOGIN PLAIN 250-AUTH LOGIN PLAIN)。

b. 客户端通过AUTH LOGIN命令请求身份认证;服务器返回334 VXNlcm5hbWU6要求输入用户名。

c. 客户端把用户名BASE64编码加密以后,将加密后的字符输入请求认证;服务器返回确认信息并返回334 UGFzc3dvcmQ6要求输入密码。

d. 客户端把密码通过BASE64编码加密后,将加密的字符输入请求认证;服务器返回身份认证成功信息。

e. 其他步骤同SMTP,但是输入DATA命令后进入数据初始化传输状态时,客户端输入FROM命令,在此命令后输入伪造的电子邮箱信息,其他与SMTP同。

虽然ESMTP增加了安全性,但这种ESMPT仍然可以被伪造,只不过在伪造过程中必须借用一个合法的电子邮件账号,进入这个账号以后可以在FROM域进行伪造,这个时候收件人收到电子邮件后,邮件收件人信息便是伪造的信息。通常伪造者会申请一个免费的电子邮箱账号,此账号未透露其身份信息,通过这种方式隐藏自己的身份。而目前申请一个免费的电子邮件非常容易,所以这种伪造方式也是常见伪造方法之一。

② 电子邮件中继

电子邮件中继是指使用其他邮件服务器发送电子邮件。正确配置的邮件服务器只处理系统内的用户发送的邮件,不会对系统外的IP地址发送的邮件进行中继。然而一旦邮件服务器配置不当,就可能会被其他人利用,进行邮件中继。

这类由于电子邮件服务器配置上的不当引起的邮件安全问题,主要通过对邮件服务器管理者的培训、对邮件服务器的安全审计,以及安全管理等方面的配合来杜绝。在电子邮件使用的早期,人们往往忽视了这方面的问题。目前除了一些管理薄弱的邮件系统仍然存在该安全漏洞之外,多数邮件系统的管理员已经意识到该问题,并且在服务器进行安全配置时就将其拒之门外。

如果发生这一类电子邮件安全问题,则对邮件的鉴定需要邮件中继服务器上的日志信息进一步定位邮件伪造者的真实地址。而最终攻击者的真实身份是否能判定与邮件中继服务器的环境以及数据保存状况有关。

③ 电子邮件账户的盗用

电子邮件账户的盗用指的是获取被害人电子邮件账号及其对应密码,并利用账号和密码直接进入邮箱操作的伪造行为。一旦黑客获取了某人电子邮箱的用户名和密码后,就很难追踪到真正的发送者。这往往会导致该用户无辜受到牵连,此时通常需要通过其他渠道来证实谁在该时间使用此电子邮箱。从盗用账户时获取密码的途径进行细分,可分为三种形式。

第一种:猜测密码的方法获取密码。

此类电子邮件伪造行为主要是事先通过各种途径获悉被害人电子邮件账号信息,并根据账号信息,直接登录到相应的邮件服务器,通过不同密码试探的方法多次测试是否通过服务器的验证,直到成功为止。通过这类途径伪造电子邮件比较罕见,因为试探方法一般很难奏效,除非被害人采用的电子邮件密码十分简短和简单。

第二种:盗窃密码的方法获取密码。

此类伪造通常发生在比较亲近或熟悉的人之间,通过各种关系偷看被害人输入密码,或者通过进入被害人计算机,利用计算机中保存的密码进入被害人邮箱中,并冒充被害人的身份伪造电子邮件。

第三种:技术窃取的方法获取密码。

通过技术窃取密码是常见的获取密码方式,在此类方法中又分两种不同的获取途径。第一种途径为通过黑客程序进入被害人计算机嗅探密码;第二种途径为通过局域网监控获取密码。虽然采取的手段不同,但密码获取的原理基本相同。具体而言,在计算机网络数据传送过程中,数据包的传送通常采取明文形式,没有经过任何加密保护[14]。只要熟悉计算机网络相关协议(可理解为数据转换规则翻译程序)的人就能够理解数据包的结构、每个字段的意义。而电子邮件在传送过程中,电子邮件账号、密码必须通过用户客户端传送到服务器进行认证,这些都是通过数据包在网络中传送的。如果在这些数据包经过的路径上截取它,通过分析数据包的内容就能够获得其中的电子邮件账号和密码。

如果利用黑客程序进入被害人计算机,那么黑客程序便运行黑客嗅探程序,当用户使用电子邮箱并输入账号和密码时,黑客程序立即截取密码并转发到黑客预留的电子邮箱中。而通过局域网监控时,如果监控点就是网关,由于被害人任何外出的数据包都必须经过它,所以很容易获得密码;如果监控点不是网关,由于局域网一般采用广播的形式发送消息,其获取密码方法就与监控点获取效果相同。

以上三种电子邮件账户的盗用方法均是通过获取密码,然后冒充被害人进行伪造,由于这样获取密码后的伪造过程与被害人实际操作的过程十分相似,所以对此类电子邮件分析相对比较复杂、困难。一般需从不同人发送电子邮件所处不同位置着手考虑。

④ 免费电子邮箱

一般电子邮箱在申请时要求输入使用者的基本信息,但是邮箱提供者很少对信息的真实性进行审查,很多信息是虚假的。因此一旦追踪到某个免费电子邮箱,而邮箱使用者登记的信息不真实,就会给取证追踪带来很多困难。

尽管有些邮件系统在用户申请免费邮箱时要求进行实名登记,但由于监管登记过程的复杂性,会影响免费邮件系统的性能。因此仅在注册时以条款方式提醒,但实际操作中并不进行验证和审查。目前对免费电子邮件的追踪仍然存在技术上的盲点。

在上述4类典型的电子邮件威胁中,第二种情形——电子邮件中继,可以通过加强管理,进行安全审核等方法加以预防和早期防御。其他三类威胁目前还没有找到较为有效的防御手段,需要根据实际情况进行判断,至今仍没有一个可以一劳永逸的方法解决所有的电子邮件安全的问题。