【51CTO.com 独家译稿】如果你以一位安全问题分析师的角度,已经花费了不少时间来寻求网页应用程序的安全保障方案,或者是以开发者的身份来探讨SDLC的实践应用,那么你很可能会对OWASP的十大工具感兴趣,进而在今后面对问题的时候用到它们的功能。首先十大工具存在的目的是作为一种应对机制,其内容涵盖了由一个应用程序方面的众多安全专家所组成的全球性联盟所达成的共识性目标,即处理最关键的网页应用程序安全漏洞。我们即将介绍的这十大OWASP安全管理工具,除了能够为用户的应用程序进行风险项目管理及相关的实用培训之外,还包含了有关应用程序测试及相关问题修复的内容。目前对于应用程序安全管理的从业者及开发者来说,在管理这一类软件的使用风险中,具备合适的工具包是非常有必要的。
正因为WhiteHat Security对这十大安全工具的卓越贡献,我顺理成章地从他们推出的第十一版网页安全现状统计报告中援引了一些关键性的内容。
首先,"资料外泄"在安全问题的成因中所占的比例高达四分之一甚至三分之一。在该报告中,资料外泄的概念被定义为"内容涵盖广泛,用以描述在某个网站上经由安全漏洞而导致的敏感数据暴露,例如页面应用程序的技术细节、运行环境或是用户的个人信息。"你将会看到在对OWASP十大安全工具进行考量时,如何在实例中通过资料外泄现象将软件漏洞的所在定位出来。
其次,WhiteHat安全报告所涉及的各项经验教训值得被一提再提,加以重视,因为它们完全符合我们在本文中要讨论的议题。
第一课:
软件总会有编码错误,而该错误被利用之后就产生了安全漏洞。因此,考虑到一套既具备时效性又必须安全可靠的软件的开发周期(简称SDLC)不能太长,我们的应对态度应该是尽量减少安全漏洞的数量及降低不进行修复所导致的后果的严重程度,而不一定要彻底将其消除。
第二课:
仅仅一个单独的网站安全漏洞被恶意利用,就足以对整个正常的网上业务造成极大的干扰,例如导致数据丢失、动摇网站用户的使用信心等等。因此,这些漏洞被发现的越早,恶意攻击者可资利用的时间就越短,其攻击成功的机率自然也就大大降低了。
如此一来,结论其实非常简单:尽量减少并及时修复网页应用程序的漏洞将大大降低网站被攻击的次数,并改善安全状况。我们应该立即着手实施,对不对?答案是否定的,这种结论已经过时,"安全保障处理方案"现在可以说只是种古董级的陈词滥调。如果每个人都致力于达成前面所提到的"降低风险及修复漏洞"工作,我们可能已经没必要再讨论什么十大热门安全工具或者是研究第十二版的网页安全状况统计报告(比目前最新的再新一版)。但是注意,我们还是得做点富有实效的独特工作,没错吧?
Gifford Pinchot曾经说过:"不要对一场比赛的结果进行下注,除非你亲身参与到这场比赛中去。"
因为提出解决方案永远比不住地抱怨更有效,让我们将目光转向评测,深入探讨今天文章的主角--十大热门安全工具--是如何评选得出,以及怎样在实际应用中利用其功能帮助我们解决问题。首先请看下列概述。
OWASP十大页面应用程序安全风险(所有信息根据2010年的应用情况归纳得出)如下:
第一位: 注入式攻击 注入类漏洞
例如SQL,OS以及LDAP注入,发生在不受信任的数据作为一条指令或是查询要求的一部分被发往解释程序之时。攻击者所植入的恶意数据可以骗过解释程序,导致该指令或查询要求在无意中被执行。
第二位: 跨站点脚本(简称XSS)
每当一个应用程序携带了不受信任的数据并将其发送至页面浏览器,而又未经过相关验证及转换解析时,XSS类漏洞就会蠢蠢欲动。XSS允许攻击者在受害者的浏览器中执行脚本,这会导致用户的会话遭受劫持、网站受到破坏或者是将用户的访问目标重新定向至某些恶意网站。
第三位:无效的认证及会话管理功能
应用程序的相关认证及会话管理功能在执行过程中常常发生各种问题,导致攻击者有可能获取到密码、密钥、会话授权或是通过利用其它执行性漏洞来盗取用户身份。
第四位: 对不安全对象的直接引用
当一位开发者公开了某种对内部执行对象的引用,例如一个文档、索引系统或是数据库关键信息时,这种不利情况就有可能发生。由于缺乏访问控制检查或其它安全保护措施,攻击者们能够利用这些引用信息对那些未获授权的数据进行访问。
第五位: 伪造的跨站点请求 (简称CSRF)
CSRF类攻击的特点是,强迫受害者的某个已进行登录操作的浏览器向安全保护薄弱的页面应用程序发送一条伪造的HTTP请求,包括受害者会话缓存内容及其它任何自动产生的包含认证信息的内容。这就导致了攻击者可以通过强制受害者浏览器向具有漏洞的应用程序传递请求的方式,使相关的应用程序认定该请求是受害者本人所发出的合理请求。
第六位: 安全设置错误
好的安全保障体系需要一套经过精心定义及部署的设置方案,其对象包括应用程序、系统框架、应用程序服务、页面服务、数据库服务以及运行平台等。上述这些设定应该被精确地定义、执行和保存,然而事实上大多数情况下,用户会直接使用安全保障系统的默认设置,而其中有许多项目并未被正确配置,包括全部软件的及时更新以及应用程序所要调用的全部代码库。
第七位: 加密存储方面的不安全因素
许多页面应用程序并未利用适当的加密或散列手段来妥善保护好那些敏感内容,例如信用卡信息、社保卡信息以及身份验证信息等。攻击者们可以窃取或修改这些保护不力的数据以对受害者进行身份盗用、信用卡诈骗或其它犯罪行为。
第八位: 不限制访问者的URL
许多页面应用程序在转向那些受保护的链接及按钮之前,都会对访问者的URL进行检查。然而,应用程序其实需要在每一次接收到页面访问请求时,都进行一次这样的检查,否则攻击者们将可以通过伪造URL的方式随意访问这类隐藏的页面。
第九位: 传输层面的保护力度不足
应用程序常常无法实现验证、加密以及保护机密及敏感的网络通信内容的完整性等功能。当这种情况发生时,应用程序有时会选择支持那些低强度的加密算法、使用过期的或者无效的验证信息,或者是无法正确应用这些安全保障功能。
第十位: 未经验证的重新指向及转发
页面应用程序经常将使用者的访问请求重新指向或转发至其它网页和网站上,并使用不受信任的数据来定位目标页面。如果没有正确的验证机制在此过程中加以制约,攻击者完全可以将受害者的访问请求重新指向到钓鱼类或其它恶意软件网站上,或者将访问转发至未经授权的页面。
对于OWASP十大页面应用程序安全风险中的九个,我都将通过推荐对应管理工具的方式帮助大家识别,并降低这类风险对大家公司及个人在网站运营及服务提供方面的危害。而且我要做的,是努力为每一类风险提供多种不同的解决方案以供大家选择,从而避免同一安全保障软件被重复使用。从其中选择最适合自己的独特工具吧。
>>进入十大工具及应用策略搞定OWASP热门威胁专题下载相关工具
#p#
以下是一个关于安全风险及其应对工具的表格:
安全风险
|
应对工具
|
第一位: 注入式风险
|
SQL Inject Me
|
第二位: 跨站点脚本 (简称XSS)
|
ZAP
|
第三位: 无效的认证及会话管理功能
|
HackBar
|
第四位: 对不安全对象的直接引用
|
Burp
|
第五位: 伪造的跨站点请求(简称CSRF)
|
Tamper Data
|
第六位: 安全配置错误
|
Watobo
|
第七位: 加密存储方面的不安全因素
|
N/A
|
第八位: 不限制访问者的URL
|
Nikto/Wikto
|
第九位: 传输层面的保护力度不足
|
Calomel
|
第十位: 未经验证的重新指向及转发
|
Watcher
|
除此之外还有很多针对这类工作的工具;这份简单的名单所列出的只是那些我曾经亲自使用过的,处理各种协议、研究及日常工作的工具。我向你保证,如果你有针对性地对这些工具软件加以自定义及设定,那么这个工具软件集合在对安全薄弱环节进行评估方面绝对会发挥巨大的作用。我还会为大家推介一些非常实用的相关资源。Samurai Web Testing Framework (WTF) 就是一款非常优秀的,基于Linux的LiveCD所发行的工具,它由Secure Ideas的Kevin Johnson以及InGuardians的Justin Searle共同开发完成。这款工具的两位制作者将其定义为最好的开源且免费的工具,用来应付那些有关网页检测及页面攻击的问题,而其功能性方面的选择方案则是由两位制作者由自身日常工作中遇到的情况而斟酌得出。作为武士系列工具的一部分,同样还存在着武士WTF火狐附加组件工具集,其中包含为你的火狐浏览器量身订做的网页应用程序渗透测试及安全分析附加组件。
我最喜爱的测试工具及方案的平台是OWASP的 WebGoat,这是一款"主动暴露安全隐患的J2EE网页应用程序,其设计目的是为大家提供网页应用程序安全经验"。我推荐WebGoat5.3 RC1标准发布版作为教学工具,因为它的功能性更接近于一个实验平台。详情请参阅包含WebGoat实验平台使用指南的下载站点。
最后,别忘了FoxyProxy这款火狐专用的代理类附加组件,它同样是我们上面提到的工具软件集的"必备一员",因为代理功能在我们的测试中是经常会被用到的。
>>进入十大工具及应用策略搞定OWASP热门威胁专题下载相关工具
#p#
第一位: SQL注入攻击 - SQL Inject Me
大多数人都对SQL注入攻击有所了解,因为它既普遍存在,又影响巨大。火狐浏览器的附加组件SQL Inject Me,作为武士WTF插件集合中的一部分,在检测你正在浏览中的应用程序方面非常实用。通过它你可以检测全部架构或选中的参数所能受到的各种攻击方式,或者是检测该工具中预设的九种常见攻击类型。当在工具中选定攻击方式后,再执行SQL Inject Me,则该工具的运行状况即会如图一所示,包括通过在选项中添加或删除字符串的方式进行攻击。
图一 - SQL Inject Me>
检测结果会在整个测试过程结束后,以报告的形式生成在一个独立的火狐浏览器选项卡中。
>>进入十大工具及应用策略搞定OWASP热门威胁专题下载相关工具
#p#
第二位: 跨站点脚本 (简称XSS) - ZAP
Zed攻击代理(简称ZAP),同样是OWASP项目的一部分,这是一款"易于使用的,帮助用户从网页应用程序中寻找漏洞的综合类渗透测试工具"。它同时还是Paro Proxy项目的一款分支软件(目前相关的支持功能已取消)。ZAP公司拥有对其所发布工具的长效及对未来版本的明确发展路线;在后续产品中,功能性无疑将得到进一步加强。该工具的1.2.0版本包含了拦截代理、自动处理、被动处理、暴力破解以及端口扫描等功能,除此之外,蜘蛛搜索功能也被加入了进去。正是因为ZAP具备对网页应用程序的各种安全问题进行检测的能力,在这里我们将在它的帮助下对跨站点脚本(简称XSS)项目进行测试。
首先要确认将ZAP加入你的FoxyProxy代理工具中,安装后启动,让你的火狐浏览器通过FoxyProxy对其网络数据交换进行管理,之后再做一些相关测试。
我将ZAP定位于自己的Newscoop3.5版本实验平台上,因为目前Newscoop的3.5.1版本被开发商披露与本工具不兼容。
在查看某个应用程序之后,ZAP的用户界面将自动被添加进访问过的网页中去。这时右击newscoop,然后选择"蜘蛛"选项。这一操作将会根据我们当前访问的权限抓取所有网页。我一般会通过分析来调整自己的扫描策略,以避免不必要的检查,然后再选择开始扫描来对那些选定的应用程序进行评估。图二展示了Newscoop所发现的XSS错误。
图二 - ZAP>
我非常欣赏ZAP在进行扫描操作时所表现出来的抓取能力,因此它占据了我最喜爱的代理工具中的第二位,仅次于Burp。
>>进入十大工具及应用策略搞定OWASP热门威胁专题下载相关工具
#p#
第三位: 无效的认证及会话管理功能
无效的认证及会话管理功能会导致一种通病,即在会话ID保护方面的薄弱。它们一般来说既不具备SSL/TLS的保护,存储方式简陋低劣(未进行加密),又暴露在来自URL的改写风险之下。我的确遇到过有些应用程序的会话ID是被用户以一段MD5码或是SHA1散列形式的密码所保护起来的。如果攻击者发动的是中间人攻击或是通过XSS漏洞获取到会话ID,那么在假设这一过程不可逆的前提下,我们将可以使用火狐的插件HackBar加以应对。HackBar插件在安装之后,可以通过按下功能键F9的方式调出,然后选择加密,接下来是选择MD5加密或SHA1加密,最后将攻击检测结果发出(如果有结果可显示的话)。
图三 - HackBar>
除了XSS及SQLi检查,HackBar在对Base64,各种URL以及HEX的编码及解码方面也非常实用。
>>进入十大工具及应用策略搞定OWASP热门威胁专题下载相关工具
#p#
第四位: 对不安全对象的直接引用-Burp Suite
我始终坚信文件路径及目录浏览过程中检查步骤的缺乏,正是对不安全对象的直接引用这类现象产生的最大根源。借助这一薄弱环节,攻击者们将能够获取到/etc/passwd目录下的内容。
虽然我将Burp作为自己的首要网页应用程序安全漏洞分析工具--使用的是特殊的商用版本,其实你也可以使用这款工具的免费版(不具备扫描功能)来对路径及目录浏览过程进行监测。
Burp同样可以作为一款代理软件来使用;跟ZAP类似,只要在FoxyProxy上进行相应设置即可。启动Burp(你会需要安装Java),然后将你的浏览器指向要访问的目标地址。通过WebGoat,我们能够得到关于被称为访问控制漏洞--规避路径访问控制计划的宝贵经验。右击目标地址的URL(http://localhost/WebGoat/attack?Screen=17&menu=200),将其添加到Burp左侧的信息格中并选择将其发送至中继器中。现在转至中继器选项卡并修改Backdoors.html条目以使其将文件参数提交至BackDoors.html..\..\..\..\..\..\..\..\..\..\windows\win.ini。然后点击go按钮。
图四清楚地表明,我们已经可以对主机系统中的win.ini文件进行直接访问。
图四 - Burp>
如果大家使用的是基于Windows系统的网页服务器,攻击者显然会使用一种危害性更强的字符串(例如SAM)进行攻击。
>>进入十大工具及应用策略搞定OWASP热门威胁专题下载相关工具
#p#
第五位: 伪造的跨站点请求 (简称CSRF) - Tamper Data
有这么一款工具,我对它在伪造的跨站点请求 (简称CSRF)的测试表现方面极为赞赏,它就是:Tamper Data。同样作为武士WTF附加组件集合中的一部分,Tamper Data使网页内容的交互变得难以置信的简单。
在检测一款可能会被任意更改指向的应用程序(简称GalleryApp)时,我使用Tamper Data来测定该GalleryApp是否在将所有参数提交给admin.php脚本时会容易受到CSRF攻击。.攻击者很可能会通过欺骗手段冒充管理员以获取创建或删除账户的权限,而这类CSRF漏洞在这种情况下则很可能会被他们利用来访问某个恶意的网站。
在Tamper Data运行的同时(在火狐中:点选工具项,再选择Tamper Data),我进行了自己的GalleryApp测试实践。为了验证CSRF的漏洞,我首先创建了一个额外的用户,并在Tamper Data中选择开始篡改,最后选择点击删除来分析该过程中被传输及提交的参数。
随着应用程序的正常运作,依照逻辑它会为额外的这个用户分配一套新的2号id。这种逻辑像是一种能够被攻击者迅速利用的可预测的权限,具体情况见图五。再看一次,请注意这里缺乏任何一种令牌或其它形式的访问限制手段。而这正是常常被用来验证CSRF 漏洞存在的重要指标。
图五- Tamper Data>
我的攻击活动在概念层面上证明了一个HTML架构的页面中包含具名的内容(删除ID)以及行动参数,同时还具备一种传输过程及其隐藏的输入信息。为了进一步证明这一结论,我还在页面中加入了轻微的时间延迟及document.deleteID.submit()脚本,借以完成预定的任务。正如图五中所看到的,为了完成我的对Tamper Data实际功效的验证,隐藏的输入信息内容如下:
- <input type="hidden" name="id" value="2″>
- <input type="hidden" name="action" value="user">
通过所传输的信息,我选定的内容被正确提交,并使我获得了创建特权用户的权限,这样一来我就可以利用此经过身份验证的用户身份,对应用程序调用的文件发出修改指令。
>>进入十大工具及应用策略搞定OWASP热门威胁专题下载相关工具
#p#
第六位: 安全配置错误 - Watobo
Watobo 使安全专业人员能够以高效且半自动化的方式对网页应用程序的安全性进行评估。这是一款相当不错的工具,在检测如SQLi及XSS等因某些配置错误而导致的安全问题中发挥出色。
我利用它来方便地对自己所搭建的故意保留安全隐患的实验服务器进行攻击,当然这仅仅是内部测试。直接将自己的服务器设置为暴露在互联网环境下这类行为,根据教科书中的定义来衡量无疑是错误的,而我所做的这一切只是为了对Watobo的实际应用效果进行"评估"。
Watobo是以代理工具的角度运行的,并且需要调用Ruby中的部分内容,因此你需要在自己的系统中安装Ruby解释程序。将FoxyProxy进行设置,以使其将网络数据流通过8081端口导入Watobo。通过你所选择的浏览器,你将需要定义一个项目,然后定义会话,最后是浏览你的目标站点。选择目标,接着点击那个大大的绿色箭头(真是太容易了对吧)。你将需要确定内容范围;我选择了配置、杂项以及文件共享。
图六反映了搜索结果的清单,它们具备同一个普遍的安全配置错误。
图六- Watobo>
>>进入十大工具及应用策略搞定OWASP热门威胁专题下载相关工具
#p#
(第七位安全威胁目前还没有相应的工具)
第八位: 不限制访问者的URL - Nikto/Wikto
能确保你的应用程序对访问者的URL进行查询之后才向那些被保护的链接及按钮提交请求当然不错,但如果应用程序并没有在每次接到类似的访问请求时都进行监控,那么攻击者们将能够获取到这些应用程序所调用的隐藏页面,这已经是人尽皆知(例如WordPress)的情况了。而通过例如Nikto或是Wikto(与Nikto类似,具备Windows图形用户界面)即可轻松实现上述操作。
Nikto,cirt.net出品(其口号是:自信源自于怀疑),是一款"网页服务扫描工具,支持同时就多个项目对网页服务器进行全方位测试,其中包括检测超过六千四百种具有潜在危险或版本已过于陈旧的文件或公共网关接口脚本,检测超过一千种过时的服务器版本,以及二百七十多种针对不同类型服务器的安全隐患。"
Nikto的应用需要Perl解释程序进行支持。 它基于Linux系统运行,启动过程非常简单,只需键入:
- ./nikto.pl -h <target host IP or URL>.
图七显示的运行结果,其运作所针对的服务器与图六中所涉及到的一致。
图七- Nikto>
Nikto会产生一些明显的误报,但你也可以从繁多的检测结果中得到真正有价值的信息。
请注意图七底部,该处提示建议限制访问。
>>进入十大工具及应用策略搞定OWASP热门威胁专题下载相关工具
#p#
第九位: 传输层面的保护力度不足- Calomel Add-on
对传输层面保护力度不足的原因,我的描述非常简单。你在自己的实际运作中没有用到SSL。看看,的确非常简单吧。许多网页应用程序安全测试工具都会在你的应用程序无法使用SSL/TLS时(例如切换为管理员权限或进行登录操作)或你所应用的是一个较旧的版本(SSL v1或v2)时进行提示。另有一个有趣的火狐附加组件,它并不在我们的武士WTF工具集合中,却能够在收集认证证书信息方面提供非常好的反馈。举例说明,Calomel附加组件会很快注意到我为holisticinfosec.org所准备的自签名证书完全是伪造的(这种情况只针对我的测试,在大家的应用中并不存在),如图八所示。
图八 - Calomel>
Calomel将会对SSL连接及安全等级等信息进行验证,并改变对应工具栏按钮的颜色,这取决于加密强度的高低,从红色(强度低)到绿色(强度高)。所有证书的状态细节都可以在对应的下拉菜单中进行查询。
>>进入十大工具及应用策略搞定OWASP热门威胁专题下载相关工具
#p#
第十名: 未经验证的重新指向及转发- Watcher
Watcher是Chris Weber开发的 Fiddler 附加组件(只支持IE核心),而且其在被动分析方面的表现好得难以置信。为了打造能够解决上述问题的健康的信息传输层,Watcher还要求你在自己的浏览器上同时运行Fiddler。一旦与Fiddler同时被安装,Watcher的使用就变得如同利用Fiddler来管理IE的网络数据流那么简单,这时Watcher已经在Fiddler中开始发挥作用。接下来你在浏览器中选取目标网址并进行访问;Watcher将会以被动状态提供监视及报警功能,详见图九所示。
图九- Watcher
重新指向如果不加以控制,会给我们带来许多危害,因为它会使那些利用钓鱼网站的罪犯有机可乘,受害者可能通过网址进行判断,以为正在访问的是为自己所熟悉的安全站点。 如果你感觉有点无聊,想要看看网址重新指向到底能惹出多大的祸来,试试输入以下内容:
- inurl:"redirect.asp?url=".
荣誉奖: W3AF, skipfish 以及 Websecurify
这三款工具我都用过,并且也非常喜欢;而在本文中将它们三者排除在外也使我非常为难。Skipfish这款工具之前在我的每月专栏 ISSA Journal中,我已经做过介绍。
而尽管这些工具所利用的检测方式及接口不尽相同,但其在检测的综合性以及提供的功能方面都是很类似的。
Web Application AttackandAudit Framwork,或称为W3AF,也已经收录在武士WTF工具合集中,这为大家获取这份LiveCD的镜像又提供了一个很好的理由。
而更牛的是,W3AF甚至包含了一个十大OWASP安全问题的配置文件,这样大家就可以直接就我们前面提到的这些项目进行预先评估。
综述
我建议大家完整阅读OWASP的十大安全问题全文之后,再开始对自己的设备进行测试。因为这样一来,大家就能够在对漏洞的不良影响、严重程序、降低风险及进行修复的具体细节方面得到更多补充。
请记住这条原则性忠告:不要在不属于你的站点或应用程序上使用这些工具。
最简单的实践方法是设置两个虚拟机,一个用来运行武士WTF,另一个则运行任何能够支持WebGoat的操作系统。我推荐大家使用具备LAMP功能的虚拟机,以便安装任意数量的具有漏洞或可能存在漏洞的网页应用程序。
【51CTO.com独家译稿,非经授权谢绝转载!合作媒体转载请注明原文出处及出处!】
原文链接:http://resources.infosecinstitute.com/owasp-top-10-tools-and-tactics/
【编辑推荐】