新一代网页应用须注意的安全危机
作者:李宗翰 | 2008-5-13 11:28:46
Web 2.0融合Web Services、RIA、SOAP、JavaScript、XML等技术,强调高度互动与多人协同创作等概念,又大规模地带动新的网页形态产生。架构复杂,而且技术之间互相援引,关连性很强。
Web 2.0 Hacking
Web 2.0兴起,所衍生的入侵行为与恶意程式程式码
恶意程式码从病毒、蠕虫、间谍程式至网页挂马,再加上架设伪冒网站企图诈骗帐号、密码与网路银行资讯的网路钓鱼,也许我们都以为,可以用既有的防毒、IPS、网页过滤方式去控制。然而,Web 2.0融合Web Services、RIA、SOAP、JavaScript、XML等技术,强调高度互动与多人协同创作等概念,又大规模地带动新的网页形态产生。架构复杂,而且技术之间互相援引,关连性很强。
在当前的网页环境中,威胁的面貌、破坏性与目的也不像过去硬走偏锋,却也越来越难以辨识,例如有些蠕虫擅自更改使用者在网站的个人资料,目的只是为了在MySpace上面结交更多网友,而有的则设法潜入、复制到许多Yahoo使用者的网页电子邮件通讯录中。个人端在执行各网站上的JavaScript也变得很危险,例如在个人端电脑的浏览器偷偷执行恶意VBScript、JavaScript。
此外,资料来源的可信度无法持续验证、RSS Feeds也可能遭到窜改,因为使用者帐号逐渐走向单一登入的关系,帐号有效性与登入状态的操弄也成为许多入侵者的目标,一些桌面小工具或元件,使用上也有不够安全的问题。
有人说,Web 2.0只是把攻击行为换了新的载具而已,不过也有人提醒,攻击对象和漏洞发生的地方已不再是应用伺服器,个人端也难以幸免;而且XSS攻击依然猖獗,CSRF攻击更是防不胜防,使得安全控管与验证可能会被略过、无法发挥作用。
Cross-Site Scripting,XSS
跨站指令码攻击、跨网站脚本攻击
是指Web应用程式没有好好管制使用者,防止恶意程式码「注入」网页。例如未妥善过滤特殊字元,或未适当转换浏览者输入的字元,加上由浏览器本身所致。
一旦攻击者有办法利用该网站的跨站指令码漏洞,就可以绕过原有的存取控制。这种漏洞的主因是能直接将使用者本身发出的执行请求,回送至原来的浏览器执行,使得攻击者可趁机撷取使用者的Cookie或Session资料。
Malicious File Execution
恶意档案执行
Web应用程式将外部的恶意档案引入,同时趁机执行档案的内容。简单地说,有人先将恶意程式码或恶意网页的连结植入网页,让浏览该页面的使用者遭受攻击,这台电脑可能因此成为傀儡,帮入侵者收集帐号、密码。
因为有些网页程式在执行时,允许从远端夹带其他档案,使得攻击者可以借机夹藏恶意的程式码与资料,造成破坏。整台伺服器很可能因此受损。
Backdooring Media Files
成为后门程式的多媒体档
利用特定多媒体档案的指令码执行能力,引发安全性漏洞,例如Flash、QuickTime、PDF档。不过最近后门程式针对的目标更多了,例如已经有人针对MP3这个格式实作出概念验证性的程式码。
例如,QuickTime player 3.×版到7.×版一直都存在的不安全功能──Text Tracks中的HREF Tracks,它可用来开启FTP、HTTP、HTTPS的网址,并且支援JavaScript协定。
Cross-Site Request Forgery,CSRF
跨站冒名请求
与XSS漏洞类似,容易搞混。 XSS是指攻击者在未经授权的情况下擅自注入到网站上,而前者只从使用者信任的网站上,利用他们对于网站的授权,单纯发送不合法的程式码,让入侵者得以执行不被许可的指令和动作,例如提升权限或将某些规则写入系统的个人设定,而不需要依赖任何个人端的指令执行环境。由于恶意程式码夹带在电子邮件或网站内,不论是直接进行或利用XSS漏洞,在执行时,使用者根本无从判断。
Drive-by Downloads
自动从网路下载档案
是指使用者不知情的状况下,在系统背景自动下载、安装与执行特定的档案。通常是指间谍程式、病毒或恶意程式采用的某种传播方式。可能发生的时机在平常浏览网站、检视电子邮件或点选弹跳视窗,但也可能因为有人从远端网路渗透进来,企图利用对方电脑的浏览器、邮件收发信软体或作业系统的漏洞或弱点,在使用者没发觉时,就命令它们从网路下载了恶意程式,例如Windows Metafile的漏洞就足以引发这类行为。
JavaScript malware
JavaScript恶意软体
JavaScript如果被恶意程式码滥用,将是一种很可怕的现象,它将是一种可以在防火墙内攻击内部网路个人端的方式,而且不论是那种作业系统或浏览器,几乎都有执行JavaScript的能力,因此这种攻击方式将不会受限在特定平台。 JavaScript可以制造连结,而且能存取串接样式表的API。有些恶意JavaScript也可以用特定的函式让个人端下载其他恶意程式码到浏览器上,例如ADODB.Stream或setSlice()。
SQL Injection/Command Injection
SQL注入/指令注入
由于网站应用程式需连结资料库,进而获取资料,透过这种手法,入侵者可以取得部署恶意程式的权限。
当使用者输入特定的跳脱字元,使得在应用程式查询资料库时,将这些字串在过滤的情况下,嵌在SQL叙述;或者是使用者输入了没有指定资料型别的字串,导致系统产生管理者未预料到的执行结果。这问题很常发生,不论何时、程式语言类型或嵌入式的指令码执行环境,都有可能。
RSS/Atom Feeds Injection
RSS/Atom Feeds注入
RSS和Atom已成为许多使用者获取网站动态的管道,但这种方式有可能因为连线方式而产生安全性的问题。例如1995年Yahoo就被发现Feeds搜集程式(RSS Aggregator)介面中有弱点;另一个是AOL ICQ Toolbar,该应用程式预设的网页,在载入内容前并未验证页面本身,也无法顺利验证feed的标题和叙述栏位。一旦使用者在这样的环境下浏览恶意网站时,这些电脑可以执行各种HTML语法、指令码,不受管制。
XML Port Scanning
XML网路埠扫描
是一种即使在防火墙内也能使用的入侵技术,也就是说,攻击者利用XML解析器(parser)去执行网路埠扫描,它需要特定的实作方式才能自远端利用该漏洞。
它主要是利用XML的DTD(Document Type Definition)元件,从解析器中去启动传统的网路埠扫描;这个XML档如果允许内部的元素能够动态定义,就可以建立出外部实体的参考,以便对应出各系统的网路埠。
本文网址:
http://www.chinalabs.com/view//ZXKM0XAB.html
返回
|
打印