微服务应用安全分析

来源 :科学导报·学术 | 被引量 : 0次 | 上传用户:danble
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘  要:随着软件的不断发展,软件的开发技术也在不断地提高,如今的软件开发者所使用的开发技术不再是以前的那种单一整体架构了,更多使用的是分布式的微服务架构。使用微服务架构的方式来开发软件确实降低了软件开发过程中的复杂性,但同时也给软件带来了更多的安全隐患。本文针对微服务架构应用中存在的一些安全漏洞,简单介绍了一些开发者进行软件开发时需要考虑到的攻击方式和应对策略。
  关键词:微服务;安全漏洞;应对策略
  1 微服务的兴起
  什么是微服务?微服务就是将单个应用程序拆分成多个小的服务的集群,每个微服务都围绕具体业务进行实现,相互之间通过轻量级通信机制,有着极少的统一管理。每个微服务可以独立部署,使用不同的编程语言,使用不同的数据存储技术。[1,2]从上面这段话我们可以知道,微服务的思想就是使用一个个独立的微服务来构成整个系统。
  为什么我们不再趋向于使用以前的单一整体架构来开发?单体架构在系统规模较小时的效果确实很不错,但随着系统规模的不断扩大,出现的问题就越来越多,举一个简单的例子,技术是在不断发展的,可以说是日新月异,我们通常都会使用新的技术来更新项目,但在使用单体架构实现的项目中,各个功能模块之间是有着复杂的联系,你想用新的技术来更新项目非常困难,你必须更改每一个模块的代码,需要付出的时间和精力实在是太大了。而微服务架构恰好解决了这个问题,每个微服务都是独立的,想用什么技术就用什么技术,并且微服务的体积通常都是很小的,即使需要使用新的技术来更新也不会太过复杂。除此之外,微服务还解决了单体架构中软件扩展困难、维护困难、复杂性高等问题,这就是为什么微服务越来越受欢迎的原因。
  2 微服务存在的安全问题
  安全问题是每一个应用在开发过程中都不能忽视的问题,尽管微服务架构的使用解决了单体架构中的许多问题,但安全问题也会更加复杂。相比于单体架构,微服务暴露了更多的可攻击面。[3]一个基于微服务的应用中,存在的安全问题可分为两类,一类是传统的安全问题,一类是微服务架构中存在的安全问题。
  第一类安全问题并不是微服务架构独有的,它也存在于以前的单体架构中,比较常见的攻击有注入攻击、XSS攻击、文件上传等。[4]但这一类的安全问题现在人们已经提出了许多相对完善的防御方法了,对于开发者来说不足为虑。第二类安全问题才是使用微服务架构时需要重视的问题,这一类的安全问题有很多个方面,本文主要讲微服务系统中微服务之间访问这一方面的问题。
  3 安全漏洞的处理
  通过前面的分析,我们已经把系统中存在的安全漏洞都分析出来了,下一步,我们就应该“对症下药”了。在下文,我将根据现有的研究简述这两类安全问题产生的原因以及我们应该用什么样的方法来防御。
  3.1 传统的安全问题
  首先说一下注入攻击,注入攻击有分好几类,其中我们听得比较多的就是SQL注入。SQL注入主要是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,实现无帐号登录,甚至篡改数据库。SQL注入的本质实际上就是对提交数据检查的不充分,将提交的非法数据当成SQL语句来执行。对于这种攻击,我们常使用字符过滤和使用参数化查询(最有效的方法)来预防。
  XSS攻击,即跨站脚本攻击,它是一种最普遍的WEB安全漏洞,其原理是嵌入恶意代码到WEB页面里面,用户一旦访问这个页面就会触发这些恶意代码,这时攻击者的特殊目的就可以实现了,他们可以窃取你的cookie、会话等私人信息,严重的话会造成非常大的损失。抵御这种攻击最常用的方式就是通过添加拦截器过滤请求参数来阻止恶意代码的执行。
  文件上传与表单数据重复提交也是比较常见的安全问题,前者会导致一些恶意脚本文件被上传到系统中,而后者会增加服务器负载均衡,严重的时候还会造成服务器宕机。文件上传漏洞是开发者在开发过程中仅设置文件后缀检验产生的,一些恶意脚本文件可以通过修改文件后缀名等方式通过文件后缀检验进入到系统中,所以对付文件上传漏洞的最好方式就是同时设置文件后缀校验和文件格式检验。表单数据重复提交的原因有很多,可能是用户的误操作或者网络原因,也可能是攻击者刻意而为,但不管是什么样的可能性我们都要考虑到这个问题。常用的阻止表单重复提交方法有JavaScript屏蔽提交按钮、数据库添加唯一约束、利用session设置提交有效时间和AOP自定义切入,推荐使用后面两种方式。
  3.2 微服务之间的访问
  不管是什么样的系统,用户访问服务前为了保证系统的安全性都需要对用户进行身份认证,认证通过后才能授权给用户去访问这个服务。在单体架构中,所有的服务都是部署在同一个服务器上的,用户想访问另一个服务服务器可以通过本地方法调用的方式来实现,用户只需要进行一次身份验证。但在微服务架構里,各个微服务通常是部署在不同服务器上的,用户想访问多个微服务就要进行多次认证,非常复杂,而且还会暴露微服务的存在,让攻击者有更多的机会来攻击,安全性不够高。有没有什么方法可以让微服务之间的访问变得更安全和更简单呢?答案是肯定的,人们提出了4种解决方法,分别是单点登录(SSO)、分布式会话(Session)、客户端令牌(Token)和API网关(Gateway)。我们经常用到的解决方法就是微服务系统中使用API网关。
  API网关为微服务系统提供了统一入口,起到了客户端和后台微服务应用之间的桥接作用,是微服务架构系统的重要部分。[5]API网关有着很多功能,认证授权、访问控制、负载均衡、动态路由、过滤、日志、监控和熔断等功能都是网关需要做到的。使用API网关就意味着一切的请求都交由网关来处理,用户想访问多个微服务只需要在API网关进行一次身份验证,验证通过后网关会动态地把用户的请求转发给对应的微服务来处理,这就是网关的核心功能之一的动态路由。   API网关的使用可以有效地提高系统的安全性。系统使用API网关后暴露在外部的只有API网关,微服务则被隐藏在内部网络,攻击者能攻击到的地方只有暴露在外部的网关,大大减少了系统的可攻击面,即使网关存在安全漏洞也很容易去把它堵上,不需要像之前一样去修复每一个微服务中存在的安全漏洞。为了进一步提高系统安全性,我们还可以在整个系统中都使用https协议,这样做可以确保消息载体不被纂改,保证了消息在传输过程中的安全性。
  现在用于实现API网关的技术有很多,就我所知道的技术来说大体可分为三类,分别是反向代理、网络编程框架和API网关框架,而我们使用得最多的技术就是API网关框架。软件的开发是通常都有着很大的工作量,开发人员肯定是希望开发过程中的工作量越少越好了,这个时候我们就可以考虑框架的使用,API网关框架其实就是一个半成品的API网关,网关的基本功能框架已经给我们实现了,我们不需要从零开始去开发一个网关,API框架的使用可以减少软件开发中的工作量、降低开发成本、提高我们的开发效率。常见的API网关框架有Spring Cloud Gateway、Zuul、Traefik等,这些框架的学习难度、开发成本、协议、配置方式以及安全性等方面各有差异,我们需要根据我们的实际需求去选择使用的框架。
  4 结语
  不管是什么样的软件都存在着安全漏洞,这一点是每一个开发者都不可避免的事,我们要做到的就是分析可能存在的安全漏洞,结合一些已有的解决方法去思考我们的软件应该使用什么方法去防范,增强软件的安全性,提高攻击的难度,让攻击者们知难而退。
  参考文献
  [1]  Fowler M,Lewis J.Microservices.http://martinfowler.com/articles/microservices.html.2014-03-25.
  [2]  張晶,王琰洁,黄小锋.一种微服务框架的实现[J].计算机系统应用.2016-07-21.
  [3]  Microservices and Security[EB/OL].http://www.infoq.com/cn/news/2016/11/microservices-security.2016-11-15.
  [4]  刘杰,葛晓玢.关于Web安全漏洞分析及防范策略[J].信息系统工程.2017-5-10.
  [5]  李春阳,刘迪,崔蔚,李晓珍,李春岐.基于微服务架构的统一应用开发平台[J].计算机系统应用.2017-04-26.
  项目名称:广东省大学生科技创新培育专项资金资助项目(pdjh2020b0683)
