版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
毕业设计外文资料翻译学院:专业班级:)学生姓名:学号:指导教师:外文出处:SQL注入攻击检测和预防调查附件:1.外文资料翻译译文;2.外文原文指导教师评语:该英文资料选择合理,与毕业设计论文相关度较高。专业术语、词汇翻译的准确度较高,体现了较强的专业英语应用水平。翻译工作认真细致,严格按照规定,翻译材料基本能与原文能保持一致,能正确表达出原文意思,细节处理得当,保持准确。翻译字、词数满足要求。翻译材料语句较通顺,符合中文的表达习惯。翻译工作能够严格按照规定,达到考核、提高学生英语应用水平的目的,圆满完成要求。签名:年月日
1.外文资料翻译译文SQL注入攻击检测和预防调查介绍随着万维网的发展,各组织开始变得更加复杂,组织者觉得管理他们的网站变得越来越复杂。但是随着因特网的广泛使用,一些用户为危害组织的网站工作,这些用户被称为网络犯罪或网站攻击者。SQL注入攻击是最威胁Web应用安全的方式之一,SQL注入是最严重的漏洞类型。SQLIA很容易学习和利用,因此这种攻击方法是很容易被攻击者利用。在检测系统中,防病毒和反恶意软件无法检测到这种类型的攻击,不同的安全层还有许多重大的和传统的安全系统。SQLIA高科技已变得更加普遍,更加雄心勃勃,简单易学实施,日益成熟,因此有必要在计算机安全领域找到这一问题的有效和可行的解决方案。SQL是一种文本关系数据库语言。有许多品种的SQL,然而,各种方言之间的差异是次要的。SQL函数拟合分为两类:•数据定义语言(DDL):用来创建表和定义访问权限;•数据操纵语言(DML):SQL命令,允许一个插入,更新,删除和检索数据库表中的数据。执行的SQL的典型单位是查询,这是语句通常返回一个结果的集合。SQL注入是一种通过利用非有效的SQL漏洞的优势通过防火墙来攻击数据库。它是由其中一个基于Web的应用的参数,以改变被传递到后端数据库的SQL语句被修改的方法。攻击者可以通过操纵数据输入,例如,通过添加单引号(')的参数插入一系列SQL语句形成一个查询。它能够使第二次查询,以与第一次一起执行。程序员常常用SQL链语句,使用用户提供的参数命令组合在一起,因此可以嵌入这些SQL命令的参数内,这就是所谓的动态SQL。必须指出的是,动态SQL必须使用在应用程序或SQL注入是不可能的。SQL注入被描述为一个“代码漏洞”,也就是严重的任何IIS漏洞。使用SQL注入对数据库的攻击可能出于三个主要目标:1)从不常涉及的数据所在数据库窃取数据。2)为了获得系统配置数据,允许攻击概要文件。这方面的一个例子就是获得所有的数据库密码哈希值,使得密码可以暴力破解。为了获得通过机器主机可以使用包的程序和3GL语言扩展,允许O/S访问来实现对数据库的访问到组织的主计算机。2.背景示例当攻击者攻击的时候会导致Web应用程序生成的SQL查询结果不是程序员想要的用户界面和功能。例如:Selectid,firstname,lastnamefromauthors;该语句将检索“ID”,“用的名字”和“姓”列从“作者”表,返回所有表中的行。“结果集合”将被限制到特定的“作者”使用“,其中“where”条款。Selectid,firstname,lastnamefromauthorswherefirstname=“James”andlastname=“Baker”;有关的工作和SQLIA的意见这里有SQLIA对数据库的四大类:1)SQL操作:操作是通过使用各种操作修改的过程,例如UNIONSQL语句的过程。另一种方法为使用SQL操作方法执行SQL注入是通过改变SQL语句的where子句,以获得不同的结果。2)代码注入:代码注入是插入新的SQL语句或数据库命令插入漏洞的SQL语句的过程。其中的代码注入攻击是追加一个SQLServer执行命令的弱势SQL语句。当支持每个数据库请求多个SQL语句这种类型的攻击是唯一可能的。3)功能调用注入:函数调用注入是调用到一个脆弱的SQL语句插入不同的数据库功能的过程。这些函数调用可以使操作系统调用或数据库中的数据进行操作。4)缓冲区溢出:缓冲区溢出是通过函数调用注入引起的。对于大多数商业和开源数据库,这些补丁。这种类型的攻击是可能的,当服务器打补丁。4.存在的问题SQL注入是不是一个新问题。它的发现日期是不确定的。然而,在过去的几年里,SQLIA一直在上升。应用已经被证明是,尽管所有的努力,以限制在形成返回到客户端脆弱。有公司已在努力提供一种解决这一问题开发的几个应用程序。有些被概括如下:•安全球采用先进的异常检测,事件关联,以及广泛的签名词典来保护Web应用程序和数据库。它还使用来自同一用户的错误响应,以确定攻击。•国防部安全对于Web应用程序,它可以提供关于如何检测SQL注入有用的技巧,一个开源的入侵检测引擎。已经开发国防部安全用于Java是一个Servlet2.3过滤器,代表一个浏览器和应用程序之间,监视请求和响应,因为它们是经过,以防止攻击介入适当的时候。•气闸将安全反向代理与入侵防御,内容过滤,用户认证强制执行,而应用级负载均衡和故障转移(Solutions的气密室被授予瑞科技奖2003)。•VIPER工具渗透测试据安杰洛Ciampa,科拉多亚伦Visaggio和的Massimiliano,他们已经提出了一个叫做Viper执行的Web应用程序渗透测试工具。该工具依赖于启发式的知识基础,指导的SQL查询的生成。此工具首先确定的超级链接结构,并从它的输入。•SQLr和切实保护机制SWBoyd和ADKeromytis曾建议切实保护机制,以防止SQL对Web服务器。这个工具使用SQL查询随机CGI应用程序,并发现和纠正查询中,投影到代码。•绿色SQL是一个免费的开源数据库防火墙位于Web服务器和数据库服务器之间,用于防止SQL注入攻击的数据库。该逻辑是基于SQL的评价命令,利用风险评分矩阵以及阻止已知的数据库管理命令(如DROP,CREATE,等)。重新端口上的时间戳,查询模式,原因受阻产生的(例如,真实表达,有“或”标记)。它有批准SQL模式的白名单。然而,目前只支持MySQL数据库。相比较而言,在该项目中的IDS可以使用具有任何关系数据库,而不仅仅是MySQL的。国内流离失所者有黑色和白色两种列表模式功能。•点后卫它是一个Web应用防火墙,提供了一个SQL注入的解决方案。点后卫是Apache和IISWeb服务器上运行的多平台解决方案。中央管理确保单点控制和报告所有服务器。有一个在Web应用程序前端应用层防火墙。它拥有一套安全规则,使它成为一个强大的解决方案。然而,成本过高。•代码扫描Labs的SQL注入检测产品它可以扫描所选代码的语法漏洞的Web应用程序源代码的能力。随后,它会生成一个“调试作风”的报告。速度取决于大型Web应用程序是和它的复杂性。该代码扫描软件不修复代码,但是,它仅仅指出了问题。该公司提供21天的免费试用,但通常需要每年订阅来维持。实际价格没有公布,一个必须联系销售代表来找出成本。一个单独的激活密钥都需要不同的编程语言和附加功能。•静态分析静态分析,提出了使用静态分析可以发现和防止SQLIA在编译时的方法。这种技术只专注于套套逻辑,但它不能检测到非法、背负式的存储过程SQL注入攻击。•动态分析动态分析是从静态分析不同。但是,静态分析来检测在编译时查询。因此,攻击者通过高级查询Web应用程序,它很容易受到攻击。但是,动态分析可以用来检测和注射查询,防止运行时自动运行。但这种方法做非法,工会,背负式,存储过程SQL注入攻击没有的问题。•组合的静态分析和动态分析合并的静态分析和动态分析方法的优点是能够检测的SQL,它相比其他技术更复杂。它可以不通过其他方法来解决该问题。AMNESIA是静态和动态分析相结合的基于模型的技术。5.设计注意事项当前数据库返回语句的结果到客户端。请求和结果由从客户机到数据库的链路进行再返回。该项目旨在通过使用过滤代理服务器的,这将被放置在所述两个通信装置,即Web应用程序或客户端和数据库之间,以消除SQL注入的可能性。这增加了保护层将允许可能的SQL注入尝试的过滤和提供数据库与防御的最后手段。项目的主要目标是:•分析SQL查询命令的结构。•建立一个分析器,将检查SQL语句允许的模式。•构建常见的SQL注入命令的列表。•创建一个代理服务器,它会提醒可能的SQL注入命令数据库管理员。•防止SQL注入攻击利用这个代理服务器的数据库。•证明SQL注入可以利用开发工作在代理服务器上的过滤器来防止。6.SQL签名过滤理想的解决方案是构建一个检查SQL注入所有的可能情况下的过滤器。这样做的问题是,所有可能的注射字符串的列表是不可能定义。这是建议在他们的论文中的“SQL注入签名规避”。然而,通过使用白名单,可以定义什么是允许的,从而防止无效签名。过滤应用程序应该尽量降低其靠近数据库的可能。理想情况下,数据库应该运行在同一台机器上的,但是这可能会影响性能,所以需要经过过滤代理服务器的滤波处理。如果滤波应用和数据库是在不同的机器上,会有安全风险,因为网络流量经过从一台机器到另一个。7.结论有许多脆弱的应用,其代码不会被审查或修补,这是常见的问题。没有COM-商用解决方案,以SQL注入。然而,有一些软件包已发布,声称能防止SQL。审计所有的源代码,并保护动态输入并非微不足道。所有应用程序的用户的权限在数据库本身。似乎通过检查日志文件,并依托最小特权原则不充分。被动检测SQL注入是不是阻止它的实时有用。使用包嗅探器为SQL注入预防,但是从数据包中清除恶意的SQL查询语句是不可能的。本文介绍了SQL和SQL注入,概述背景研究,讨论防止SQL注入的方法和目前市场上已存在的相关软件。鉴于SQL词汇存在有限的集合,似乎有可能开发出过滤器,以防止SQL注入。2.外文原文ASurveyofSQLInjectionAttackDetectionandPrevention1.IntroductionWiththedevelopmentofWorldWideWebtheorganizationsarebeginningtogetmoresophisticatedabouthowtheyemploytheirwebsite.Nowadays,thewebhasbecomeveryessentialneedofoursociety.ButwiththewidespreadusesofInternet,somemalicioususersbegintheworkinnegativedirectionwhichharmsthewebsiteoftheorganizationsandtheseusersarereferredascybercriminalorwebsiteattacker.SQLInjectionAttacks(SQLIA)areoneofthetopthreatsforwebapplicationsecurity,andSQLinjectionsareoneofthemostseriousvulnerabilitytypes.SQLIAareeasytolearnandexploitable,sothismethodofattackiseasilyusedbyattackers.Alsomanymajorandtraditionalsecuritysystemshavingdifferentsecuritylayerslikefirewall,encryption,in-trusiondetectionsystems,Antivirusandantimalwarearenotabletodetectthistypeofattack.SQLIAtech-niqueshavebecomemorecommon,moreambitious,easytolearn/implement,andincreasinglysophisticated,sothereisaneedtofindaneffectiveandfeasiblesolutionforthisprobleminthecomputersecuritycommunity.SQLisatextualrelationaldatabaselanguage.TherearemanyvarietiesofSQL;however,thedifferencesamongthevariousdialectsareminor.SQLfunctionsfitintotwocategories:Datadefinitionlanguage(DDL):usedtocreatetablesanddefineaccessrights.Datamanipulationlanguage(DML):SQLcommandsthatallowonetoinsert,update,delete,andretrievedatawithindatabasetables.ThetypicalunitofexecutionofSQListhequery,whichisacollectionofstatementsthattypicallyreturnasingleresult.SQLinjectionisawaytoattackadatabasethroughafirewallbytakingadvantageofnon-validatedSQLvulnerabilities.ItisamethodbywhichtheparametersofaWebbasedapplicationaremodifiedinordertochangetheSQLstatementsthatarepassedtoabackenddatabase.AnattackerisabletoinsertaseriesofSQLstatementsintoaquerybymanipulatingthedatainput,forexample,byaddingasinglequote(')totheparame-ters.Itispossibletocauseasecondquerytobeexecutedwiththefirst.ProgrammersoftenchainSQLcommandstogetherwithuser-providedparameters,andcanthereforeembedSQLcommandsinsidetheseparameters.ThisisknownasdynamicSQL.ItmustbenotedthatdynamicSQLmustbeusedintheapplicationorSQLinjectionisnotpossible.SQLinjectionhasbeendescribedasa“codehole”thatisasseriousasanyIIShole.AnattackagainstadatabaseusingSQLInjectioncouldbemotivatedbythreeprimaryobjectives:Tostealdatafromadatabasefromwhichthedatashouldnotnormallybeavailable.Toobtainsystemconfigurationdatathatwouldallowanattackprofiletobebuilt.Oneexampleofthiswouldobtainallofthedatabasepasswordhashessothatpasswordscanbebrute-forced.Togainaccesstoanorganization’shostcomputersviathemachinehostingthedatabasecanbedoneusingpackageproceduresand3GLlanguageextensionsthatallowO/Saccess.BackgroundExamplesSQLIAoccurswhenanattackercausesthewebapplicationtogenerateSQLqueriesthatarefunctionallydif-ferentfromwhattheuserinterfaceprogrammerintended.Forexample,Selectid,firstname,lastnamefromauthors;Thisstatementwillretrievethe“id”,“forename”and“surname”columnsfromthe“authors”table,returningallrowsinthetable.The“resultset”couldberestrictedtoaspecific“author”using“where”clause.Selectid,firstname,lastnamefromauthorswherefirstname=“James”andlastname=“Baker”;Thisisexecutedsincethefirstnameendswithdelimiterand—isgivenattheendoftheinput,allothercommandfollowingthe—isneglected.Theoutputofthiscommandisthedeletionofthetablenamed“au-thors”,whichisnottheintendedresultfromaserverdatabase.RelatedWorkandObservationsofSQLIATherearefourmaincategoriesofSQLIAagainstdatabases:SQLManipulation:manipulationisprocessofmodifyingtheSQLstatementsbyusingvariousoperationssuchasUNION.AnotherwayforimplementingSQLInjectionusingSQLManipulationmethodisbychangingthewhereclauseoftheSQLstatementtogetdifferentresults.CodeInjection:CodeinjectionisprocessofinsertingnewSQLstatementsordatabasecommandsintothevulnerableSQLstatement.OneofthecodeinjectionattacksistoappendaSQLServerEXECUTEcommandtothevulnerableSQLstatement.ThistypeofattackisonlypossiblewhenmultipleSQLstatementsperdatabaserequestaresupported.FunctionCallInjection:FunctioncallinjectionisprocessofinsertingvariousdatabasefunctioncallsintoavulnerableSQLstatement.Thesefunctioncallscouldbemakingoperatingsystemcallsormanipulatedatainthedatabase.BufferOverflows:Bufferoverflowiscausedbyusingfunctioncallinjection.Formostofthecommercialandopensourcedatabases,patchesareavailable.Thistypeofattackispossiblewhentheserverisun-patched.ExistingProductsSQLinjectionisnotanewproblem.Thedateofitsdiscoveryisuncertain.However,inthelastfewyears,SQLIAhavebeenontherise.Applicationshavestillproventobevulnerabledespitealleffortstolimitin-formationreturnedtotheclient.Thereareafewapplicationsthathavebeendevelopedbycompaniesinanefforttoprovideasolutiontothisproblem.Somehavebeenoutlinedbelow:•SecureSphereUsesadvancedanomalydetection,eventcorrelation,andabroadsetofsignaturedictionariestoprotectwebapplicationsanddatabases.Italsouseserrorresponsesfromthesameusertoidentifyanattack.•ModSecurityIsanopensourceintrusiondetectionengineforwebapplications,whichmayprovidehelpfultipsonhowtodetectSQLinjection.IthasdevelopedModSecurityforJavawhichisaServlet2.3filterthatstandsbetweenabrowserandtheapplication,monitorsrequestsandresponsesastheyarepassingby,andinterveneswhenap-propriateinordertopreventattacks.•AirlockCombinessecurereverseproxywithintrusionprevention,contentfiltering,userauthenticationenforcement,andapplication-levelloadbalancingandfailover(Seclutions’AirlockwasawardedtheSwissTechnologyAward2003).•VIPERtoolforpenetrationtestingAccordingtoAngeloCiampa,CorradoAaronVisaggioandMassimilianoDiPenta,theyhavesuggestedatoolcalledVipertoperformpenetrationtestingofWebapplications.ThistoolreliesonaknowledgebaseofheuristicsthatguidesthegenerationoftheSQLqueries.Thistoolfirstidentifiesthehyperlinkstructureanditsinputfrom.•SQLrandPracticalProtectionmechanismS.W.BoydandA.D.KeromytishassuggestedthepracticalprotectionmechanismforpreventingSQLIAagainstwebserver.ThistoolusesSQLrandomizedqueryCGIapplicationanddetectandcorrectthequeriesin-jectedintothecode.•GreenSQLIsafreeOpenSourcedatabasefirewallthatsitsbetweenthewebserverandthedatabaseserverandisusedtoprotectdatabasesfromSQLinjectionattacks.ThelogicisbasedonevaluationofSQLcommandsusingariskscoringmatrixaswellasblockingknowndatabaseadministrativecommands(e.g.,DROP,CREATE,etc.).Re-portsaregeneratedontimestamp,querypattern,reasonblocked(e.g.,trueexpression,has“or”token).IthasawhitelistofapprovedSQLpatterns.However,onlyMySQLdatabaseiscurrentlysupported.[19]Incomparison,theIDPSinthisprojectmaybeusedwithanyrelationaldatabase,notjustMySQL.TheIDPShasbothblackandwhitelistpatternfeatures.•DotDefenderItisawebapplicationfirewallthatoffersaSQL-Injectionsolution.DotDefenderisamulti-platformsolutionrunningonApacheandIISwebservers.Centralmanagementensuresasinglepointofcontrolandreportingforallservers.Thereisanapplicationlayerfirewallinfrontofwebapplications.Ithasasetofsecurityrulesthatenableittobeapowerfulsolution.However,thecostisprohibitive.•CodeScanLabs’SQL-InjectiondetectionproductIthasthecapabilitytoscanwebapplicationsourcecodethatyouselectedforcodesyntaxvulnerabilities.Itsubsequentlygeneratesa“debugstyle”report.Thespeeddependsonhowlargethewebapplicationisanditscomplexity.TheCodeScansoftwaredoesnotfixthecode,however;itonlypointsouttheissues.Thecompanyoffersa21-dayfreetrial,butnormallyitrequiresayearlysubscriptiontobemaintained.Theactualpriceisnotadvertisedandonemustcontactsalesrepresentativetofindoutthecost.Aseparateactivationkeyisrequiredfordifferentprogramminglanguagesandadditionalcapabilities.•StaticanalysisStaticanalysisproposedanapproachthatusesastaticanalysiscandetectandpreventSQLIAincompiletime.Thistechniqueonlyfocusontautologiesbutitcannotdetectillegal,union,piggyback,storedproceduresSQLinjectionsattacks.•DynamicanalysisDynamicanalysisisdifferentfromStaticanalysis.However,StaticAnalysistodetectthequeriesincompiledtime.Sotheattackerpassesadvancedqueriestowebapplicationanditiseasilyattacked.ButDynamicanalysiscanusedtodetectandinjectionqueriespreventinruntimewithautomatically.Butthismethoddonotad-dressestheissuesofillegal,union,piggyback,storedproceduresSQLinjectionsattacks.•CombinedstaticanalysisanddynamicanalysisTheadvantageofcombinedstaticanalysisanddynamicanalysismethodistodetectSQLIA.Itismorecom-plexcomparedtoothertechniques.Itcansolvetheproblemwhichcannotbesolvedbyothermethods.AMNESIAisamodel-basedtechniquethatcombinesthestaticanddynamicanalysis.DesignConsiderationsThecurrentdatabasesreturntheresultsofastatementtotheclient.Therequestandresultsaredonebyalinkfromtheclienttothedatabasebackagain.TheprojectaimstoeliminatethepossibilityofSQLinjectionbytheuseofafilteringproxyserver,whichwillbeplacedinbetweenthetwocommunicatingdevices,namelythewebapplicationorclientandthedatabase.ThisaddedlayerofprotectionwillallowforthefilteringofpossibleSQLinjectionattemptsandprovidethedatabasewithalastmeansofdefense.Themainprojectgoalsareto:•AnalyzethestructureofSQLquerycommands.•BuildaparserthatwillcheckallowablepatternsofSQLstatements.•ConstructalistofcommonSQLinjectioncommands.CreateaproxyserverthatwillalertthedatabaseadministratorofpossibleSQLinjectioncommands.•PreventaSQLinjectionattacktoadatabaseusingthisproxyserver.•ProvethatSQLinjectioncanbepreventedusingthefilterdevelopedtoworkontheproxyserver.6.SQLSignatureFilteringTheidealsolutionistobuildafilterthatchecksforallcasesofSQLinjectionpossible.Theproblemwiththisisthatalistofallpossibleinjectionstringsisnotpossibletodefine.Thisissuggestedbyintheirpaperon“SQLInjection
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 回收报废船合同范本
- 环境评估合同
- 二零二四年教育教学设备采购合同
- 一年级数学计算题专项练习1000题汇编
- 二零二四年度车库广告位租赁合同
- 2024年度林业科学研究试验合同
- 2024年度广告设计与广告牌制作合同
- 2024年度广告媒体与合作合同
- 二零二四年度彻砖生产线安装合同
- 二零二四年度货物供应与销售合同:明确货物名称、数量、质量、销售价格及支付方式
- 甲醇制烯烃催化剂SAPO-34分子筛的合成与改性共3篇
- 特殊作业“九步工作法”介绍
- 电能计量复习试题及答案
- 中央空调热水三联供系统方案设计案例
- 防范电信网络诈骗违法犯罪工作不力倒查问责办法
- 《斯坦福大学创业成长课》读书笔记思维导图
- 《珍爱生命》主题班会
- 软件许可使用协议英文版
- 高中数学选择性必修二 等差数列的性质及应用教学设计
- 架空输电线路施工质量检验及评定规程
- 第10讲军人心理疏导与调适
评论
0/150
提交评论