65.9K
CodeProject 正在变化。 阅读更多。
Home

Web 应用程序漏洞评估要点:迈向高度安全网站的第一步

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.20/5 (4投票s)

2007年6月21日

9分钟阅读

viewsIcon

27228

了解如何正确执行 Web 应用程序漏洞评估

引言

如果一个组织不采取系统性和前瞻性的方法来保障网络安全,特别是进行Web应用程序漏洞评估,那么该组织就无法防御增长最快的攻击类型。基于Web的攻击可能导致收入损失,客户个人身份信息和财务信息被盗,以及无法遵守各种政府和行业指令的监管要求:例如商户必须遵守的《支付卡行业数据安全标准》(PCI),医疗保健组织必须遵守的《健康保险流通与责任法案》(HIPAA),以及上市公司必须遵守的《萨班斯-奥克斯利法案》。事实上,研究公司Gartner估计,目前75%的网络安全攻击都直接针对应用程序层。

尽管它们有着跨站脚本(Cross-Site Scripting)、SQL注入(SQL Injection)或目录遍历(directory transversal)等晦涩的名称,但规避与Web应用程序漏洞相关的风险以及利用这些漏洞的攻击方法,并非任何组织都难以企及。本文是三部分系列文章的第一篇,将概述您需要了解的关于进行漏洞评估以检查网络安全风险的知识。它将向您展示Web应用程序安全扫描仪能够合理地完成哪些工作,以及哪些类型的评估仍然需要专家来审查。接下来的两篇文章将介绍如何修复漏洞评估所发现的网络安全风险(而且工作量会很大),最后一篇将解释如何从应用程序的构思、设计和编码到生产生命周期中的各个环节,确保适当的意识、策略和技术水平,以最大限度地减少Web应用程序安全漏洞。

什么是Web应用程序漏洞评估?

Web应用程序漏洞评估是通过识别应用程序逻辑、配置和软件编码中的错误来确定应用程序“可用性”(例如,糟糕的输入验证错误可能导致攻击者造成昂贵的系统和应用程序崩溃,甚至更糟)、“机密性”(例如,SQL注入攻击以及其他使攻击者能够访问机密信息的攻击类型)和数据“完整性”(例如,某些攻击可能允许攻击者更改定价信息)受到威胁的方式。

能够最大程度地确定您不受这些网络安全漏洞类型风险的唯一方法是,对您的应用程序和基础设施运行漏洞评估。而要尽可能高效、准确和全面地完成这项工作,就需要使用Web应用程序漏洞扫描器,以及一位精通应用程序漏洞及其被攻击者利用方式的专家。

Web应用程序漏洞扫描器在它们的工作中表现出色:识别导致网络安全漏洞的技术编程错误和疏忽。这些是编码错误,例如未检查输入字符串,或未能正确过滤数据库查询,这些都允许攻击者潜入,访问机密信息,甚至导致您的应用程序崩溃。漏洞扫描器自动化了查找这些类型的网络安全问题的过程;它们可以不知疲倦地爬遍应用程序进行漏洞评估,在数小时内将无数变量输入到输入字段中,这个过程人工需要数周才能完成。

不幸的是,技术错误并不是您需要解决的唯一问题。还有另一类网络安全漏洞,它们存在于应用程序和系统流程的业务逻辑中,仍然需要人类的洞察力和经验来成功识别。无论称之为道德黑客还是网络安全顾问,有时(尤其是在新开发和部署的应用程序和系统上)您需要一个拥有专业知识的人,以一种类似黑客的方式运行漏洞评估。

就像技术错误一样,业务逻辑错误也会导致网络安全方面出现严重问题和弱点。业务逻辑错误可能允许购物者在购物车中插入多个优惠券——这是不允许的——或者允许网站访问者实际猜测其他客户的用户名(例如直接在浏览器地址栏中),并绕过身份验证流程访问其他人的账户。有了业务逻辑错误,您的业务可能会赔钱,或者客户信息可能会被盗,而且您会发现很难弄清楚原因;这些交易在您看来是合法进行的。

由于业务逻辑错误不是严格的语法错误,因此它们通常需要一些创造性的思考才能发现。这就是为什么扫描仪在发现此类问题方面效率不高,因此需要由知识渊博的专家通过漏洞评估来识别这些问题。这可以是一位内部网络安全专家(一个完全脱离开发过程的人),但最好是一位外部顾问。您需要一位有经验的专业人士。而且,每个公司都可以从第三方审计其网络安全中受益。新鲜的视角将发现您的内部团队可能忽略的问题,并且由于他们已经帮助了数百家其他公司,他们将能够运行漏洞评估并快速识别需要解决的问题。

进行漏洞评估:第一步