其他文献
摘 要:在当下的发展中,随着社会对于人才的高度需求,对电气工程专业人才的培养提出了高度要求。这一专业作为技术要求较高的专业,在学习的过程中比较困难。同时,在进行学习的过程中,对自动化也提出了高度要求。学生在学习这一专业知识的过程中,应该重视对相关知识进行学习的过程中能够重视对实践能力的学习提升,从而能够满足发展需求。作为学生,在进行这一专业知识的学习中,应该重视自身理论知识的充分学习,同时能够明确
期刊
摘 要:在电力系统中配网建设非常重要,利用配电线路能够把电网和用户结合在一起。近些年来我国电力企业加大了配电线路的构建,为社会各行各业的发展提供了充足的电力保证。由于电网线路运行环境比较复杂,覆盖面积比较广泛,因此需要针对配网建设全过程加强施工管理,针对性解决现存问题,才能够提升电力企业供电质量,为社会发展提供稳定的电力支持。  关键词:电力工程;配网建设;全过程管理  引言  电力工程发展过程中
期刊
随着社会的快速发展,人们的生活质量不断提高,制造的生活垃圾也越来越多。由于环保意识的缺乏,很多生活垃圾直接或者间接被弃入江、河、湖泊之中,致使江、河、湖泊的水面上经常漂浮大量生活垃圾,部分区域如航运河道、发电站前池水污染特别严重,这些垃圾如果不及时清理,将会影响航道运行、发电机组正常运转。另一方面,由于生活污水和工业废水大量排放,河水严重营养富集,导致水面出现了大量的浮游藻类,如不及时清理,将严重
期刊
摘 要:在煤矿生产过程中,机电设备是一种非常重要的生产工具,其是否正常运行对于煤矿企业的经济效益有着直接关系。从煤矿机电设备实际使用过程中可以发现,由于各种原因会导致设备出现一些故障,如果相关工作人员没有对这些故障进行及时发现处理,会为煤矿生产带来非常大的影响,有时甚至会引起很大的安全事故,所以,对煤矿机电设备出现的故障进行深入研究分析是非常必要的,通过制定针对性的解决措施,不仅可以进一步提高煤矿
期刊
摘 要:本文分析了计算机网络实验中存在的问题,并介绍了计算机网络虚拟仿真实验教学平台的建设的特点和意义,通过对研究目标、内容和关键技术的分析,提出了计算机网络实验教学平台的分层设计思路,并描述了各层次的主要建设内容。  关键词:虚拟仿真;计算机网络;实验教学平台;虚拟化技术  一、研究背景  近年來,IT行业发展非常迅速,技术更新越来越快,企业对计算机类人才的要求也越来越高,特别是对于计算机网络专
期刊
摘 要:在现如今,伴随着信息化时代的到来,我国工业产业要在此背景之下获得极大的发展,特别是对于煤炭企业的开采过程当中皮带机控制系统来讲,更加需要结合现代信息技术,进而达成整体行业的价值保障,经济效益的有效提高,并且也可以在最大程度上促使煤炭行业的发展。皮带机在传输和生产的过程当中,普遍会出现短距离卸载和短距离装载的状况。因为传输效率较高,运输成本较低,所以大部分的煤炭企业都使用奇异传输货物。但是因
期刊
摘 要:在新形势下,信息化战争将成为未来战争的形式之一,空军飞行员作为主要战力之一,提升其媒介素质,具体包括信息获取能力、信息鉴别能力、网络学习能力、自我节制能力、媒体应变能力及安全防护能力等,能够有效提升空军战斗力。当前,空军院校应该树立正确的媒介素质培养观念,拓宽媒介素质的培养渠道,营造媒介素质的培养环境,切实落实对于空军飞行员媒介素质的培养工作。  关键词:空军飞行员;媒介素质;培养  近年
期刊
摘 要:随着经济全球化的不断发展,使国际竞争越发激烈,同时国内企业也迎来了极大的挑战和竞争,为了促进新形势下我国社会企业的可持续发展,应对企业经济管理进行创新。本文重点阐述了新形势下企业经济管理的重要性,并提出新形势下企业经济管理的创新措施。  关键词:新形势;企业经济管理;创新  引言:  在经济快速发展的形势下,给企业的经济发展带来了一定的挑战和困境,同时也给企业注入了新的活力,有些企业管理者
期刊
摘 要:在当下社会经济发展的过程中,计算机应用技术应用层面的渠道越来越多,计算机信息技术的应用方式和方法也越来越多。在目前,计算机管理应用越来越多地出现在企事业单位的管理过程中,文章通过对企事业经营活动的管理来探究计算机信息管理办公自动化的相关应用。  关键词:计算机信息管理;办公自动化;研究  引言  在相当一部分时间内,计算机应用技术的发展都极大促进着社会生产力的发展和科技的进步,计算机的应用
期刊
摘 要:在二战之后,国际上才有社区教育这个概念。现在的一些发达国家已经将社区教育和正规的学校教育实行了并存的教育方式。为了顺应国家发展趋势,我们也应该及时地参与到社区教育中来。在经过多年发展后,我国在教育管理规划中已经形成了一定的规模,教育水平也有了一定的提升。但是,在社区教育的方面规划不是很健全,也没有很好地利用社区教育的资源。  关键词:社区教育;建设;发展  正文  我国的教育,随着改革开放
期刊