2010年第3期福建电脑57应用安全分析赵思佳1.一,尹婷1,2(1、湖南环境生物职业技术学院信息技术系湖南衡阳4210012、中南大学信息科学与工程学院湖南长沙410083)摘要:本文就目前广泛使用的技术所带来的安全问题进行了分析,介绍了常见的安全防御解决方案,对使用框架开发安全的应用提出了建议。关键词:,安全,应用随着网络通信与计算机技术的飞速发展.服务的种类也逐渐多样化。传统的技术由于互动性和实时性的缺陷.已经无法满足现实的需要。然而,由于唧技术在,.等行业巨头的推动下发展成熟。以突出互动性.实时性用户体验的框架在2005年开始在上崭露头角.并在2005到2009年问广泛流行。不但大有取代传统的服务架构的趋势,而且被冠以2.的高度。
被业界公认为下代服务的技术标准。.一、技术是的缩写.是一种运用和『扩展标记语言。在网络浏览器和服务器之问传送或接受数据的技术。正如前文所述,由于传统应用程序在实现中无可避免的等待机制一等待服务器响应.等待屏幕刷新.等待请求返回和生成新的页面。
使得起发展得到了很大的制约。而技术则尝试在应用中。建立桌面应用程序的功能和交互性.与不断更新的应用程序之问的桥梁。使得应用程序可以使用像桌面网游公测应用程序中常见的动态用户界面和漂亮的控件。应用程序主要用到了以下几种技术:、代码:通用的脚本语言。用来嵌人到应用之中。是运行)应用程序的核心代码。将其它的技术捏合在一起。帮助改进与服务器应用程序的通信。2、层叠样式表:为页面元索提供了一种可重用的可视化样式的定义方法。用于统一修改用户的界面样式。3、文档对象模型:用于(通过代码)处理眦结构和(某些情况下)服务器返回的。4、对象:允许程序员从服务器以后台方式获取数据。数据格式通常是。但也可以很好的支持任何基于文本的数据格式。其各个技术组件之间的关系如图1一所示:图1?1组件及其关系二、心带来的安全问题框架技术极大地提高了网页的动态交互性。并提供给用户远胜于传统7兀甲页面的全新操作体验。但框架技术在带来这些操作和性能上的优点的同时.也引入一些容易让人忽视的安全问题.而一些在传统Ⅳ应用中威胁度级男并不高的安全问题。也随着框架本身固有的一些特性,变得更容易被攻击田。
2.1增加了系统的被攻击面对传统的服务而言.原本只要2?3个页面就能满足功能需求的页面,转换到以后.为了增加用户和服务端的互动.开发者不得不增加编写大量的服务器端页面.每一个页面执行一些整个程序中的小功能。
这些小页面将各自成为黑客的一个附加攻击目标.而为了保证不引入新的安全弱点。任何一个附加的点都需要被保护起来。这个现象可以比喻成为进入一个被安全保护的房子.当这个房子只有一扇门时和其有十扇门时的难度对比。”攻击平面”一词被应用到通过对系统中开放攻击点的分析来度量安全的概念中。对于软件,这些点便是被第三方(用户)操作数据输入、输出的区域。
显而易见,具有相对越少的安全平面使应用越安全。2.2浏览器执行脚本规范问题由于历史原因.长期以来。浏览器就分为几大阵营,从、到,尽管他们都号称支持规范.但在具体实现上甚至对规范的理解上都有很大的不同。
尤其是对客户端脚本处理上的一些非标准处理,更使得不规范的脚本能在浏览器上大行其道。大大增加了客户端的安全隐患。架构在客户端上大量使用的脚本文件,对浏览器能否安全而稳定的执行提出了严峻的挑战。对而言.由于微软在以前大力推广和.而对于浏览器完好支持不甚热心,因此的早前版本(<=5.0)在执行时,即使按照标准编写.也会有一些奇怪的兼容型问题而遭到众人的诟病。
对而言.虽然其在支持的完整性上,和标准没有太大的出入.但是其执行较低的效率和层出不穷的漏洞却给了蠕虫可趁之机。2.3注入注入是服务中最广泛,也是最严重的安全问题。和一般的缓冲区溢出不同.注入并不源于某个程序本身的漏洞.而是源于页面对用户输入内容没有彻底检测和过滤所致。
恶意用户不但可以通过注入取得数据库中的信息,还能够将自己添加成的管理员.甚至可以获得服务器的窗(系统)。2.4注入有些应用程序使用文件中封装的数据进行验证.而在读取内封装的数据则使用了技术.和注入类似.如果服务段对客户端输入的数据没有进行有效过滤.则会引起注入问题。58福建电脑2010年第3期2.5跨站攻击跨站脚本攻击并不是一个新型的攻击手段,然而它在过去的几年中,始终被安全人员所忽视。
在传统的应用中.跨站脚本攻击主要用于盗取会话劫持.且必须要用户对进行刷新才能被触发,故并不造成很大的威胁。但是在框架的应用中.由于页面在和对象的控制下.拥有了无需用户交互而直接向服务器进行1请求的能力.因此危险程度较传统架构下大大提高.下文将着重介绍的原理和其在中的危害1。又叫.跨站脚本攻击。它指的是恶意攻击者往页面里插入恶意“代码.当用户浏览该页之时.嵌入其中里面的代码会被执行.从而达到恶意用户的特殊目的。
和注入类似.同样源于服务段没有对用户输入的字段没有进行严格检测和过滤所致.只不过检测的内容有所区别。注入用户注入的是代码.而用户插入的是标签和代码.这就要求)服务端不但要对用户的输入进行语句的检测.还要进行1标签和代码的检测。2.6跨域发送请求框架最大的安全限制在于对象只能向包含自身的网页的同域名地址发送请求.这是渊为防止客户端利用当前网页中保存的或者信息向第三方网址发送请求而暴露了用户的信息。然而.突破13依然存在。主要方法有三个:、利用、等第三方软件来发送数据:2、利用动态生<>=;,,来发送数据;3、利用动态生成隐藏的对象来发送数据;4、利用没有受限制的代理来发送数据。2.7恶意在设计之初就考虑到其会在客户端的浏览器中运行.如果其功能过强.期限过大就可能对客户端的系统造成破坏.因此它被封装在一个”沙箱”的环境中运行,即,代码只能在当前的浏览器中运行.一切试图对本机资源或者跨浏览器资源的访问都是禁止的。此外.为了防止对其他服务造成破坏或者信息觅取.仅仅允许其脚本对其被下载网址服务进行访问。而不允许对其他网址.或者自己网址的其他服务(比如兀,甚至是运行于不同端7丌服务)进行访问。以上两点被称为的沙箱原则和同源原则。是安全的基础.正因为有了这个基础,除了在某些早些版本的浏览器具有执行权限的漏洞外.一直被认为是安全的(这点与和有本质的不同)。然而目前大肆流行的恶意网页是木马传播的一个主要途径.沙盒过滤技术是检测恶意网页的一个可行的方法.而且理论上检测率是很高的.但在现实实现这种检测方案时.检测程序内置的以及解析引擎有可能在功能上没有实现完整,或者一些行为与真实的浏览器有偏差.还有运行环境毕竟和真实的客户机是不同的.总之会与浏览器有或多或少这样或那样的不同.而这些不同却可以被恶意网页的编写者所利用来躲避检测程序的跟踪检查141。2.8攻击由于.丌邢可以被动态创建并向服务端发送,因此恶意的代码有可能在后台不断的创建'13阳对象向服务端发送请求。恶意攻击者可以在服务器具有漏洞的情况下.向网页注入能够不断创建对象的恶意脚本。当同时有很多普通用户打开这个被注入恶意脚本的网页时.服务器可能因为无法处理源源而来的请求而崩溃.从而达到了0攻击的效果。三、应用安全防范3.1使用、防火墙或由于蠕虫运行于客户端的浏览器.且蠕虫本身都是标准的代码。因此,靠浏览器客户端来检测蠕虫的运行是不可行的。然而.无论是针对框架的人为恶意攻击还是来自蠕虫的攻击.其攻击行为和复制传播都是通过,兀甲的请求来完成的。因此对了和防火墙系统.如果要侦测针对框架的攻击行为.就要在应用层上进行检测。对异常的请本游戏此点真好啊求进行分析并得出结果.是和防火墙技术的扩展.它将的警报机制和防火墙的隔离阻断机制有机的整合起来。
形成了一个具有高实时性的网络反应控制系统。
由于日前任何单一的警报算法都有一定的虚警率和漏警率.因此大多数商业化的系统往往采用多种警报算法来进行综合评估,得到检测结果.并通知的防火墙系统是否将来自某一地址的数据流截断。
3.2使用第三方漏洞检测为了发现应用所带来的安全威胁,并给出解决办法,安全厂商分析应用程序开发生命周期的不同阶段和不同方面.进而选择特定的安全工具来帮助开发者提高基于的应用的安全性.通过使用这些产品,开发者可以显著的减少安全缺陷.并使得安全漏洞尽在掌握之中。来自的可以针对基于的应用程序进行精确动作分析,来自公司的安全套件针对软件开发生命周期的每一个阶段均提供相应工具.包含黑盒评测,代码检查、测试和所有结果的统一视网。来自的提供了最完整的基于浏览器活动的安全审核功能技巧,的安全策略是不信任进入浏览器的来自任何源头的任何代码.因此该软件的检测可以保证任何来自客户的对任何站点的警惕性。而是第一款投入实际应用的框架安全扫描器.它由开发.并使用了一些开源的软件作为其功能模块.减少了开发量15。3.3规范开发应用由于框架的客户端是南编写宣传,其不但包括浏览器显示的元索.而且包括所有的客户端逻辑,稍有不慎就可能产生安全隐患。而框架的服务端也由于入13数的增加,使得被攻击的风险增大。因此,无论在框架客户端程序的编写上.还是在服务端程序的编写上。设计人员都要遵循一定的规范.才能减少问题的发生概率。这些规范包括161:1、使用额外的文件封装编写的框架客户端逻辑和状态.并将这些文件用标签引入文件.而不是直接在文件中嵌入脚本,这样不但有利于客户端程序的调试。
而且还能有助于程序的维护。
区分界面脚本和逻辑脚本。2、尽量使用面向对象的技术来封装脚本,将隶属不同功能的代码封装在不同的类中.这样的方法虽然在一定程度上增加了代码的长度。但是使得代码更易维护和升级。反而降低了代码缺陷而发生安全问题的概率。3、尽量不要在框架的应网络游戏这一点推荐客户端中保存逻辑的状态量,因为任何在客户端保存的状态都可以被黑客们所轻松破解,一旦服务端对来自客户端状态量没有进行严格的检测,就可能造成客户端对服务器的成功攻击。减少了客户端状态量,就相当于减少了服务器被攻击的入13效。4、不要将任何私密数据保存在客户端,故意使用复杂客户端程序或者其他技巧来隐藏任何客户端数据。这不但将增加客户端在开发时发生的机率.而且这些客户端数据和程序也最终将被攻击者所破解。5、不要将任何业务逻辑暴露在?框架的客户端中,这是因为服务端的输入检测只能检测客户端的输(下转第60页)福建电脑2010年第3期能够正常工作。但接收信号相对于模拟信源都有一定的延时.这是因为三个仿真系统中都有很多滤波器.滤波器的冲击响应都有一定的延时。观察图2。
3,4。5,在第一个周期内。接收信号有较大的失真,但在后面的周期内,基本和模拟信源一致,这和系统中的预测器和量化误差有关。虽然在第一周期内有较大失真.这基本不影响系统后面波形的正常.是在能够接受的范围内(2)频域分析观察图6,7,8,9的频谱分析图。发现这这三个系统的原始信号频谱都类似冲激信号,与理论相符。而接收信号的频谱大体上类似冲击信号。但在接近零频率点附近都有一些波动。这与仿真系统中存在延时,以及量化噪声等因素有关。是不可避免的。图6模拟儒源的频谱图7解调波的频谱4.结论从以上的仿真结果可以看出所用所搭建的系(上接第58页)入是正确的或不正确的.而无法检测输入决定的业务逻辑状态值,因此.当恶意用户可以修改客户端代码.导致业务逻辑的混乱而形成攻击。6、对客户端的终端用户而言,时时给浏览器进行安全性更新是非常有必要的.一旦用户使用了有缺陷的浏览器.攻击者可能就会在用户浏览的框架网页中嵌入恶意代码.由于普通用户在浏览框架网站时,通常总允许脚本运行,因此恶意代码破坏甚至操纵浏览用户的电脑的概率大大将提高。7、由于架构的逻辑分布在服务端和客户端上,而由于用户对于客户端的逻辑有绝对的控制权.因此服务端必须对予客户端提交的任何形式的数据(包括各种实现交互性的小页面)进行严格的检验。8、对服务器而言。由于框架大大增加了服务器的入数.因此服务器不能因此而放松输入检测。
相反。服务器要对任何来自客户端和第三方的数据进行安全性检查,只有这样,才能避免各种注入攻击的威胁。9、网游公测中任何用于传统安全监控的设备和设备都能用于框架的安全监控。但是为了更好的发现潜在的攻击,需要对它们的策略配置进行一定的修改。统级仿真模型能够正确的处理信号。系统在码率较低的情况下.可以比系统占用的带宽更少。而且可以达到相同的传输质量。当然,系统还可以进一步仿真.比如在转换后。
可以加入串并转换,并串转换模块,从而实现数字信号的串行传输。还可以在信道中加入噪声进行仿真.以及进行频带调制等等.使系统更接近实际情况。
图8解调波的频谱图9解调波的频谱参考文献:1...2005.2曹志刚.钱亚生.现代通信原理1.北京:清华大学出版社.1998.3李宗豪.基本通信原理.北京:北京邮电大学出版社.2005.41刘开健,张海波,昊光敏.基于的通信系统仿真.石油仪器.2007.21(5):72?74.四.总结基于框架的2.0.具有互动性和实时性上的巨大优势,代表着未来,服务的发展方向。随着越来越多的网站使用框架来搭建自身的服务.框架的安全性将进一步被网站的开发人员.测试人员和相关的安全研究人员所重视。参考文献:1扬振东.找应用程序安全性研究.电脑开发与应用.2008.21(9):55?57页.2陈悦.面向框架服务的攻击和安全防御硕士学位论文.上海:上海交通大学.20063张明,张建军,于瑞萍.坞(技术在应用中的安全研究.科学技术与工程.2006.6(17):2673?2676页,2683页.144王泽渠.汪丽华.找安奎威胁及成因.甘肃科技.2008.24:28-30页.5王沛,谢俊元.基于总线模型的“安全开发模型.计算机工程与设计.2008.290):586?589页.628页.6伏米兹,朱敏.应用中的安全问题研究.计算机与敏字工程.2009.37:110-114页,118页.应用安全分析作者:赵思佳,尹婷作者单位:湖南环境生物职业技术学院信息技术系,湖南衡阳,421001;中南大学信息科学与工程学院,湖南长沙,410083刊名:福建电脑英文刊名:年,卷(期):2010,26(3)参考文献(6条)1.伏米兹;朱敏应用中的安全问题研究[期刊论文]-计算机与树字工程2009(07)2.王沛;谢俊元基于总线模型和的安全开发模型[期刊论文]-计算机工程与设计2008(03)3.王泽梁;汪丽华安全威胁及成因[期刊论文]-甘肃科技2008(07)4.张明;张建军;于瑞萍技术在应用中的安全研究[期刊论文]-科学技术与工程2006(17)5.陈悦面向框架服务的攻击和安全防御:[硕士学位论文]20066.扬振东应用程序安全性研究[期刊论文]-电脑真不错的服开发与应用2008(09)。