李秦
摘 要:随着现代计算机网络技术的不断发展与应用,应用软件网络化已成为软件行业发展的必然趋势。然而目前大多数网络应用软件都或多或少存在数据安全隐患,这将严重影响用户的隐私与财产安全。文章简要分析了影响网络应用软件的安全因素,并给出具体的安全防护策略。
关键词:网络应用软件;数据安全;数据解密;通信安全
1 引言
国家计算机网络应急技术处理协调中心发起成立的“国家信息安全漏洞共享平台(CNVD)”共收集整理信息安全漏洞3447个,其中高危漏洞649个(占18.8%)。CNVD2013年收集整理的漏洞中,应用程序漏洞占62%,操作系统漏洞占 16%,WEB应用漏洞占9%,分列前3位。因此,网络数据安全最终目标是要解决软件安全,因为应用软件是收发网络数据的主体,如果软件做到无懈可击,那么黑客截获到的网络数据是一堆不可逆的乱码,也就不会有网络数据安全的顾虑。
2 网络应用软件数据安全隐患分析
2.1 目前主流网络应用软件数据的安全性
2.1.1 即时通讯类软件,例如腾讯QQ、阿里旺旺、Skype等
目前大多数IM类软件除了基本的文字聊天外,还会有视频语音聊天以及传输文件等功能。一般文字聊天,因为发送的网络数据量小,可以不需要关注加密算法性能,所以加密强度都比较高。对于频语音聊天以及传输文件功能,由于发送的网络数据量大且频率高,如果采用复杂的高强度加密算法,势必会严重影响服务器的性能,因此很多IM类软件会采用简单的加密算法或者不加密。Skype的前身MSN其视频语音数据就是不经过加密的,因此黑客截获到它的视频语音数据,只需要调用视频编码器进行解码即可还原其音视频。虽然大部分IM类软件会对视频语音数据进行简单的加密,但是都使用可逆的对称加密算法,黑客通过逆向客户端程序,找出加密解密算法,再通过网络截取对称算法采用的密钥Key和密文,即可进行视频语音数据还原。
2.1.2 VOIP类软件
虽然即时通讯类软件一般都集成有VOIP功能,但是只有VOIP类软件可以拨打固定电话或者手机。目前一些主流VOIP类软件收发数据都采用异或等非常简单加密解密算法来处理数据流。目前VoIP技术最常用的话音建立和控制信令是H.323和会话初始协议(STP)。SIP协议是IETF定义多媒体数据和控制体系结构中的重要组成部分。同时,由于SIP只负责提供会话连接和会话管理,而与应用无关,因此SIP可以被用于多个领域。即使是协议本身也有潜在的安全问题:H.323和SIP总体上都是一套开放的协议体系。同时,最为一种新兴发展技术的传输协议,SIP并不完善,它采用类似于FTP、电子邮件或者HTTP服务器的形式来发起用户之间的连接。利用这种连接技术,黑客们同样会对VOIP进行攻击。如果网关被黑客攻破,IP电话不用经过认证就可随意拨打,未经保护的语音通话有可能遭到拦截和窃听,而且可以被随时截断。黑客利用重定向攻击可以把语音邮件地址替换成自己指定的特定IP地址,为自己打开秘密通道和后门。黑客们可以骗过SIP和IP地址的限制而窃取到整个谈话过程。
2.2 网络应用软件数据解密方法
要想把网络截获的数据还原,首先需要确定数据采用的协议和解密算法,软件处理数据的算法自然需要去逆向分析。目前逆向分析大多使用动态调试器OllyDbg和静态反汇编程序IDA相结合,进行加密解密算法的分析。使用动态调试器对一般软件的网络数据发送或接收的API下断点都是可以截获网络数据的,常用断点如下:WSASend、WSASendTo、WSARecv、WSARecvFrom、send、sendto、recv、recvfrom。而有些软件采用自己实现网络数据收发函数来代替上述API,因此输入表中无法查询到标准Windows网络API,也无法对此类API下断点调试分析。不过仍然可以使用动态或静态反编译程序手动定位函数并下断点进行逆向分析。对于有些软件加强壳且无法脱壳的情况,可以直接在内存中Dump程序,用静态反编译程序逆向分析。
2.3 网络应用软件数据截取方式
以上所说的都是数据解密还原,下面简要论述数据在网络传输过程中的截取方法。
(1)如果当前计算机是在局域网环境中,而本局域网是用Hub(集线器)连接。我们可以用熟知的集线器的工作原理,将自己的计算机网卡工作模式设置成混杂模式,来监听局域网所有的PC发送的数据。
(2主机所处的网络不是局域网(通过路由器连接),这种情况需要获得路由器的用户名和密码。而目前大多数路由器的初始账户密码是固定的,很多网络管理员也忘记更改默认账户信息,导致黑客很容易获取路由器管理权限,并实现路由转向功能。具体步骤是在路由器上创建新的路由表,将IP指向黑客自己的电脑,并用网卡配置命令IFCONFIG创建一个新的逻辑网卡,之后再在电脑上配置简单的网络地址转换服务(NAT),并将数据通过这个链路重新路由过去。黑客通过以上处理步骤,即可用程序来监听所有流经网卡的数据包了。
(3)如果我们能够实现入侵挂马在一些路由PC服务器上面,就可以监听通过这个服务器的数据,实现软件数据截取。
(4)如果我们有网络管理员权限,要监听计算机上网数据,可以把网络监控程序直接放在网络出口上面就可以进行软件数据的截获。
3 网络应用软件数据安全防护策略
根据上述网络应用软件存在的数据安全隐患,以及分析、截获数据的方法和方式,我们在软件的编写过程中,适当地改变数据安全防护策略,将有效避免网络应用软件出现安全隐患。具体方案如下:
(1)软件要有对自身的校验和检测调试器的机制,防止被黑客修改和动态调试。
(2)软件编译完成后尽量加上壳,防止被IDA等静态反汇编程序分析代码。
(3)软件通过网络交换数据时,采用可逆对称算法处理速度很快,但是并不安全,其强度在于KEY的管理,所以并不适合单独使用。而非对称不可逆加密算法,安全性很高,但处理速度很慢,因此不适合大数据量的加密解密。假如我们结合两者优点,用非对称不可逆算法进行交互来生成对称算法所需要用到的KEY,那么KEY在网络中就无法被解密,之后网络数据还是使用可逆对称算法处理,这样既可大大提高网络数据传输的安全性能。
(4)因为网络数据流量实在太大,所以网络监听都是有一定的过滤条件,因此只要能够欺骗监听软件即可实现反监听从而保护软件的数据。可以采用以下几个方案进行处理:(a)程序设计时,不采用自定义网络端口,而采用80、443、21等端口。比如21端口是FTP协议采用的,程序可以将数据包投模拟成FTP协议来增加黑客判断难度。(b)采用动态IP,软件通过下载加密的服务器列表配置文件来获得IP地址。(c)采用动态端口,与动态IP方式类似,通过服务器下载,并解密取得网络通讯端口。(d)采用动态网络数据包头格式,即对收发的数据包头一并进行加密,这样黑客通过数据包头固定格式来分辨数据包作用的方式就行不通了。
4 结语
随着互联网的发展,网络环境下的应用软件面临黑客攻击、病毒感染等一系列威胁,如何保证软件数据的保密性、完整性、可靠性和可用性是个复杂问题,但软件增强自身的安全性仍旧是重中之重。如果软件自身安全做的到位,黑客无法调试分析软件网络通信数据的加密解密算法,那么通过网络截取到的数据,也就无法从密文还原成明文,这样软件的数据安全也就得以保证。
[参考文献]
[1]李军义.计算机网络技术与应用[M].北京:北方交通大学出版社,2006.
[2]蔡立军.计算机网络安全技术[M].北京:中国水利水电出版社,2005.
[3]张嘉宁.网络防火墙技术浅析[J].通信工程.2004(2):7-12.
[4]郑成兴.网络入侵防范的理论与实践[M].北京:机械工业出版社,2006.
[5][美]Merike Kaeo著.网络安全性设计[M].北京:人民邮电出版社,2005.