020-29133788
    资 讯
    您的位置:首页 >> 资 讯 >> 软件应用 >> 编程开发 >> 正文
    twitter:动态分析工具Phantom Gang

    点击:   发布日期:2013-06-24

    本文来自 www.020fix.com

    Twitter在程式码安全性分析上,也涵盖了动态分析,他们称之为Phantom Gang,可以查出是否包含溷合式的网页内容等安全性的问题,分析结果也是送至SADB,接着再传送到JIRA这个专案管理平台。

    Twitter用Brakeman来针对程式码的静态分析处理,而在程式码的动态分析处理,他们发展出称为Phantom Gang的作法来进行。Twitter以此找出了一些应用程式执行时的安全问题,像是:溷合不同型态的资料内容、使用有安全性弱点的旧版jQuery、表单处理时未要求验证Token的可靠性,或是使用者要张贴带有敏感资料内容的网页表单,却只透过传统的HTTP协定,而非透过HTTPS加密传输。

    实际上Phantom Gang是怎么运作的?它是一连串的Node.js处理程序,模拟了Webkit核心引擎浏览器的连线阶段,利用这种没有图形使用介面的浏览器实体(headless browser instances)去了解使用者看到的状况;而处理的结果会输出到SADB,然后再传给JIRA这个问题追踪管理平台。

    安全网页的档头宣示CSP
    2011年时,Twitter在行动版的网站上(mobile.twitter.com),测试了新的安全功能,称为CSP。CSP原本是一套由Mozilla基金会所开发出来的标准,目的主要是为了提升使用者浏览器端执行时的威胁防御力,以此阻挠所遭遇到的跨站指令攻击(Cross Site Scripting,XSS)。

    而在Twitter网站上若要启用CSP,也很简单,只需要在回传网页的档头(header)里面,将这样的政策包含进去即可。

    Twitter对CSP的使用,主要是禁止JavaScript由页面本身直接执行,让JavaScript只能针对站方提出的需求来执行。若有页面违反这样的政策,Twitter认为这是潜伏XSS攻击行为的徵兆。

    值得注意的是,网站若要启用CSP,要让若用不同平台的浏览器能够支援,所要设定的关键字是不同的。例如,Mozilla对CSP定义的关键字是X-Content-Security-Policy,主要是由Firefox使用,IE10也开始支援,而且微软又在当中额外加了在沙箱环境执行的指令。而其他浏览器则有不同作法,例如Webkit引擎的浏览器,像是Safari和部分版本的Google Chrome等,是用X-WebKit-CSP。

    除了CSP,Twitter也在网站上使用了HTTP Strict Transport Security(HSTS)的标示,意思是站方本身若在网页档头宣告用这项设定,网站会通知使用者操作的网页浏览器,只能透过HTTPS的加密连线,才能存取这个网站,应该自动转换成用HTTPS来连接网站,而不能用HTTP。同时,网站若出现凭证错误和警示的情况,HSTS可以提示使用者浏览器,使其停止连线至该网站。

    另外,Twitter目前在网页档头启用安全性的作法,还有好几种。像是:X-Frame-Options、X-Content-Type-Options、X-XSS-Protection。

    其中,X-Frame-Options可用于避免clickjacking攻击(绑架使用者浏览网页的点击动作而产生其他异常行为),对于采用<iframe>语法的网页,这个档头叙述可以指示浏览器是否绘制这个可能嵌入其他网页内容的页面,避免使用者点选隐藏在iframe网页内的指令或连结,而被操弄。

    而X-Content-Type-Options的防护,主要是属性设定要加上nosniff的叙述。为什么需要这样的档头?浏览器在开启的内容类型无法确定,往往预设会启动猜测(MIME-sniffing)机制时,现在可透过nosniff这设定值来停用内容自动办别、开启,以免发生误判因而产生安全性问题(例如应该是JPG图档,却以JavaScript执行,这让有心人士得以透过夹带程式码的图档来发动攻击)。

    另一个X-XSS-Protection,顾名思义也是为了防御XSS攻击所设计的功能,微软在IE8之后开始支援。IE会侦测是否在网页存取请求中出现了类似XSS攻击的行为,如果有,IE会修改、重组网页内容以阻挡攻击,同时对发出警示。