我们不是Hacker,我们只是Hack技术的爱好者。
十几年的时间,万维网由纯粹的静态信息仓库发展为功能强大的应用程序,在这个过程中,多种因素造成了当前应用程序安全保护不足的状态。
多数应用都面临一个核心安全问题:即用户可提交任意输入。如果无法确认输入信息的安全性,应用程序就可能会受到各种形式的攻击。
当前万维中Web应用程序安全状况表明,针对Web应用程序的攻击仍是一个未得到很好解决的严重的威胁
读书笔记第一部分对应原书的第一章,主要介绍了Web应用程序的发展,功能,安全状况。
早期的万维网仅由Web站点构成,只是包含静态文档的信息库,随后人们发明了Web浏览器用来检索和显示那些文档,但这些信息只是由服务器单向传送给浏览器,并不需要验证用户的合法性,所有用户同等,提供同样的信息。
所以当时一个Web站点的安全威胁主要来自于Web服务器系统与相关软件的(诸多)漏洞。攻击者入侵站点后并不能得到敏感信息,至多修改一下服务器上的静态文件,歪曲站点的内容,或者利用服务器本身做一些“非法的事情”。
经过几十年的发展,而今的万维网和早期的万维网早已不可同日而语,Web上的大多数站点实际上就是应用程序,它们功能强大,在服务器与浏览器之间进行双向信息传送。“注册,登录,金融交易,搜索,内容创作”等等这些内容以动态的方式成为解决用户特殊需求的方案,它们处理诸多信息包括私密和高度敏感的信息,因此,安全问题变的至关重要:如果人们认为Web应用程序会将他们的信息泄露给未授权的访问者,他们就会拒绝这个Web应用程序。
创建Web应用程序的目的是执行可以在线完成的任何有用功能:
企业内部已广泛使用Web应用程序来支持关键业务功能,这类应用程序可以访问各种高度敏感的数据和功能:
为降低成本,企业圈内开始推崇所谓“云计算”业务,并将此业务开发交于外包企业实施和托管,将ERP搬至网上。在这些所谓的“云”解决方案中,业务关键功能和数据向数目更庞大的潜在攻击者开发,而组织却越来越多地依赖于不受其控制的安全防御。
应用程序各不相同,所包含的漏洞也各不相同,许多应用程序是由开发人员独立开发,还有许多开发人员对自己所编写的代码可能引起的安全问题略知一二,于是一些开发人员从未在开发应用时未曾考虑到的攻击方式在使用过程当中相继出现了,而新技术的开发也会引入新的漏洞。
针对Web应用程序最严重的攻击,是那些能够绕到后端系统的无限访问权限的攻击。
在Web应用程序的整个发展过程中,直到今天,甚至可预见的未来,攻击者与防御者的战斗仍然在继续,且没有解决的迹象。
大多数网站声称自己使用128位安全套接层(Secure Socket Layer, SSL)技术设计,遵循支付卡行业(PCI)标准,来证明自己的加密协议是无懈可击的。
但实际上,大多数Web应用程序不安全,不仅仅是技术应用上的,还有开发人员在基础设计上的漏洞:
SSL在机密性与安全性上是出色的技术,但它的问题在于它并不能抵御直接针对某个应用程序的服务器或客户端组件的攻击,而许多成功的攻击都恰恰属于这种类型。
所以SSL并不能阻止上述任何漏洞或许多其他使应用程序受到威胁的漏洞。
核心安全问题:用户可提交任意输入
Web应用程序有个根本性问题,即无法控制客户端,所以用户几乎可向服务器端提交任意输入。所以应用程序必须假设用户输入的都是恶意信息。
这个核心问题表现在多个方面:
绝大多数针对Web应用程序的攻击都涉及向服务器提交信息:
开发人员的技术能力,开发时间的限制,开发资源的有限利用,单一框架多程序开发使用,大量增加第三方插件,为实现功能对数据库或程序直接进行二次开发而忽视二开的安全措施,以上这些种种行为大大增加了安全问题的出现率。
Web应用程序的广泛应用使得典型组织的安全边界发生了变化,以往我们关注防火墙与防御主机,而现在我们应该更关注Web应用程序本身。
Web应用程序接收用户输入的方式多式多样,数据传输的方式也多式多样,这每一步都是潜在攻击的关口,尤其是PHP,Java,JS这些语言和平台的“聚合”,每一个连接方式都成为了攻击关口。
于是站点的安全边界从服务器本身延伸到了第三方插件,聚合接口,API,某一行代码,跨域连接方式。
Web应用程序安全边界发生变化的另一原因,在于恶意攻击者利用一个良性的易受攻击的应用程序攻击任何访问它的用户,并控制用户的浏览器,如果用户位于企业内部,那么从用户的可信位置攻击者可向本网络改动攻击。
目前网络上的Web应用程序仍然充满了漏洞,整个行业也没有统一而成熟的意识。
但随意着行业的发展,各种漏洞也在被不断的修复,现有的漏洞也变得更难以发现和利用。
而攻击目标也由传统的服务器端应用程序转向用户应用程序。
版权所有,转载请注明出处。 |
---|
转载自《黑客攻防技术宝典Web实战篇@第2版》读书笔记1:了解Web应用程序 _ XDY.ME@Dy大叔的日常 |