故障注入攻击如何威胁应用程序

日期: 2008-05-19 作者:Joel Dubin翻译:李娜娜 来源:TechTarget中国 英文

从Web出现时,就有了故障注入攻击。它允许通过Web应用程序,恶意进入到一个网络或者计算机系统。随着应用程序爆炸性的增长,网络上的应用程序越来越多,注入攻击已经受到越来越多的关注。在本文中,TechTarget中国的特约专家Joel Dubin将探讨注入攻击可以做什么,这些攻击的不同种类,以及一些开发的最佳方式,来确保你的金融组织机构系统免受其害。

  一些故障注入是基于脚本的,使用像JavaScript 和PHP之类的语言。随着新版的Web 2.0技术以脚本语言为基础,注入攻击已经变得更为频繁和成熟。Web 2.0技术的系列包括XML、RSS和AJAX,所有这些都能隐藏恶意注入代码……

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

从Web出现时,就有了故障注入攻击。它允许通过Web应用程序,恶意进入到一个网络或者计算机系统。随着应用程序爆炸性的增长,网络上的应用程序越来越多,注入攻击已经受到越来越多的关注。在本文中,TechTarget中国的特约专家Joel Dubin将探讨注入攻击可以做什么,这些攻击的不同种类,以及一些开发的最佳方式,来确保你的金融组织机构系统免受其害。

  一些故障注入是基于脚本的,使用像JavaScript 和PHP之类的语言。随着新版的Web 2.0技术以脚本语言为基础,注入攻击已经变得更为频繁和成熟。Web 2.0技术的系列包括XML、RSS和AJAX,所有这些都能隐藏恶意注入代码。

  由于以植入的恶意代码为形式的注入攻击包围了网络应用程序,因此它们不像传统网络攻击那样易于攻入,并且在传统IDS和IPS系统的雷达下,它们可以不引人注意的溜入系统。这增加了检测程序的复杂度。

  故障注入攻击的类型

  根据开放Web软件安全计划(Open Web Application Security Project,OWASP),注入攻击有两种类型。OWASP在安全Web编码方式方面指导开发人员。OWASP前十大漏洞中包含注入攻击和跨脚本攻击(XSS)。它们都可以将恶意代码插入到一个Web应用程序之中,一般情况下通过Web浏览器便可实现。

  XSS是OWASP两大类别中最普遍的攻击,同时也是最恶毒的攻击。一般用JavaScript就可以实现,同时也可以使用其它脚本语言。XSS通过盗窃Web应用程序合法用户的认证证书,进而恶意进入计算机系统。

  在OWASP的其他列表中,注入攻击,也称SQL注入是目前最为普遍的攻击。SQL注入可以将SQL指令插入到Web浏览器,形成信息组,进而恶意进入正在运行的Web应用程序的数据库。与XSS不同的是,SQL 注入试图攻击应用程序的根本数据,而不是试图偷窃用户的身份标志码和密码。

  预防故障注入

  有两种主要的防御性方法可以预防注入攻击。一种是OWASP所提倡的安全编码和专案管理方式,另一种是采用应用级别防火墙的硬件策略。

  阻止注入攻击的第一条编码基本原则是过滤Web应用程序的所有输入。这些包括Web网页所提交的任何内容,这些内容通过某种形式、隐藏信息组或者甚至与URL相链接来提交的。故障通常是非字母数字字符,比如“!”、“#”、“<”以及“>”,这些可以在Web或应用程序服务器上阻止后端进程,允许未授权的进入。

  对于SQL注入攻击而言,单个撇号(’)通常是SQL语句的一部分。当在网页上采用正确的符号将其插入到某种形式的信息组中时,如果没有恰当的过滤方法,它就会向后端数据库提出一个SQL请求,并返回数据。如果数据库包括帐户信息或者敏感的客户信息,对恶意攻击者而言,这就是一个金矿。

  对于XSS而言,主要的故障是“ <SCRIPT>”标签,它将攻击者试图注入或插入到网站中的恶意JavaScript或者其它脚本代码括了起来。滤除这个括号是预防这些攻击的第一步。

  OWASP的前十大漏洞指南详细解释了常用主要编码语言的编码实例,比如Java、NET和PHP。它也提供了编码的最佳方式,比如输入验证、如果可能的话使用存储程序、明确的输出译码和验证白名单。

  软件开发生命周期中的安全性测试

  安全编码方式应当构建到应用程序开发生命周期之中。为了与编码相结合,技术规范应当将输入验证程序细化;同时在开发周期中,应用程序应当经受得住不同基准的安全测试。

  用于检查XSS注入和SQL注入的渗透测试工具中有两种比较流行,分别是SPI Dynamics公司(最近由Hewlett-Packard公司收购)的WebInspect和Watchfire公司(最近由IBM收购)的AppScan。它们都可以扫描Web应用程序中的注入漏洞,并且提供详尽的报告,开发这可以用其追捕到程序缺陷。

  另一种方法是静态代码分析工具,比如Fortify Software公司提供的那些工具。这两种方法是有区别的:一种是扫描器,另一种是代码分析器。工具的选择应当立足于现有的开发需要和资源。

  对于基于硬件的方法而言,Web应用程序防火墙可以滤掉恶意注入攻击的企图。该防火墙与传统的不同,传统的防火墙检测信息包头,并且接受或者拒绝基于信息包类型和来源的流量,有些信息包与恶意代码的格式类似,应用级别防火墙可对其内容中和恶意代码样式相同的信息包进行监测,包括含有注入攻击的信息包。尽管这是一个越来越大的市场,但也应该警惕一些。如果使用其它网络工具和防火墙,在安装之前,应该进行彻底的测试。一些众所周知的产品来自像NetContinuum公司、Mi5 公司和Aladdin Knowledge Systems公司之类的经销商。

  需要注意的是,并非所有的故障注入保护产品都是等同的。一些产品更多地向即时通讯和电子邮件威胁提供保护,而不提供对注入攻击的保护。其它产品对URL进行扫描,以阻止对不恰当站点的访问。但是这是一个令人兴奋和不断增长的市场,并且随着注入攻击越来越成熟,预防产品定会层出不穷。

相关推荐