加入收藏 | 设为首页 | 会员中心 | 我要投稿 云计算网_宿迁站长网 (https://www.0527zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 安全 > 正文

Web 应用程序安全

发布时间:2023-01-05 14:34:30 所属栏目:安全 来源:互联网
导读: 利用应用程序处理过程中的逻辑错误删除某些正常提交的参数。
改变由后端数据库处理的某个输入,从而注入一个恶意数据库查询以访问敏感
数据。
勿庸置疑,SSL无法阻止攻击者向服务器提交专门

利用应用程序处理过程中的逻辑错误删除某些正常提交的参数。

改变由后端数据库处理的某个输入,从而注入一个恶意数据库查询以访问敏感

数据。

勿庸置疑,SSL无法阻止攻击者向服务器提交专门设计的输入。应用程序使用SSL仅仅表示网络上的其他用户无法查看或修改攻击者传送的数据。因为攻击者控制着SSL通道的终端,能够通过这条通道向服务器传送任何内容。如果前面提到的任何攻击成功实现,那么不论其在FAQ中声称其如何安全,该应用程序都很容易受到攻击。

三、关键问题因素

任何情况下,如果一个应用程序必须接受并处理可能为恶意的未经验证的数据,就会产生Web应用程序面临的核心安全问题。但是,对Web应用程序而言,几种因素的结合使问题更加严重,这也解释了当今互联网上许多Web应用程序无法很好地解决这一问题的原因。

1、不成熟的安全意识

近年来,人们对Web应用程序安全问题的意识有所增强,但与网络和操作系统这些发展更加完善的领域相比,人们对Web应用程序安全问题的意识还远不够成熟。虽然大多数IT安全人员掌握了相当多的网络安全与主机强化基础知识,但他们对与Web应用程序安全有关的许多核心概念仍然不甚了解,甚至存有误解。当前,在其工作中,Web应用程序开发人员往往需要整合数十、甚至数百个第三方数据包,导致他们无法集中精力研究基础技术。即使是经验丰富的Web应用程序开发人员,也经常会对所用的编程框架的安全性做出错误假设,或遇到一些对他们而言完全陌生的基本缺陷类型。

2、独立开发

大多数Web应用程序都由企业自己的员工或合作公司独立开发。即使应用程序采用第三方组件,通常也是使用新代码将第三方组件进行自定义或拼凑在一起。在这种情况下,每个应用程序都各不相同,并且可能包含其独有的缺陷。这种情形与组织购买业内一流产品并按照行业标准指南安装的典型基础架构部署形成鲜明对照。

3、欺骗性的简化

使用今天的Web应用程序和开发工具,一个程序员新手也可能在短期内从头开始创建一个强大的应用程序。但是,在编写功能性代码与编写安全代码之间存在巨大的差异。许多Web应用程序由善意的个人创建,他们只是缺乏发现安全问题的知识与经验。

近年来出现了一种显著趋势,即使用提供现成代码组件的应用程序框架来处理各种常见的功能,这些功能包括身份验证、页面模板、公告牌以及与常用后端基础架构组件的集成等。使用这些产品可以快速方便地创建可运行的应用程序,而无须了解这些应用程序的运行机制或它们包含的潜在风险。这也意味着许多公司会使用相同的框架。因此,即使仅仅出现一个漏洞,该漏洞也将会影响许多无关的应用程序。

4、迅速发展的威胁形势

Web应用程序攻击与防御研究发展相对不成熟,是一个正蓬勃发展的领域,其中新概念与威胁出现的速度比传统的技术要快得多。在客户端方面尤其如此,针对特定攻击的公认防御机制往往会在一些研究中失去作用网站程序安全,这些研究最终成就了新的攻击技巧。在项目开始之初就完全了解了当前威胁的开发团队,很可能到应用程序开发完成并部署后会面临许多未知的威胁。

5、资源与时间限制

由于独立、一次性开发的影响,许多Web应用程序开发项目会受到严格的时间与资源限制。通常,设计或开发团队不可能雇用专职的安全专家,而且由于项目进程的拖延,往往要等到项目周期的最后阶段才由专家进行安全测试。为了兼顾各种要素,按期开发出稳定而实用的应用程序的要求往往使开发团队忽视不明显的安全问题。小型组织一般不愿多花时日评估一个新的应用程序。快速渗透测试通常只能发现明显的安全漏洞,而往往会遗漏比较细微、需要时间和耐心来发现的漏洞。

6、技术上强其所难

Web应用程序使用的许多核心技术出现于万维网早期阶段,那时的状况与目前十分不同。从那以后,其功能已远远超越最初的设想,例如,在许多基于AJAX的应用程序中使用JavaScript进行数据传输。随着对Web应用程序功能要求的变化,用于实现这种功能的技术已远远落后于其发展要求,而开发人员还是沿用原有的技术来满足新的需求。因此,这种做法造成的安全漏洞与无法预料的负面影响也就不足为奇了。

7、对功能的需求不断增强

在设计应用程序时,开发人员主要考虑是的功能和可用性。曾经静态的用户资源现在包含社交网络功能,允许用户上传照片,对页面进行“维基”风格的编辑。以前,应用程序设计人员可以仅仅通过用户名和密码来创建登录功能,而现今的站点则包含密码恢复、用户名恢复、密码提示,以及在将来访问时记住用户名和密码的选项。无疑,这类站点声称其能够提供各种安全功能,但实际上,这些功能不过是增大了该站点的受攻击面而已。

四、新的安全边界

在Web应用程序出现之前,主要在网络边界上抵御外部攻击。保护这个边界需要对其提供的服务进行强化、打补丁,并在用户访问之间设置防火墙。

Web应用程序改变了这一切。用户要访问应用程序,边界防火墙必须允许其通过HTTP/HTTPS连接内部服务器;应用程序要实现其功能,必须允许其连接服务器以支持后端系统,如数据库、大型主机以及金融与后勤系统。这些系统通常处于组织运营的核心部分,并由几层网络级防御保护。

如果Web应用程序存在漏洞,那么公共互联网上的攻击者只需从Web浏览器提交专门设计的数据就可攻破组织的核心后端系统。这些数据会像传送至Web应用程序的正常、良性数据流一样,穿透组织的所有网络防御。

Web应用程序的广泛应用使得典型组织的安全边界发生了变化。部分安全边界仍旧关注防火墙与防御主机,但大部分安全边界更加关注组织所使用的Web应用程序。Web应用程序接收用户输入的方式多种多样,将这些数据传送至敏感后端系统的方式也多种多样,这些都是一系列攻击的潜在关口,因此必须在应用程序内部执行防御措施,以阻挡这些攻击。即使某个Web应用程序中的某一行代码存在缺陷,也会使组织的内部系统易于遭受攻击。此外,随着“聚合”应用程序、第三方小部件及其他跨域集成技术的出现,服务器端安全边界常常会跨越组织本身的边界。而且,各种组织还盲目地信任外部应用程序和服务。有关该新的安全边界内漏洞发生几率的统计数据值得每一个组织思考。

对一个针对组织的攻击者而言,获得网络访问权或在服务器上执行任意命令可能并不是他们真正想要实现的目标。大多数或者基本上所有攻击者的真实意图是执行一些应用程序级行为,如偷窃个人信息、转账或购买价格低廉的产品。而应用程序层面上存在的安全问题对实现这些目标有很大帮助。

例如,一名攻击者希望“闯入”银行系统,从用户的账户中窃取资金。在银行使用Web应用程序之前,攻击者可能需要发现公共服务中存在的漏洞,并利用其进入银行的DMZ,穿透限制访问其内部系统的防火墙,在网络上搜索确定大型计算机,破译用于访问它的秘密协议,然后推测某些证书以进行登录。但是,如果银行使用易受攻击的Web应用程序,那么攻击者可能只需修改隐藏的HTML表单字段中的一个账号,就可以达到这一目的。

Web应用程序安全边界发生变化的另一原因,在于用户本身在访问一个易受攻击的应用程序时面临的威胁。恶意攻击者可能会利用一个良性但易受攻击的Web应用程序攻击任何访问它的用户。如果用户位于企业内部网络,攻击者可能会控制用户的浏览器,并从用户的可信位置向本地网络发动攻击。如果攻击者心存恶意,他不需要用户的任何合作,就可以代表用户执行任何行为。随着浏览器扩展技术的兴起,各种插件不断增多,客户端受攻击面的范围也明显变大。

网络管理员清楚如何防止其用户访问恶意的Web站点,终端用户也逐渐意识到这种威胁。但是,鉴于Web应用程序漏洞的本质,与一个全然恶意的Web站点相比,易受攻击的应用程序至少给用户及其组织带来了一种威胁。因此,新的安全边界要求所有应用程序的所有者承担保护其用户的责任,使他们免受通过应用程序传送的攻击。

此外,人们普遍采用电子邮件作为一种补充验证机制,安全边界在一定程度上向客户端转移。当前,大量应用程序都包含“忘记密码”功能,攻击者可以利用该功能向任何注册地址发送账户恢复电子邮件,而无须任何其他用户特定的信息。因此,如果攻击者攻破了用户的Web邮件账户,就可以轻松扩大攻击范围,并攻破受害用户注册的大多数Web应用程序账户。

五、Web应用程序安全的未来

虽然经过多年的广泛应用,但目前互联网上的Web应用程序仍然充满漏洞。在了解Web应用程序面临的安全威胁以及如何有效应对这些威胁方面,整个行业仍未形成成熟的意识。目前几乎没有迹象表明上述问题能够在不远的将来得到解决。

也就是说,Web应用程序的安全形势并非静止不变。尽管SQL注入等熟悉的传统漏洞还在不断出现,但已不是主要问题。而且,现有的漏洞也变得更难以发现和利用。几年前只需使用浏览器就能够轻易探测与利用的小漏洞,现在需要花费大量精力开发先进技术来发现。

Web应用程序安全的另一个突出趋势为:攻击目标已由传统的服务器端应用程序转向用户应用程序。后一类攻击仍然需要利用应用程序本身的缺陷,但这类攻击一般要求与其他用户进行某种形式的交互,以达到破坏用户与易受攻击的应用程序之间交易的目的。其他软件安全领域也同样存在这种趋势。随着安全威胁意识的增强,服务器端存在的缺陷首先应为人们所理解并得到解决,从而可以在进一步的研究过程中将注意力集中在客户端。本文描述的全部攻击类型中,那些针对其他用户的攻击是发展最快的攻击类型,也是当前许多研究的焦点所在。

技术领域的各种最新趋势在一定程度上改变了Web应用程序的安全状态。一些极具误导性的热门词汇使这些趋势深入人心,下面是一些最热门的词汇。

Web 2.0。这一术语指更大范围地采用实现用户生成内容和信息共享的功能,以及采用各种广泛支持这一功能的技术,包括异步HTTP请求和跨域集成。

云计算。这一术语指更多地通过外部服务提供商来实施技术栈的各个部分,包括应用程序软件、应用程序平台、Web服务器软件、数据库和硬件。它也指在托管环境中大量采用虚拟化技术。

和技术领域的大多数变革一样,这些趋势也催生了一些新型攻击,并导致现有攻击产生变体。虽然这些趋势受到人们的大肆追捧,但鉴于其导致的各种问题,它们并不像人们最初认为的那样会带来颠覆性的改变。

尽管Web应用程序发生了所有这些改变,一些典型漏洞并未表现出任何减少的迹象。它们继续出现,方式与Web技术发展初期大致相同。这些漏洞包括业务逻辑缺陷、未能正确应用访问控制以及其他设计问题。即使在应用程序组件紧密集成及“一切皆服务”的时代,这些问题仍然会广泛存在。

六、结语

大约十几年的时间,互联网已由纯粹的静态信息仓库发展为功能强大的应用程序,能够处理敏感的数据并执行用于输出实际结果的高度功能化的应用程序。在这个发展过程中,多种因素造成了当前绝大多数Web应用程序所面临的安全保护不足的状况。

多数应用程序都面临一个核心安全问题,即用户可提交任意输入。用户与应用程序交互的每一个方面都可能是恶意的,而且在未能证明其并无恶意之前应该被认定为是恶意的。如果这个问题处理不当,应用程序就有可能受到各种形式的攻击。

当前Web应用程序安全状况的所有证据表明,这个问题尚未得到很好的解决,而且不管是对部署Web应用程序的组织还是对访问它们的用户而言,针对Web应用程序的攻击都是一个严重的威胁。

(编辑:云计算网_宿迁站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!