您的组织可能需要进行漏洞评估的原因有很多。这可能仅仅是为了检查您整体网络安全风险态势。但是,如果您的组织拥有的应用程序不止几个,并且有许多服务器,那么如此大范围的漏洞评估可能会让人不知所措。您需要决定的第一件事是哪些应用程序需要进行评估,以及为什么。这可能是您PCI DSS要求的一部分,或者是为了满足HIPAA要求。或者范围可能是单个、即将部署的应用程序的网络安全。

一旦您确定了范围,就需要确定需要评估的应用程序的优先级。如果您正在评估一个单一的新应用程序,那么这个决定很容易。但如果您即将评估您架构中的所有Web应用程序,那么您需要做出一些决定。无论您是在查看您拥有的应用程序的网络安全,还是只查看那些参与在线销售交易的应用程序,您都需要清点并确定要评估的应用程序的优先级。

根据您的漏洞评估的范围和目的,首先查看您关键应用程序的网络安全是有意义的——例如,那些进行最多交易或交易额最大的应用程序——然后在此基础上进行。或者,可以从所有与处理和存储销售交易的应用程序相关的应用程序开始。

无论您的范围或漏洞评估的目的如何,在列出和确定应用程序优先级时,总是需要考虑您架构的其他方面。例如,任何面向外部的应用程序——即使它们不包含敏感信息——都需要被赋予高优先级。面向外部托管的应用程序也是如此,无论它们是面向Internet的还是直接连接到后端系统的。任何可以通过Internet访问或由他人托管的应用程序都应进行漏洞评估。您不能仅仅因为一个应用程序由第三方托管就认为它是安全的,就像您不能仅仅因为Web应用程序、表单或整个站点不处理敏感信息就认为没有风险一样。在这两种情况下,任何网络安全漏洞都很可能直接将攻击者引向您最关键的网络网段和应用程序。

漏洞评估

现在您已经准备好进行漏洞评估了。信不信由你,大部分艰苦的工作已经完成了:决定范围,然后对您的应用程序进行分类和优先级排序。现在,假设您已经购买了网络安全扫描仪,并且已经确定了谁将进行手动扫描以查找业务逻辑错误,您就可以着手处理您的应用程序了。

基于应用程序的安全健康状况生成的报告将为您提供高、中、低优先级漏洞的列表。此时,您需要有人来审查自动漏洞评估的结果,以查找任何误报,即扫描仪已识别但实际上不存在的漏洞。如果这看起来令人不知所措,请不要担心;我们将在下一期深入探讨如何确定这些网络安全漏洞的优先级并进行修复。与您的自动漏洞评估大致同时,手动评估也将进行。在手动评估期间,专家将查找应用程序中的逻辑错误:用户是否有可能以开发人员未预料到的方式进行交易?例如,某人能够篡改从客户端传递到服务器的应用程序值以更改商品价格。手动漏洞评估将以一份列出所有发现的网络安全漏洞的列表结束,评估人员应根据每个问题的可利用性以及攻击者成功后的潜在危害来确定这些问题带来的风险优先级。

现在您有了技术和逻辑上的网络安全漏洞列表。而且,如果您的组织像大多数其他组织一样,您还有一些修复工作要做。现在的挑战是确定需要修复的内容的优先级,以便可以加固现有应用程序,并且可以修复正在构建的应用程序并安全地投入生产。

尽管网络安全问题列表可能很长,但您已经完成了通往高度安全应用程序道路上的第一个主要阶段。请放心,您的漏洞评估已在您的应用程序被竞争对手、独行黑客或有组织犯罪攻击之前就发现了问题。在下一篇文章“有效的Web应用程序漏洞修复策略”中,我们将向您展示如何确定您的修复工作的优先级,以便不会延长开发时间,并且可以将有风险的现有应用程序在遭到攻击之前进行修复。

关于Caleb Sima

Caleb Sima是SPI Dynamics的联合创始人,SPI Dynamics是一家Web应用程序安全产品公司。他目前担任SPI Labs(SPI Dynamics的研发安全团队)的首席技术官兼总监。在联合创立SPI Dynamics之前,Caleb曾是Internet Security Systems的精英X-Force研发团队成员,并在S1 Corporation担任安全工程师。Caleb经常作为演讲者和媒体资源,讨论Web应用程序安全测试方法,并曾为(IN)Secure Magazine、Baseline Magazine撰稿,并被美联社报道。

关于Vincent Liu

Vincent Liu,CISSP,CCNA,是Stach & Liu的管理总监,Stach & Liu是一家提供高级IT安全解决方案的专业服务公司。在创立Stach & Liu之前,Vincent曾领导Honeywell International全球安全部门的攻击与渗透以及逆向工程团队。Vincent是一位经验丰富的演讲者,曾在BlackHat、ToorCon和Microsoft BlueHat等会议上发表演讲。他的研究成果曾发表在采访、期刊和书籍中,亮点包括:“渗透测试人员的开源工具包;编写安全工具和漏洞利用;套接字、Shellcode、移植和编码;以及即将出版的《黑客入侵:无线》”。

© . All rights reserved.