当前位置:首页 > 读后感 > Web应用安全的研究 安全教育平台登录入囗
 

Web应用安全的研究 安全教育平台登录入囗

发布时间:2019-02-23 04:20:05 影响了:

  [摘要]分析Web应用安全的现状以及其重要性,同时分析Web应用所面临的主要威胁和攻击,包括Web平台软件漏洞、Web认证和授权威胁、非法输入和参数篡改漏洞、Web应用管理漏洞等,并提出相应的解决方案。最后,通过Web应用安全生命周期体系从软件工程的角度来研究Web应用的安全及解决方案。
  [关键词]Web应用安全漏洞攻击安全生命周期
  中图分类号:TP393文献标识码:A文章编号:1671-7597(2009)1210094-02
  
  一、Web应用安全的现状及其重要性
  
  当今世界,Internet已经成为一个非常重要的基础平台,很多企业都将应用架设在该平台上,为客户提供更为方便、快捷的服务支持。这些应用在功能和性能上,都在不断的完善和提高,然而在安全性上,却没有得到足够的重视。由于网络技术日趋成熟,黑客们也将注意力从以往对网络服务器的攻击逐步转移到了对Web应用的攻击上。然而,绝大多数企业将大量的投资花费在网络和服务器的安全上,没有从真正意义上保证Web应用本身的安全,给黑客以可乘之机,安全风险达到了前所未有的高度。
  一个典型的Web应用通常是标准的三层架构模型:第一层是客户端;使用动态Web内容技术的部分属于中间层;数据库是第三层。在企业Web应用的各个层面,都会使用不同的技术来确保安全性。为了保护客户端机器的安全,用户会安装防病毒软件;为了保证用户数据传输到企业Web服务器的传输安全,通信层通常会使用SSL(安全套接层)技术加密数据;企业会使用防火墙和IDS(入侵诊断系统)/IPS(入侵防御系统)来保证仅允许特定的访问。
  但是,即便有防病毒保护、防火墙和IDS/IPS,企业仍然不得不允许一部分的通讯经过防火墙,同时,Web应用是由软件构成的,那么,它一定会包含bugs,这些bugs就可以被恶意的用户利用,他们通过执行各种恶意的操作,或者偷窃、或者操控、或者破坏Web应用中的重要信息。只要访问可以顺利通过企业的防火墙,Web应用就毫无保留地呈现在用户面前。只有加强Web应用自身的安全,才是真正的Web应用安全解决之道。
  
  二、常见的Web应用安全漏洞及解决方案
  
  (一)Web平台软件漏洞
  Web平台软件漏洞包括Web应用使用的操作系统、HTTP底层服务器软件(如IIS或Apache)和第三方应用程序中的所有程序错误或者可以被利用的漏洞。这个问题也涉及到错误配置,包含有不安全的默认设置或管理员没有进行安全配置的应用程序。
  解决方案:
  执行严格的双向网络访问控制。
  找出系统的安全漏洞,及时更新软件的安全补丁。
  不要在源代码中放置私密信息。
  禁用Web服务器上不必要的功能,删除不需要的应用程序。
  定期扫描入侵者。
  (二)Web认证威胁
  Web认证包括用户名和口令认证、基于令牌和证书的认证以及认证服务。攻击者可以通过用户名枚举、密码猜测和窃听等手段来获取用户名和密码;攻击者还可以通过SQL注入绕过论证,也可以窃取用户的Cookie并访问用户的帐户,而不必输入ID和口令或进行其他认证。
  解决方案:
  使用强健的密码策略和账户锁定策略。
  采用高强度的证书,例如数字证书。证书认证使用公开密钥系统和数字证书来认证用户。证书认证还可以和其他基于密码的认证机制一起使用,以提供更强健的安全性。
  使用HTTPS来保护认证传输,避免受到窃听和重放攻击的风险。
  输入验证可以防止SQL注入、脚本注入和命令执行。
  确保认证安全令牌,如Session ID和Cookie等不会被轻易窃取。
  (三)Web授权威胁
  授权可以确定经过认证的用户可以访问应用程序的哪些部分,以及他们在应用程序中可执行哪些操作。攻击者通过爬行访问控制列表(ACL)以及分析会话(Session)和Cookie中保存的信息来得到非法的授权。
  解决方案:
  为应用程序定义明确的、一致的访问策略,配置好用户角色。
  使用SSL加密措施防止攻击。
  不要在会话中包含个人敏感信息。
  一旦改变权限要重新生成会话ID。
  (四)非法输入和参数篡改漏洞
  在数据被输入程序前忽略对数据合法性的检验是一个常见的编程漏洞,它导致SQL注入和数据存储攻击、脚本攻击(包括跨站点脚本攻击)和缓冲区溢出等。
  注入漏洞,特别是SQL注入漏洞,主要是利用目标网站程序未对用户输入的字符进行特殊字符过滤或合法性校验,可直接执行数据库语句,导致网站存在安全风险。
  跨站点脚本(XSS)攻击利用网页及Cookies漏洞,攻击者往Web页面里插入恶意html代码,当用户浏览该页之时,嵌入其中Web里面的html代码会被执行,从而达到恶意用户的特殊目的。
  参数篡改包括操纵URL字符串,以检索用户以其他方式得不到的信息。访问Web应用的后端数据库就是通过常常包含在URL中的SQL调用来进行的。恶意的用户可以操纵SQL代码,以便将来有可能检索一份包含所有用户、口令、信用卡号的清单或者储存在数据库中的任何其他数据。
  解决方案:
  对输入数据采用服务器端验证。
  限制输入字段的长度和数字边界检查以防止缓冲区溢出。
  对HTML和SQL格式中的字符进行编码,如将脚本中的尖括号转化为对应的编码以防止脚本攻击。
  使用正则表达式查找授权或未经授权的内容。
  在应用程序中使用参数来构建查询以及尽可能在数据库中使用存储过程。
  数据库加密,通过表级别和字段级别的加密保护数据。
  (五)Web应用管理漏洞
  包括管理员配置错误和开发者错误造成的漏洞,例如不必要的Web服务器扩展、直接访问浏览以及文件、用户和状态页面信息泄露等。
  服务器目录浏览是一个不安全的配置,管理员把敏感log放在Web目录上,又开放了浏览目录权限,使得黑客直接访问这个目录就把这些敏感的log打开就获取到了明文的用户名、密码。
  开发人员常常建立一些后门并依靠调试来排除应用程序的故障,这些安全漏洞经常被留在一些放在Internet上的最终应用中。一些常见的后门使用户不用口令就可以登录或者访问允许直接进行应用配置的特殊URL。
  解决方案:
  禁止IIS的扩展。
  保持站点目录整洁并实行正确的访问控制。
  提高站点开发者的水平和安全意识。
  (六)Web客户端攻击
  通过钓鱼软件、间谍软件和恶意广告对在线用户进行欺诈。钓鱼软件是通常以精心设计的虚假网页引诱用户上当,达到盗取银行账号、信用卡号码等目的。虚假网页一般以eBay和PayPal等大家熟悉的网页为招牌,用户点击链接之后就进入了一个看起来与真实网页完全相似的网页。
  解决方案:
  运行防病毒软件以及反钓鱼和反间谍软件工具。
  提高警惕,高度谨慎地处理基于Internet的请求和事务。
  (七)程序拒绝服务攻击
  程序拒绝服务(DoS)攻击包括计算机网络带宽攻击和连通性攻击。带宽攻击指以极大的通信量冲击网络,使得所有可用网络资源都被消耗殆尽,最后导致合法的用户请求就无法通过。连通性攻击指用大量的连接请求冲击计算机,使得所有可用的操作系统资源都被消耗殆尽,最终计算机无法再处理合法用户的请求。
  解决方案:
  网络管理员要积极谨慎地维护系统,增强服务器的安全性,确保无安全隐患和漏洞。
  安装防火墙等安全设备过滤DoS攻击。
  网络管理员应当定期查看安全设备的日志,及时发现对系统的安全威胁行为。
  在设计Web应用程序时,通过控制用户登录和各种数据处理方式来避免DoS攻击。如尽可能不要在客户端做数据处理,尽可能从缓存读取数据库等等。
  (八)不适当的错误处理
  通过对各种错误的处理操作,应用程序可能由于其不适当的错误处理在无意中泄露其配置信息、内部运作信息以及侵犯隐私的敏感信息。攻击者利用该漏洞可能盗取敏感的数据,甚至发动更为危险的攻击行为。
  解决方案:
  使用结构化错误处理,以避免使用软件默认的错误处理器而暴露信息。
  确定结构化错误处理器,当代码失败时,可以安全地失败。
  
  三、Web应用安全生命周期体系
  
  以上是从技术角度讨论Web应用的安全,但是Web应用安全是安全教育、安全技术、安全制度的综合,是一个持续演进的过程,不仅仅局限于技术。Web应用开发生命周期包括可行性分析与开发项计划、需求分析,分析设计、编码实现、测试以及发布和维护,开始得到一个初始的版本,这个过程又重新整理新的需求,根据用户反馈,新的需求又被更新、设计,加到新的开发计划里去。这是一个迭代的过程。在每一个步骤都要实施安全教育,并且使用相关的安全技术,来保证常见的Web缺陷能够在成本最低的阶段把它解决掉。
  第一步,定义角色、职责。一个典型的结构包括管理决策层负责安全制度的决策,然后签署相关的政策文件。专业的安全部门负责安全技术的开发、研发,然后还有架构的安全审核、安全流程开发、漏洞的响应,这是一个专业的团队。设立一个安全专员负责整个项目,整个流程里面所有的这些安全需求、安全规范,安全接口人为业务部门和安全部门起到一个沟通作用。通过这样一个结构,每个人担当什么角色都明确定义出来,这样每个人就能知道具体做哪些事情。角色和职责确定之后,就是安全意识的培养。
  第二步,在需求这个阶段就必须把安全需求提出来。在开发过程中,还可能有需求变更的情况。如果需求变更了,对现有系统有哪些影响,这些都需要在需求这个阶段确定,并且要保证安全需求能够持续得到跟踪。
  第三步,设计一个安全的架构。明确资源、角色、边界之后就可以对不同的资源提出不同的安全需求,提供不同程度的保护措施。当这些都确定后,可以设计一个最简单的方案,包括安全的措施,并且在这个过程中设计一个验证的方案和风险分析。这个主要通过几个步骤来实现,首先是需要分析运营环境中有哪些安全因素,是网络这一层还是应用这一层,还是合作方这一层。确定最有可能的威胁,哪一些威胁是最严重的,最有可能发生的。一旦发生之后它的影响会有多大,它发生的频率有多高。一旦这些清楚之后,我们就可以制定降低威胁和风险的措施。当这个架构设计好之后,通常应该还是经过一个验证、评审阶段。还有在架构进行重大调整的时候,也需要评审,这个重构会不会对现有架构产生新的威胁。
  第四步,安全编码。对于跨站、跳转、注入这些漏洞,大多数都是非常简单的不安全编码疏忽所导致的,可以在编码这个阶段通过使用一些安全编码实践来避免掉。在这个阶段可以提供一些工具的支持,比如静态代码分析,可以分析一些SQL注入、跨站脚本,同时可以提供一些脆弱性测试工具。在这个阶段还要进行重审代码,把残留的不安全代码清理掉。
  第五步,测试这个阶段需要为安全需求创建测试策略和用例。
  第六步,发布和维护阶段。部署之前要确保运营主机环境安全,主要是一些配置。通过在线监控和扫描可以发现存在的漏洞和文件篡改,对于一些入侵也可以进行某些告警,同时对业务异常信息进行监测与分析。
  通过以上几个安全开发周期的相关策略,基本可以消灭大部分的安全隐患。但是还是可能会存在漏网之鱼,那就是要通过安全响应来进行善后处理。主要是经常监视这些漏洞的来源,是来自外部报告还是内部渗透测试,还是被一些地下组织利用。漏洞发现之后要分析与定位,到底涉及哪些系统,发现的问题是在哪个地方,然后制定修复计划。进行回归测试,确保没有问题之后再重新发布上线。
  四、结语
  只要我们从思想上重视Web应用的安全性并且在Web开发的生命周期的每个阶段都采取行之有效的方法来避免漏洞和抵御攻击,就一定可以将Web应用的风险降到最低。
  
  本文作者创新点:从技术和管理两个不同的角度分别讨论了Web应用程序的安全性,并给出了行之有效的解决方案。
  参考文献:
  [1]郑明、邵贝恩等,企业应用集成服务的安全策略设计与实现[J].微计算机信息,2009,2-3:3-4.
  [2](美)JoelScambray,黑客大曝光[M].北京:电子工业出版社,2008-6:108,140,208-209.
  [3](美)Mark M.Burnett,拒绝黑客[M].北京:电子工业出版社,2005-2:264-267.
  [4]张敏波,网络安全实战详解[M].北京:电子工业出版社,2008-5:365-369.
  [5]丁妮,Web应用安全研究[D].中国优秀硕士学位论文全文数据库,2007-5:19-23.
  [6]刘楠,一种Web应用安全增强方案的设计与实现[D].中国优秀硕士学位论文全文数据库,2007-3:41-43.
  [7]郑继胜,Web网站安全防御系统的研究与应用[D].中国优秀硕士学位论文全文数据库,2009-6:28-30.
  作者简介:
  孙继红(1970-),女,汉族,湖北武汉人,广东科贸职业学院计算机信息工程系讲师,研究生,主要从事网络数据库和软件技术研究。

猜你想看
相关文章

Copyright © 2008 - 2022 版权所有 职场范文网

工业和信息化部 备案号:沪ICP备18009755号-3