版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
中国测试员网站使用Appscan保障Web应用安全性编写:梁建增
Appscan简介IBMRationalAppScanStandardEdition是一种自动化Web应用程序安全性测试引擎,能够连续、自动地审查Web应用程序、测试安全性问题,并生成包含修订建议的行动报告,简化补救过程。IBMRationalAppScanStandardEdition提供:核心漏洞支持:包含WASC隐患分类中已识别的漏洞——如SQL注入、跨站点脚本攻击和缓冲区溢出。广泛的应用程序覆盖:包含集成Web服务扫描和JavaScript执行(包括Ajax)与解析。自定义和可扩展功能:AppScaneXtensionFramework运行用户社区共享和构建开源插件。高级补救建议:展示全面的任务清单,用于修订扫描过程中揭示的问题。面向渗透测试人员的自动化功能:高级测试实用工具和Pyscan框架作为手动测试的补充,提供更强大的力量和更高的效率。法规遵从性报告:40种开箱即用的遵从性报告,包括PCIDataSecurityStandard、ISO17799和ISO27001以及BaselII。
信息系统安全性概述在进行软件安全性检测之前,首先我们应该具备一定的信息系统安全性的知识,在我们对整体范围的信息系统安全性保障有一定认识的前提下,才能决定我们能更好的保障该环境下的软件应用安全性。计算机信息系统是由计算机及其相关的和配套的设备、设施(含网络)构成的,按照一定的应用目标和规则对信息进行采集、加工、存储、传输、检索等处理的人机系统。从而我们可以得知计算机信息系统的安全性是一个相当复杂且广的课题,通常情况下,计算机信息系统都是以应用性为主题,以实现不同用户群的相应需求实现。而应用性的实现通常是采用应用软件而达成。典型的计算机信息系统,包括了机房环境,主机设备,网络交换设备,传输通信媒介,软件系统以及其他相关硬软件,而由于当前信息系统网络的连通性,给安全性问题带来了更大的挑战。在当今的时代,Internet(因特网)已经成为一个非常重要的基础平台,很多企业都将应用架设在该平台上,为客户提供更为方便、快捷的服务支持。这些应用在功能和性能上,都在不断的完善和提高,然而在非常重要的安全性上,却没有得到足够的重视。由于网络技术日趋成熟,黑客们也将注意力从以往对网络服务器的攻击逐步转移到了对Web应用的攻击上。根据Gartner的最新调查,信息安全攻击有75%都是发生在Web应用而非网络层面上。同时,数据也显示,三分之二的Web站点都相当脆弱,易受攻击。然而现实确是,绝大多数企业将大量的投资花费在网络和服务器的安全上,没有从真正意义上保证Web应用本身的安全,给黑客以可乘之机。
Web安全性测试要点Web应用安全测试的重要性由于我们将讲述的重点是AppScan,所以下面我们将主要对WEB应用的安全性在整个信息系统体系中的特点进行介绍。通常,我们为客户提供的一系列解决方案中,WEB应用是属于自我研发的,该层次的安全性常常处于一种不被认知的状态中。并且由于应用系统的特殊性与针对性,商业化的安全保护产品很难考虑到这些特有的应用功能。所以,我们为客户实现的整个解决方案的信息系统环境中,无论客户采用了多么强大的防火墙,以及多么昂贵的IDS(入侵诊断系统)/IPS(入侵防御系统)等,但都无法防止对看似合法渠道的应用漏洞攻击,因为无论封闭的再怎么严实的信息系统都需要开发一些服务的端口以便能为合法用户提供服务,而攻击者就会通过从这些合法的入口中,寻找隐藏的应用系统漏洞,而通过应用系统漏洞的入侵,是其他安全保障软件以及硬件所难以察觉的,而这类窃取和破坏往往又是难以察觉和致命的。为什么说一般的安全工具往往很难捕捉应用层次的安全问题呢?网络脆弱性扫描工具,由于它仅仅用来分析网络层面的漏洞,不了解应用本身,所以不能彻底提高Web应用安全性;防火墙可以阻止对重要端口的访问,但是提供服务的端口始终要开放,我们无法判断这些服务端口中通讯数据是善意的访问还是恶意的攻击;SSL可以加密数据,但是它仅仅保护了在传输过程中数据的安全性,并没有保护Web应用本身;阶段性的渗透测试,无法满足处于不断变更之中的应用。Web应用安全威胁WebApplicationSecurityConsortium(WASC),是一个由安全专家、行业顾问和诸多组织的代表组成的国际团体。他们负责为WWW制定被广为接受的应用安全标准。WASC组织的关键项目之一是“Web安全威胁分类”,也就是将Web应用所受到的威胁、攻击进行说明并归纳成具有共同特征的分类。该项目的目的是针对Web应用的安全隐患,制定和推广行业标准术语。WASC将Web应用安全威胁分为如下六类:Authentication(验证)用来确认某用户、服务或是应用身份的攻击手段。Authorization(授权)用来决定是否某用户、服务或是应用具有执行请求动作必要权限的攻击手段。Client-SideAttacks(客户侧攻击)用来扰乱或是探测Web站点用户的攻击手段。CommandExecution(命令执行)在Web站点上执行远程命令的攻击手段。InformationDisclosure(信息暴露)用来获取Web站点具体系统信息的攻击手段。LogicalAttacks(逻辑性攻击)用来扰乱或是探测Web应用逻辑流程的攻击手段。常见的Web应用攻击OpenWebApplicationSecurityProject(OWASP),该组织致力于发现和解决不安全Web应用的根本原因。它们最重要的项目之一是“Web应用的十大安全隐患”,总结了目前Web应用最常受到的十种攻击手段,并且按照攻击发生的概率进行了排序。这个项目的目的是统一业界最关键的Web应用安全隐患,并且加强企业对Web应用安全的意识。常见的Web应用攻击示例:在OWASP组织列举的十大Web应用安全隐患中,有两个概率最高的攻击手段,它们分别是“跨站点脚本攻击”(Cross-SiteScripting)和“注入缺陷”(InjectionFlaws)。下面将通过举例来说明这两种攻击是如何实施的。跨站点脚本攻击恶意攻击者(这里使用E表示)通过E-mail或HTTP将某银行的网址链接发给用户(银行用表示),该链接中附加了恶意的脚本(上图步骤一);用户访问发来的链接,进入银行网站,同时,嵌在链接中的脚本被用户的浏览器执行(上图步骤二、三);用户在银行网站的所有操作,包括用户的cookie和session信息,都被脚本收集到,并且在用户毫不知情的情况下发送给恶意攻击者(上图步骤四);恶意攻击者使用偷来的session信息,伪装成该用户,进入银行网站,进行非法活动(上图步骤五)。因此,只要Web应用中,有可被恶意攻击者利用执行脚本的地方,都存在极大的安全隐患。黑客们如果可以让用户执行他们提供的脚本,就可以从用户正在浏览的域中偷到他的个人信息、可以完全修改用户看到的页面内容、跟踪用户在浏览器中的每一个动作,甚至利用用户浏览器的缺陷完全控制用户的机器。目前,跨站点脚本攻击是最大的安全风险。注入缺陷目前的Web应用中,绝大多数都会向用户提供一个接口,用来进行权限验证、搜索、查询信息等功能。比如一个在线银行应用,首先会有对注册客户进行身份验证的登录界面,在正确登录后,会提供更多交互功能,如根据客户的银行卡号信息,查询客户的最近交易、转账细节等。这些都是注入缺陷的最佳利用场景。所谓注入缺陷,就是在上述场景中,用户输入的数据被当做命令和查询的一部分,送到后端的解释器中解释执行。如果用户的输入是正常合法的,Web应用自然会返回正常合理的结果,但是,如果恶意攻击者,利用输入数据可被后台执行的原理,偷梁换柱,使用非法的输入,脆弱的Web应用会怎样呢?下面我们举一个例子来说明注入缺陷是如何进行的。在一个交易网站中,用户必须输入产品ID号才可以查看该产品的详细信息。为了实现这个需求,通常会用SQL语句查询数据库来实现。开发人员在编写应用程序时,可能会使用如下的SQL语句来实现上述目的(这里仅为示例):1)Select*fromproductswhereproduct_id=`+用户输入的ID+`这里的products是数据库中用来存放产品信息的表,+号表示SQL语句需要和用户输入的真实ID进行拼接。如果用户输入325,则该语句在执行时变为:Select*fromproductswhereproduct_id=`325`数据库会将ID为325的产品信息返回给用户。2)在界面上,需要用户输入产品ID的地方,黑客会输入如下数据:`or`1`=`1 可以看到,黑客并没有输入正常合法的产品编号。3)通过黑客的非法输入,需要执行的SQL语句变为:Select*fromproductswhereproduct_id=``or`1`=`1`可以看出,SQL语句的意义就完全改变了,当产品ID为空或者1=1时,返回产品所有信息,而1=1是永远成立的条件,因此,黑客并没有输入任何产品编号,就可以返回数据库中所有产品的详细信息。通过这个例子,我们可以看出,注入缺陷是风险非常高的安全漏洞,一旦Web应用中给用户提供了需要其输入数据的接口,就有可能遭到攻击,将后台的数据完全暴露在用户的面前。上述说明的“跨站点脚本攻击”和“注入缺陷攻击”,是目前Web应用中比例最高的两种攻击手段,按照OWASP的项目排序,还有如下八种风险性较高的攻击方法:MaliciousFileExecution(恶意文件执行);InsecureDirectObjectReference(不安全的直接对象引用);Cross-SiteRequestForgery(跨站点的请求伪造);InformationLeakageandImproperErrorHandling(信息泄漏和不正确的错误处理);BrokenAuthentication&SessionManagement(损坏的认证和Session管理);InsecureCryptographicStorage(不安全的密码存储);InsecureCommunications(不安全的通信);FailuretoRestrictURLAccess(未能限制URL访问)
如何保障Web应用安全性如何构建安全的Web应用系统,这不仅仅是软件测试人员对应用系统进行安全检测通过后所能保证的。有一定安全保证的Web应用系统,应是从系统的需求分析和设计阶段开始着手考虑,系统的安全性需求应被纳入需求中,且应描述在较为明确的范围内;在系统的设计阶段,应准确的将安全性的需求转化为安全性保证的设计,从设计的角度考量不同的安全技术对于系统安全的保证所达到的预期层度,并不能因为单纯的加入登陆的身份验证功能而能保障系统对身份鉴别的安全性,系统的安全保证设计应从较为全面的角度入手,遵守安全设计原则。同时,到了开发阶段,对安全设计的实现也需要遵从安全性编码的规范,如SQL注入攻击,并非需求设计上没有加入身份验证功能,而是由于该功能的实现存在了攻击漏洞,这是因为在编码实现时没有遵从安全性编码的规范。在测试阶段,测试人员不仅仅要对安全的需求设计进行确认,确保安全保证模块的功能正确性,还应引入较成熟的软件安全性自动化扫描工具,对系统的实体进行全面的扫描,通过自动化工具大量成熟的测试策略以及自动生成的大量测试用例,去检测应用系统中的安全隐患。
Appscan概要扫描原理探测阶段在这个阶段,Appscan主要的工作是模仿一个用户对被访问的Web应用或Web服务站点进行探测访问,它这时主要工作是通过发送请求对站点内的链接与表单域进行访问或填写,以获取相应的站点信息。之后,Appscan分析器将会对自己发送的每一个请求后的响应做出判断,然后查找出任何可能潜在风险的地方,并针对这些可能会隐含风险的响应,确定将要自动生成的测试用例。对于探测过程中,所采用的测试策略可以选择默认的或自定义的,可采用不同的测试策略,测试策略库是Appscan内置的,它可以定义为你想要的组合,去检测你最想检测的可能存在的安全隐患。Appscan测试策略库是针对WASC和OWASP这两大安全组织所认为的安全风险定置的。并且,测试策略库就如同病毒库一般,时刻保持着最新的状态,可以通过对策略库的更新,来检测最近发现的Web漏洞。探测阶段完成后,这些高危区域是否真的隐含着安全缺陷或应做更好的改良,以及这些隐含的风险是处于什么层度的,是需要在测试执行完成后,才能最终得出决论。测试阶段测试阶段其实同探测阶段是处于同一个过程的,现在区分开来,主要是让我们更了解Appscan的共作流程。继上一个探测阶段后,Appscan已经分析出可能潜在安全风险的站点模型。也已经知道需要生成多少的测试用例,以便检测这些区域的安全隐患。这个时候的工作,主要就是生成这些已经计划好的测试用例。Appscan是通过测试策略库中对相应安全隐患的检测规则而生成对应的测试输入,这些足够全面而且复杂的测试输入,将会在扫描执行阶段对系统进行验证,通过这些全面合理的测试输入数据,我们就可以想象这是我们人工执行所难以达到的。通常对一个系统的测试,将会生成上万甚至几十万上百万的测试用例输入。扫描阶段在这个阶段,Appscan才是真正的工作起来,他将会把上个阶段的测试用例产生的服务请求陆续的发送出去,然后再检测分析服务的响应结果,从而判断该测试用例的输入,是否造成了安全隐患或安全问题,然后再通过测试用例生成的策略,找出该安全问题的描述,以及该问题的解决方案,同时还报告相关参数的请求发送以及响应结果。扫描阶段完成以后,Appscan中将统计相应的安全问题的检测结果,可以再进行检测结果的报告导出等,继而对检测出的问题进行逐个的分析,并可依据报告对问题进行修复或改良。典型工作流Appscan是一个交互式的工具,他测试的范围和层度取决于你对它进行的相应配置,因此,在使Appscan为我们工作之前,我们应先对它进行相应的配置,以满足我们不同范围和层度的需求。当然,你也可以通过默认的内置定义进行测试,那么Appscan将会按照它缺省的设置进行测试。通常情况下Appscan包含下面的操作流程。TemplateSelection(模板选择)你可以预先定义一套模板,或则选择系统默认的设置模板。预定义模板可以通过先选择默认模板后,完成向导后先暂时不执行测试,然后再对当前的扫描任务进行自定义,定义为你想要的模板样式,然后在ScanConfiguration中选择另存,保存为你想要的模板,之后再创建新的扫描时,就可以选择这个定义好的扫描模板。ApplicationorWebServiceScan(应用或Web服务扫描)你需要选择你测试的对象是Web应用程序还是Web服务。ScanConfiguration(扫描配置)在这进行扫描配置,你需要设置你要访问的应用或服务,然后设置登陆验证,之后将对你所需要采用的测试策略进行选择,可以使用默认的配置或加载修改适合你需要的配置。ScantheApplicationorService(扫描应用或服务)这里的工作包括了探测和测试阶段。Explore(探测):在探测阶段里,Appscan将会爬行访问你的站点,他会按照你制定的规则访问链接并记录访问后的响应,然后创建出包括URL、目录、文件等等的层次结构,而这些结构将展示在一个ApplicationTree(应用树)里。你可以通过自动或手动浏览的方式来完成这个探测过程,你还可以通过导入已经录制好的手工浏览脚本文件来实现你想要的探测方式。Test(测试):在测试阶段里,Appscan会依据有关的规则,访问探测阶段发现的相应URL、输入参数以及输出响应,这些测试用例都是采用先进的技术来发现这其中存在的安全隐患。Appscan自动生成不同的测试用例,这些测试用例主要包括以下两种类型InfrastructureTests(异常结构测试):这类测试主要是测试已知的安全隐患,主要包括商业化的工具、第三方产品插件、IE浏览器等中存在的安全性脆弱的部分。ApplicationTests(应用测试):这类测试将测试你系统中特有的应用,Appscan将会通过复杂的智能算法来学习当前系统中的应用逻辑,并生成这类有效的应用测试。这些测试用例可以通过更改测试策略中的组合以及配置来达成你想要的测试效果,这些测试策略都是Appscan根据业界与WASC和OWASP两大安全组织等声明的潜在安全攻击隐患而针对定置的检测策略。但如果你觉得不足够,你也可以进行自定义测试策略,用来实现你特有的想法或需求,假如你觉得这很有必要并且你会的话。ReviewResults(回归结果集):如果你觉得有需要,可以再次回归检测后的结果集,然后手工追加你仍要探测的链接,以及回归一下需要进行补救修复的任务。Appscan窗口介绍Appscan从界面上看,操作对象不是很多,并不复杂,主要由以下几个部分组成。菜单FileMenu(文件菜单):进行创建、打开和保存扫描。命令点击:New创建一个新的扫描.Open打开一个保存的扫描或则扫描模板.Save保存一个当前的扫描或则扫描模板.SaveAs另存一个当前的扫描或则扫描模板.ExportScanResults以XML或数据库文件形式保存并导出扫描结果.ImportExploreData加载一个导出的手工探测文件.PrintPreview打开一个预览窗口显示应用树或结果清单,这些将会在你执行打印命令时被打印.PageSetup为打印操作定义纸张尺寸、来源、方向和页边距.Print打印单前应用树和结果清单.Exit退出AppScan.filenames最近被使用的文件.(EditMenu)编辑菜单:提供定制扫描结果功能命令点击:Delete删除被选择的问题或修复任务.Severity对被选择的问题自定义严重层度.(仅在问题视图被激活.)Priority为修复任务更改优先级别.(仅仅在修复视图被激活).Find在当前扫描结果集查找strings,IDs,HTTPcode,等等.(操作依赖于一项在当前三个视图中都被选择的)(ViewMenu)视图菜单:让你决定主窗口的数据如何显示命令点击:SecurityIssues显示安全问题视图.RemediationTasks显示修复任务视图.ApplicationData显示应用数据视图(brokenlinks,visitedURLs,scriptparameters,interactiveURLs,cookies,andsoon).ArrangeBy为ResultList选择一种排序方法.ResizePanesAdjustthebordersbetweenthepanesofthemainwindow.ViewSelectorHide/showtheViewSelector.(Scanmenu)扫描菜单:用来控制扫描命令点击:StartScan/ContinueScan开始扫描/继续停止的扫描.StopScan停止当前的扫描.Re-Scan重新运行当前的扫描或扫描阶段(探测阶段或测试阶段).ManualExplore手工探测站点.ExploreWebServicesOpensWebServicesExplorer(PowerTool),withAppScanasproxy,soyoucanmanuallyexploretheapplication.ThisisfollowedautomaticallybytheExplorestage(usingthenewinformation).AftertheExplorethesystemstops,andyoucaneitherExplorefurthermanually,orcontinuetotheTeststage.ThisPowerToolcanalsoberunasastand-aloneprogram,tosendillegalrequestsandviewtheresults.TodothisopenWebServicesExplorerusingtheToolsMenu..ScanLogOpenthelogofallactionsperformedbyAppScanduringthecurrentscan.ScanConfigurationDefinethepropertiesofascan.123工具栏Thebuttonsofthetoolbarofferquickaccesstocommonfeaturesalsoavailablefromthemenus.新建打开保存打印扫描停止手工探测设置ButtonClickto:Startanewscan.Openasavedscanorscantemplate.Savethecurrentscan.PrinttheApplicationTreeandDetailPaneofthecurrentView(SecurityIssues,RemediationTasksorApplicationData).Nodeswillappearexpandedorcontractedastheyarecurrentlydisplayedonthescreen.Startascan;orContinueastoppedscan.Stopthecurrentscan.Manuallyexploreyoursite.ScanConfiguration:Definethepropertiesofthescan.Findanissue.EnabledwhentheIssuesviewisselected.DisplaytheScanLogduringorafterascan.(ListsallactionsperformedbyAppScanduringthescan.)Createareportwiththecurrentscanresults.Checkforupdates视图选择应用树结果清单详细窗格扫描面板状态条的
扫描设置扫描配置概要一个完整的扫描过程包括探测和测试一个应用,然后将结果呈现在窗体中。下面展示了一般情况下扫描流程的配置过程。管理扫描模板当你配置好一个扫描后,你可以将它另存外一个扫描模板,在这之后的测试中你都可以采用这个扫描模板来进行测试。你可以在进行测试前或则测试完成后来创建这个模板。同时,如果你有一个很有趣的结果需要让开发员或则QA都看看的话,有需要重新运行一回测试,你也可以另存这个模板然后再运行时加载后使用就可以省去大量的配置时间。创建和保存一个扫描模板的过程:通过ScanConfigurationWizard(扫描配置向导)来配置扫描;或则是通过ScanConfiguration(扫描配置)来实现;或则是打开一个你想要另存模板的现有扫描文件。在File
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 人教部编版六年级语文上册习作《多彩的活动》精美课件
- 2024年阿克苏旅客运输从业资格证考试题库
- 2024年许昌办理客运从业资格证理论考试题
- 2024年湖南客运资格证考试试题及答案
- 2024年芜湖客运模拟考试
- 2024年乌兰察布客运从业资格证考试答案
- 2024人工智能研发与许可合同
- 2024年城市公共交通服务合同详解
- 中学科技节活动方案范文
- 铬污染地下水治理现状
- CPK与CP详细讲解资料(课堂PPT)
- 光动力治疗在气道肿瘤中的临床应用课件
- 小学语文人教三年级上册 群文阅读《奇妙的中心句》
- 大数据和人工智能知识考试题库600题(含答案)
- 2023年上海机场集团有限公司校园招聘笔试题库及答案解析
- 镜头的角度和方位课件
- 污水处理常用药剂简介知识讲解课件
- 五年级上册英语课件-Unit 1《My future》第1课时牛津上海版(三起) (共28张PPT)
- 光交接箱施工规范方案
- 气温和降水学案
- 普及人民代表大会制度知识竞赛试题库(1000题和答案)
评论
0/150
提交评论