张 健, 陈未如, 关 慧
(沈阳化工大学计算机科学与技术学院,辽宁沈阳110142)
随着网络应用日益增多,网络应用程序越来越复杂、越来越开放,其安全性问题越来越显现.网络应用程序的开放性和允许对信息的公共访问,使程序面临多种威胁.有报告表明,在2008下半年网络应用程序的漏洞占互联网漏洞的80%,在2010上半年又上升约8%[1],网络应用程序的安全问题已成为一个重要的研究课题.
威胁分析是保障网络应用程序安全性的重要前提.但网络应用程序类型很多,综合分析其所面临的威胁较为复杂,有必要对网络应用程序进行类别划分,以便进行威胁分析和研究.叶升路等从程序漏洞角度分析指出,网络应用程序所面临的安全威胁可来自运行环境、网络传输过程和程序代码3方面[2];秦育华阐述了受威胁的主要资产是网络、主机和应用程序[3];张红林等为研究网络流量监测技术,根据所对应的服务类型和所使用的协议对网络应用程序进行分类[4]; Akhilesh Bajaj等提出使用页面结构、业务处理的位置、内部事件的相关程度对万维网应用程序进行分类[5];胡勇提出的分类仅限于资源的分布研究,威胁源头定义为人为因素或自然灾害2方面[6].从以上内容可得出,对网络应用程序威胁研究更多的是从应用程序自身出发,而在分类基础上研究网络应用程序面临威胁的内容较少.
本文从网络应用程序自身出发,研究其所面临的威胁,在基于其使用范围、目标用户、连接方式等3个属性对网络应用程序进行分类的基础上进行研究.另外文中定义网络应用程序的主要资产为DFD中的数据流和数据存储两部分,从网络应用程序流程框架中分析这两部分面临的主要威胁.
网络应用程序面临的威胁错综复杂,威胁的存在与网络应用程序所处的环境息息相关.以环境作为切入点对网络应用程序进行划分,是对威胁进行详尽研究的一种有效途径.尽管网络应用程序的体系结构及支撑系统的复杂程度各有不同,但它们都是通过网络向用户开放,运行这些应用程序所需的资源和技术可能相同,所以能够找到一种划分网络应用程序类型的方法,并以此为基础研究网络应用程序的威胁.
根据不同的运行环境,基于使用范围、目标用户和连接方式等3个属性对网络应用程序进行分类.网络应用程序的使用范围包括3类,即仅供企业内部使用、内部和外部混合使用和外部使用;目标用户分为已知用户和匿名用户2类;连接方式包括内联网、VPN和互联网.根据上述属性划分,考虑实际应用情况,网络应用程序可 划分成5种类型,如表1所示.
表1 网络应用程序分类Table 1 Classification of Web application
威胁是可能对资产或组织造成损害的意外事件的潜在原因[7],所以威胁的主要对象是资产.Microsoft已经开发了一种对威胁研究的方法,将威胁分为:欺骗(S)、窜改(T)、否认(R)、信息泄露(I)、拒绝服务(D)和特权升级(E)6类(STRIDE),并依据数据流图进行威胁资产分析[8].以数据流图中的数据流和数据存储2部分作为威胁的资产,研究不同类型网络应用程序所面临的威胁.
为便于说明,把威胁表示为Ti(i=1.2…n),网络应用程序的属性表示符号分别为:
使用范围(A):内部使用——A1;内外混合模式——A2;外部使用——A3.
目标用户(B):已知用户——B1;匿名用户——B2.
连接方式(C):内网连接——C1;VPN连接——C2;外网连接——C3.
以数据流作为资产主要分为3个阶段,即用户登录与服务响应进程之间,服务响应进程与身份验证进程之间,业务逻辑与数据库之间.表2~表4分别列出网络应用程序在不同阶段面临的部分主要威胁.
以数据存储作为资产主要分为数据库和服务器2个方面.表5、表6分别列出这2个方面5种网络应用程序类型面临的主要威胁.
表3 服务响应进程与身份验证进程之间的部分主要威胁Table 3 Facing primary threats between services response processes and authentication
表4 业务逻辑与数据库之间的部分主要威胁Table 4 Facing primary threats between business and database
表5 数据库后为资产的部分主要威胁Table 5 Database as assets faced primary threats
表6 以服务器作为资产的部分主要威胁Table 6 Server as assets faced primary threats
表2~表6列出了不同阶段的主要威胁及 其描述,这些威胁可归类于微软提出的STRIDE六个方面.根据威胁归类的不同,表7简要列出 了STRIDE六个方面威胁的部分应对对策.
表7 基于STRIDE的威胁对策Table 7 Based STRIDE's threats strategy table
在1、2工作的基础上,根据1提出的网络应用程序的分类方法(详见表1),可得到各种网络应用程序面临的部分主要威胁.威胁生成算法的伪代码如下:
上述威胁生成算法的主要思想是:在明确网络应用程序3个属性值的前提下,通过查找表2~表6,得到不同网络应用程序面临的部分主要威胁.可以看出,算法中的主要部分是网络应用程序的分类条件,上述算法中只列出生成web_ app1、web_app4两种类型的条件,那么根据前文提出的网络应用程序分类方法可知:当使用范围为混合使用(A==A2)、目标用户为已知用户(B==B1)且连接方式为外网连接(C==C2)时,通过查找表2~表6,可以得到Web_app2面临的部分主要威胁;当使用范围为外部使用(A==A3)、目标用户为已知用户(B==B1),同时连接方式为外网连接(C==C3)时,通过查找表2~表6,可以找到Web_app3面临的部分主要威胁;较为复杂的是web_app5的条件,当使用范围为混合使用(A==A2)、目标用户是已知或者匿名用户((B==B1)||(B==B2)),在连接方式既有内网连接又存在外网连接((C==C1)|| (C==C3))的情况下,通过查找表2~表6,可得Web_app3面临的部分主要威胁.
例:某公司总部在北京,总部使用以太网接入Internet,为满足外出业务人员及时获取信息、更新总部的数据库等需求,出差人员可通过VPN与公司总部进行网络沟通和交换信息.这种网络应用程序的使用范围为外部使用(A==A2)、目标用户为匿名用户(B==B1)、连接方式为内外混合连接(C==C2),通过查找表2~表6,可得该种网络应用程序面临的部分主要威胁,如表8所示.
表8 Web_app2所面临的部分主要威胁Table 8 Web_app2 faced primary threats
在分析出web_app2类型的网络应用程序面对的威胁后,使用表7研究威胁的相应对策.这里不再过多说明.
提出从网络应用程序分类入手对威胁进行研究的思路.基于使用范围、目标用户和连接方式等3个属性对网络应用程序进行分类,以此为基础可分析、研究网络应用程序面临的主要威胁.列举以数据流和数据存储为资产的部分主要威胁,给出分析发现给定网络应用程序面临威胁的算法,阐述基于STRIDE威胁的对策,并进行案例分析.
网络应用程序的安全评估是个复杂且需要大量研究支撑的工作.以分析、研究网络应用程序面临的威胁为基础、加之一套有效的安全评估度量方法,能够更好地完成网络应用程序的安全评估.
[1] Khera M.Web Application Security Trends Report[EB/OL].(2009-3-17)[2010-12-22]http://blog.cenzic.com/public/blog/228854.
[2] 叶升路,徐波,栾国森.提高Web应用程序的安全性[J].计算机安全,2010(6):38-42.
[3] 秦育华.WEB网络应用程序安全威胁及对策的研究与探讨[J].电脑知识与技术,2010,6(21): 5716-5719.
[4] 张红林.面向应用的流量识别算法研究和实现[D]湖南:国防科学技术大学计算机学院,2006: 18-20.
[5] Bajaj A,Krishnan R.Analyzing Models for Current World Wide Web Applications Using A Classification Space and Usability Metrics[EB/OL].(1998-06-15)[2010-12-22]http://nfp.cba.utulsa.edu/ bajaja/MyInfo/conferencepubs/EMMSAD98.doc.
[6] 胡勇.网络信息系统风险评估方法研究[D].四川:四川大学应用数学专业,2007:58-60.
[7] 孙鹏鹏.信息安全风险评估系统的研究与开发[D].北京:北京交通大学计算机软件理论专业,2007:8-9.
[8] Hernan S,Lambert S,Ostwald T.Uncover Security Design Flaws Using the STRIDE Approach[EB/ OL].(2006-11-15)[2010-12-25].http://msdn.microsoft.com/en-us/magazine/cc163519.aspx.