openstack云平台多租户网络隔离证据收集研究与分析

openstack云平台多租户网络隔离证据收集研究与分析

ID:20591365

大小:2.98 MB

页数:91页

时间:2018-10-14

上传者:文档小小白
openstack云平台多租户网络隔离证据收集研究与分析_第1页
openstack云平台多租户网络隔离证据收集研究与分析_第2页
openstack云平台多租户网络隔离证据收集研究与分析_第3页
openstack云平台多租户网络隔离证据收集研究与分析_第4页
openstack云平台多租户网络隔离证据收集研究与分析_第5页
资源描述:

《openstack云平台多租户网络隔离证据收集研究与分析》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

中文图书分类号:TP391密级:公开UDC:004学校代码:10005硕士学位论文MASTERALDISSERTATION论文题目:Openstack云平台多租户网络隔离证据收集研究与分析论文作者:王霞学科:计算机科学与技术指导教师:沈昌祥院士论文提交日期:2017年5月 UDC:004学校代码:10005中文图书分类号:TP391学号:S201407012密级:公开北京工业大学工学硕士学位论文题目:Openstack云平台多租户网络隔离证据收集研究与分析RESEARCHANDANALYSISOFFORENSIC英文题目:COLLECTIONOFMULTI-TENANTNETWORKISOLATIONINOPENSTACKCLOUDPLATFORM论文作者:王霞学科:计算机科学与技术研究方向:信息安全申请学位:工学硕士指导教师:沈昌祥院士所在单位:计算机学院答辩日期:2017年5月授予学位单位:北京工业大学 独创性声明本人声明所呈交的论文是我个人在导师指导下进行的研究工作及取得的研究成果。尽我所知,除了文中特别加以标注和致谢的地方外,论文中不包含其他人已经发表或撰写过的研究成果,也不包含为获得北京工业大学或其它教育机构的学位或证书而使用过的材料。与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明确的说明并表示了谢意。签名:王霞日期:2017年6月18日关于论文使用授权的说明本人完全了解北京工业大学有关保留、使用学位论文的规定,即:学校有权保留送交论文的复印件,允许论文被查阅和借阅;学校可以公布论文的全部或部分内容,可以采用影印、缩印或其他复制手段保存论文。(保密的论文在解密后应遵守此规定)签名:王霞日期:2017年6月18日导师签名:沈昌祥日期:2017年6月18日 摘要摘要近年来,云计算技术代表信息技术领域正向规模化、集约化和专业化道路发展,给信息技术领域带来了深刻变革。虚拟化作为云计算的核心技术,是云计算技术区别于传统计算模式的重要特征。在云计算环境下,用户将自己的业务系统部署到云平台上,要求云平台对租户进行隔离保护,而提供多租户隔离保护最重要的一方面就是提供给租户良好的网络隔离环境。目前针对云平台多租户网络隔离的问题,以Openstack为首的各大云平台多数利用网络虚拟化技术为租户构建单独的隔离网络;另一方面,区别于传统网络,虚拟网络设备分布在云平台的各个节点,使得原来的可信边界被打破,导致基于虚拟化的网络面临更多的安全风险,用户不能完全信任云平台提供的网络隔离环境。本文即针对用户和云平台之间的信任问题,基于Openstack云平台,研究如何收集云平台多租户网络隔离相关证据,给用户提供一份云平台多租户网络隔离报告,并基于此提出了一种云平台多租户网络隔离可信性证据收集分析方法。该方法首先针对Openstack云平台多租户网络隔离场景,分析在该场景下多租户网络隔离面临的种种安全风险,形成云平台多租户网络隔离证据采集体系。证据采集树将要采集的Openstack云平台多租户网络隔离证据分为两类:二层网络隔离证据和三层网络隔离证据。之后针对这两类证据分别创新性地提出了各自的证据收集方法:对二层网络隔离证据,提出基于拓扑重构的方法,从云平台相应物理节点底层重构实时运行云平台的多租户网络拓扑,以便判断多租户隔离网络是否从底层被恶意渗透;针对三层网络隔离证据,提出策略重构的方法,通过采集路由规则、防火墙策略和OVS流表等信息并且对这些复杂的离散信息进行联合分析,构建云平台多租户三层网络通信策略矩阵,便于租户发现其三层网络隔离是否有异常通信连接。另一方面,由于云平台多租户网络隔离证据采集具有分布式特点,因此该方法又设计了基于AMQP机制的分布式取证方法,能够有效地统一下发各类网络证据采集请求,并且收集Openstack各个节点发送回的各类证据数据。最后,本文对该方法设计原型系统进行实现,证明了该方法能够全面准确地采集Openstack云平台各类网络证据,直观有效地向用户表达云平台当前多租户网络隔离状态,为解决云平台和用户之间的信任问题提供了良好的思路,有利于云计算的进一步推进市场化步伐。关键词:云计算;多租户;网络虚拟化;隔离;证据收集-I- AbstractAbstractInrecentyears,cloud-computingtechnologyisinlarge-scale,intensiveandprofessionaldevelopment,whichhasbroughtprofoundchangestothefieldofinformationtechnology.Asthecoretechnologyofcloudcomputing,virtualizationisthemostimportantfeaturethatmakescloudcomputingdifferentfromtraditionalcomputingmodel.Inthecloud-computingenvironment,usersdeploytheirownbusinesssystemtothecloudplatform,requiringthecloudplatformforisolationprotectionatthesametime.Moreover,themostimportantaspectofprovidingmulti-tenantisolationprotectionistoprovidetenantswithagoodnetworkisolationenvironment.Atpresent,forthecloudplatformmulti-tenantnetworkisolationproblem,mostcloudplatforms,suchasOpenstack,areusingnetworkvirtualizationtechnologytobuildaseparateisolationnetworkfortenants.Ontheotherhand,differentfromthetraditionalnetwork,virtualnetworkequipmentsdistributeinvariousnodesofthecloudplatform,whichbreakstheoriginaltrustedboundaries,resultinginvirtualization-basednetworkfacingmoresecurityrisks.Therefore,userscannotfullytrustthenetworkisolationenvironmentofthecloudplatform.Aimingatprovidinguserswithacloudplatformmulti-tenantnetworkisolationreport,thispaperstudieshowtocollectforensicofthecloudplatformmulti-tenantnetworkisolationstatusbasedonOpenstack.Basedontheresearch,thispaperproposedacloudplatformmulti-tenantnetworkisolationcredibilityforensiccollectionanalysismethod.Themethodfirstanalyzessecurityrisksthatmulti-tenantnetworkisolationfacedundertheOpenstackmulti-tenantnetworkisolationscene,andformsthecloudsystemmulti-tenantnetworkisolationforensiccollectiontreesystem.Theforensiccollectiontreedividedthoseforensictobecollectedintotwocategories:layer-2networkisolationforensicandlayer-3networkisolationevidence.Inaddition,thepaperproposesdifferentcollectionmethodforeachtypeofforensic:forlayer-2networkisolationforensiccollection,thepaperproposesatopologyreconstructionmethodtoreconstructthemulti-tenantnetworktopologyoneachphysicalnodeofthecloudplatforminreal-time,thus,userscanjudgewhethertheirlayer-2networkhasbeenmaliciouslypenetratedfromthebottom.Forlayer-3networkisolationforensiccollection,thepaperproposesapolicy-matrixreconstructionmethod.Bycollectingroutingrules,firewallstrategyandOVSflowtableandanalyzingthecomplexdiscreteinformation,thispaperconstructsthecloudplatformmulti-tenantlayer-3networkcommunicationpolicy-matrix,whichisconvenientfortenantstofindoutwhethertheirlayer-3networkisolationhasabnormalcommunicationconnection.Inaddition,duetothedistributefeatureofthemulti-tenantnetworkisolationforensiccollection,themethodalso-III- 北京工业大学工学硕士学位论文designesadistributedforensiccollectionmethodbasedonAMQPmechanism,whichcaneffectivelyunifytheissuanceofvarioustypesofnetworkforensicacquisitionrequest,andsendbackallkindsofforensicdatafromdifferentOpenstackphysicalnodes.Finally,thispaperdesignsaprototypesystemtoimplementthemethod,whichprovesthatthemethodcanintuitivelycollectmostkindsofnetworkforensicofOpenstackcloudplatformandeffectivelyexpressthecurrentmulti-tenantnetworkisolationstatusofthecloudplatformtousers.Insummary,themethodprovidesagoodideaforsolvingthetrustproblembetweencloudplatformandusers,whichisbeneficialtothefurtherdevelopmentofcloudcomputing.Keywords:CloudComputing,Multi-Tenant,NetworkVirtualization,Isolation,ForensicCollection-IV- 目录目录摘要..........................................................................................................................IAbstract.....................................................................................................................III目录.........................................................................................................................V第1章绪论.............................................................................................................11.1研究背景...........................................................................................................11.2研究现状...........................................................................................................41.2.1云计算研究与发展...................................................................................41.2.2多租户网络隔离技术...............................................................................51.2.3证据收集模型研究.................................................................................111.3研究内容与意义.............................................................................................121.4论文结构.........................................................................................................13第2章Openstack云平台多租户网络隔离证据体系.........................................152.1Openstack多租户网络隔离场景....................................................................172.2多租户网络隔离风险模型.............................................................................182.3多租户网络隔离证据收集分析体系框架.....................................................222.4本章小结.........................................................................................................24第3章基于拓扑重构的二层网络隔离证据采集...............................................253.1多租户二层网络隔离子证据采集方法.........................................................263.1.1基于设备命令采集虚拟网桥信息.........................................................263.1.2基于Libvirt采集计算节点VM信息....................................................263.2多租户二层网络隔离证据拓扑重构算法.....................................................273.3多租户二层网络隔离证据验证评估算法.....................................................293.4实验分析.........................................................................................................313.5本章小结.........................................................................................................33第4章基于策略重构的三层网络隔离证据采集...............................................354.1多租户三层网络隔离子证据采集方法.........................................................364.1.1路由矩阵表.............................................................................................364.1.2OVS流表.................................................................................................374.1.3防火墙规则表.........................................................................................384.2多租户三层网络隔离证据策略重构算法.....................................................394.3多租户三层网络隔离证据验证评估算法.....................................................41-V- 北京工业大学工学硕士学位论文4.4实验分析.........................................................................................................424.5本章小结.........................................................................................................45第5章基于AMQP机制的分布式云取证方法.................................................475.1方法设计.........................................................................................................485.2实现流程.........................................................................................................505.3实验与分析.....................................................................................................525.4本章小结.........................................................................................................54第6章原型系统设计与实现...............................................................................556.1设计思想.........................................................................................................556.2实现方案.........................................................................................................556.2.1系统架构.................................................................................................556.2.2模块设计.................................................................................................576.2.3工作流程.................................................................................................616.2.4前端页面实现.........................................................................................626.3性能分析.........................................................................................................716.4本章小结.........................................................................................................73结论.......................................................................................................................75参考文献.............................................................................................................77攻读硕士学位期间发表的学术论文.......................................................................81致谢.......................................................................................................................83-VI- 第1章绪论第1章绪论1.1研究背景当今世界,互联网和信息技术发展日新月异。人们不再满足于单机提供的计算和服务,相反,越来越多的人们习惯在互联网中获取消息和服务,导致了整个互联网业务的快速增长。传统的计算模式已经很难满足这种迅速增长的数据处理需求。因此,对现有硬件资源的重新整合势在必行,而如何对高度整合的硬件资源进行有效利用,又必须探索一种新型的计算模式为用户提供高效的服务,云计算技术[1]应运而生。作为一门新型技术,云计算近年来得到迅速的发展,他不仅给用户带来了耳目一新的互联网服务体验,对于企业来讲,也颠覆了其传统的管理和运营思维。各大主流公有云[2],如AmazonAWS,GoogleCloud,MicrosftAzure等提供的云平台越来越多地被企业和个人用户采纳。云计算弹性灵活的服务方式[3]同样应用于云网络。在云计算环境下,网络以表重所示各项服务的方式对用户提供。如表1-1显示了当前主流云平台提供的各项网络服务。表1-1主流公有云提供的网络服务Table1-1MainstreampubliccloudnetworkservicesAmazonMicrosoftGoogleCloud阿里云腾讯云青云AWSAzure专线接入√√√√√√私有网络√√√√√√CDN√√√√√-负载均衡√√√√√√云域名√-√√√-其中,专线接入和私有网络[4]是云平台提供给云用户的基础网络功能,即用户将自己的业务系统部署到云平台上,要访问自己的业务系统,则需要通过互联网接入该云平台,以便获取云平台提供的各项服务;另一方面,云用户的业务系统应该拥有各自的私有网络,与其他云用户业务系统的网络隔离开;CDN,负载均衡和云域名则是更高级的网络服务,便于用户更方便的使用云平台,并且使自己部署在云平台上的业务系统具有良好的性能体验。为了整合这些网络服务,便于提供给用户的同时,也便于云平台管理员更好的分配、配置和管理云中的网络,各个云服务提供商均提出各自的云网络[5]解决方案。公有云的网络模型下通常包含三大类:接入网络、数据中心网络和管理网-1- 北京工业大学工学硕士学位论文络[6]。如表1-2所示即为公有云三种网络的比较。表1-2公有云三种网络比较Table1-2Comparisonofthreekindsofnetworkinpubliccloud-接入网络数据中心网络管理网络网络类型三层网络二层网络、三层网络三层网络二层VLAN隔离、三层网络隔离IP地址隔离管理VLAN路由隔离策略部署接入认证网络服务策略策略下发通过比较公有云三种网络,可以看出承载云用户业务系统的核心网络是数据中心网络。随着云平台用户规模的不断扩大,对于云平台数据中心网络的构建提出了新的挑战,其中首先要解决的一大挑战即是实现多租户网络通信的相互隔离。多租户作为云计算的一个重要特征,要求云平台数据中心网络为每个租户的业务系统创建独立的网络,并且保证一定的可靠性、独立性和安全性[7]。针对此问题,各大主流云平台纷纷开展相关研究工作,并提出了一系列的解决方案。目前大多数解决方案均基于网络虚拟化技术[8][9]构建公有云数据中心网络[10],并提供多租户网络隔离[11][12]保证。但是,随着公有云提供的各项服务被越来越多的用户享用,一系列安全问题随之浮现[13]。云计算服务多以宽带网络和Web方式提供,而且其弹性快速和按需服务特征要求云平台必须提供灵活的业务和服务,以及强大的网络和服务器资源。然而在用户享受云计算带来的灵活弹性服务的同时,滥用、恶意使用服务的情况屡见不鲜,利用云计算服务来破解密码、搭建僵尸网络等恶意使用案例也并不少见。例如,在2010年举办的Defcon大会上,DavidBryan就如何对AmazonCloud上的目标网站发起致命的拒绝服务攻击进行了公开演示,而这项攻击的成本仅仅需要不到10美元;另一方面,云计算“开放”特性使得不安全的接口API成为一类安全威胁,这是由于云计算服务商需要提供大量的网络接口和API提供给其业务伙伴,但是针对这些网络接口和API的安全性保护都还不够成熟,继而带来新的安全威胁;另外一类安全威胁则是来自内部恶意员工,根据VerizonBusiness最新数据泄漏调查报告结果显示,近50%的数据泄漏是由于恶意内部人员所为,云计算服务某种程度上的可以看作是外包业务,有权限接触用户数据处理的内部工作人员范围不断扩大,这就增加了恶意“内部员工”渗透进租户网络,嗅探和窃取租户信息的可能;最后则是由共享技术带来的安全威胁,底层资源池的虚拟化是云计算达到资源共享的根本,但另一方面,虚拟化技术实现资源共享的同时也带来了诸多的安全问题,近年来主流的虚拟层软件就屡次发现各种安全漏洞。随着这些风险威胁不断加重,直接或间接的影响云平台多租户网络隔离环境-2- 第1章绪论的可信性,云计算环境的这些安全问题也成为用户关注的焦点。“做不到良好的多租户网络隔离,系统不上云”已成为云用户普遍认识,多租户网络隔离问题现已成为制约云计算进一步市场化的首要因素。而云服务提供商也意识到,只有正确的识别和处理这些安全风险,云计算才能在商业化的道路上越走越远。目前各大云服务提供商,如Amazon,IBM,Microsft,Google等已经开始对云计算网络安全进行了研究,以威胁建模、受攻击面的详细分析为基础,进行一体化的安全架构设计,提出了诸如网络异常流量分析[14]、DNS域名防护[15]以及网络入侵检测[16]等方法,实现对威胁的全面消除,如Cisco公司提出的《下一代网络:现在和将来的安全性》白皮书就分析了现有的云计算网络安全问题,提出了自己的解决方案;随之VMWare、Intel和EMC三家公司又提出一个新的概念,即将云计算“安全作为服务”,提出了一套“可信云体系架构[17]”,并于2010年3月初于旧金山召开的RSA安全大会上通过一个概念证明系统证明了其可行性,该架构中就有关于可信云网络的安全连接解决方案。另一方面,各种国际标准组织对于云计算中的网络安全问题方面的规范也在不断完善,如美国国家标准技术研究院发布的《云计算安全与隐私准则》草案,可信计算组织TCG提出的符合云计算技术思想和规划的“可信多用户结构使用案例”,云安全联盟CSA于在第三届CSACongress大会上发布的《云安全指南v3.0》等。而目前的这些解决方案,虽然在某种程度上解决了云计算面临的一些安全问题,但仍无法保整个云平台的网络密不透风,攻击与防护本身即是“道高一尺魔高一丈”;另一方面,由于这些安全问题的发生,隐形之中破坏了租户之间的网络隔离性,使云用户对云平台提供的多租户网络隔离环境产生了新的考量,目前各大云服务提供商提供的云网络安全解决方案,更多的是从云平台管理的角度,对于云用户来讲,是一种“黑盒”,不能直观地回答云用户的关于安全问题的咨询,而云安全联盟CSA首要宗旨之一就是“提供用户和供应商对云计算必要的安全需求和保证证书的同样认识水平”。这种产生在用户和公有云服务提供商之间的多租户网络隔离环境安全信任问题,亟需一种全面的证据收集和评估体系,形成一份直观友好的网络状态报告提供给云用户,以便用户对当前云平台多租户网络隔离安全状态做出可信性判断,同时也便于云平台管理员更好地发现和解决问题。-3- 北京工业大学工学硕士学位论文1.2研究现状1.2.1云计算研究与发展“云计算”这一概念最早由南加州大学教授RamnathK.Chellappa于1997年提出[18],但当时对其并没有一个明确的定义。对于“云计算是什么?”的问题,业界曾有各种不同的定义,直到美国国家标准技术研究院(NIST)的云计算规范推出之后,其对于“云计算”的定义才受到了业内的广泛认可。NIST定义“云计算是一种模型,它可以实现随时随地,便捷地,随需应变地从可配置计算资源共享池中获取所需的资源(例如,网络、服务器、存储、应用、及服务),资源能够快速供应并释放,使管理资源的工作量和与服务提供商的交互减小到最低限度。”NIST同时定义了云计算的三个服务模型(1)Software-as-a-Service(SaaS)在服务提供商的云计算基础架构之上,通过互联网为用户提供软件和应用程序服务。这些软件由云服务提供商部署维护,用户通过租赁的方式来使用这些软件,而非购买。(2)Platform-as-a-Service(PaaS)在服务商提供的云计算基础架构之上,把计算环境和开发环境等平台作为服务提供给云用户,如Hadoop相关的大数据中间件就是公有云厂商大多数都在提供的一类PaaS层服务,用户通过互联网可以申请一台或多台部署了操作系统和开发平台的VM,在此之上构建自己的应用程序,但是不能修改已经配置好的操作系统和运行环境。(3)Infrastructure-as-a-Service(IaaS)云服务提供商提供的最基础的基础的计算、存储和网络等资源服务。用户可以通过互联网申请一台VM,创建自己的私有网络,同时能够对处理器,网络和存储资源进行调配,部署自己的操作系统和应用程序。云服务提供商只对这些底层资源进行管理,但不会干涉用户对自己申请资源的使用。云计算自提出以来,经历了日新月异的发展,业界对于云计算的研究分分开展。2005年,Amazon公司推出AmazonWebService云计算服务[19],用户可以通过程序,访问基础的计算设施的服务,紧接着2006年,Amazon又推出了弹性计算云EC2和在线存储服务S3等云服务。Amazon之后,Google、IBM、雅虎、Intel、AMD及惠普等各大公司开始蜂拥进入云计算领域:2007年年底,IBM推出“蓝云”(BlueCloud),旨在带给用户即刻使用的云计算服务[20];2008年10-4- 第1章绪论月,微软公司发布WindowsAzurePlatform公共云计算平台,开始了微软公司对云计算的探索之路,2010年1月,微软正式推出MicrosoftAzure云平台服务[21],实现了用户通过该平台可以快速生成、部署和管理应用程序的功能;2009年3月,思科公司发布统一计算系统(UnifiedComputingSystem,UCS)[22],该系统集计算、网络和存储功于一体,5月又正式推出云计算服务平台,标志着思科正式迈入云计算领域,随之同年11月,思科与EMC、VMware共同建立虚拟计算环境联盟,旨在让用户能够快速地提高业务敏捷性。2011年2月,思科系统正式加入OpenStack[23],该平台由美国航空航天局(NationalAeronauticsandSpaceAdministration,NASA)、托管服务提供商RackspaceHosting、Intel、AMD和DELL共同研发,与微软等公司一道同样成为Openstack云平台的使用者。国内云计算研究相对国外起步较晚,但发展迅速,2009年1月,阿里巴巴旗下子公司阿里软件在江苏南京建立国内首个“电子商务云计算中心”,逐渐开始形成规模能够与Google匹敌的“商业云”体系;2009年7月,“中华企业云计算平台”推出,标志着国内首个企业云计算平台的诞生;2009年11月,中国移动启动“大云”(BigCloud)计划,并于2010年5月发布了BigCloud1.0版本,其产品主要包括五部分:弹性计算系统、云存储系统、分布式海量数据仓库、并行数据挖掘工具和MapReduce并行计算执行环境;2010年4月,Intel公司在Intel信息技术峰会(IntelDeveloperForum,IDF)上提出互联计算概念,让用户从传统的PC(客户端)、服务器(云计算)到移动、车载、便携设备等所有的个性化互联设备,获得连贯一致且熟悉的个性化应用体验,旨在利用Intelx86架构统一嵌入式、物联网和云计算领域。云计算发展到现在,已经进入市场化阶段。根据最近市场机构Gartner的一份研究报告结果显示,截至2015年末,全球云计算市场规模已达1750亿美元,预计2016年将达2030亿美元,到2019年有望突破3000亿美元,达到3120亿美元。大量的市场需求是云计算产业保持高速增长的根本推动力,未来五年云计算产业的年复合增长率有望超过30%,仍将是极具前景的创投热点。1.2.2多租户网络隔离技术针对当前云平台多租户网络隔离问题,业内展开了许多研究[24]。目前,以Openstack[23]为代表的主流云平台利用网络虚拟化技术实现多租户的网络隔离。对于网络虚拟化的概念通常可以从两个方面理解:一是网络连接虚拟化,二是网络功能虚拟化,前者通常关注的是如何在物理网络中区不同的业务和使用人群;后者的概念主要是由NFV[25]组织新近提出,旨在实现硬件网络设备软件化(或者说将物理网络设备虚拟化)。-5- 北京工业大学工学硕士学位论文对于网络连接虚拟化的探索,最早起源于VLAN(VirtualLAN)[26]技术。顾名思义,VLAN(802.1Q)是一个虚拟局域网技术,能够将一个局域网的广播域隔离为多个广播域,常被用来实现一个企业局域网内的不同部门间的网络隔离,如图1-1所示是802.1Q中VLAN的帧格式。802.1Q长度/目的地址源地址用户数据FCSTag类型TypePRICFIVID2Bytes3bits1bits12bits图1-1802.1QVLAN帧格式Figure1-1802.1QVLANframeformatTYPE值是一个标签协议表示符,通常为0x8100,表示这是一个802.1Q的帧;PRI是优先级字段,当交换机发生流量阻塞时,优先发送该值较高的帧,CFI表示规范格式,以太网中CFI=0,表示是规范格式,CFI=1表示为非规范格式;VID代表12位的VLANid,最大数量能达到4096个,也就是说一个局域网中最多有4096个VLAN,但由于不同的交换机对VLAN的规划不同,用户实际能用的VLAN数目通常要比4096少很多。网络功能的虚拟化,又称NFV(NetworkFunctionVirtualization)[27],是最近才提出的新技术,主要是指通过使用x86等通用性硬件及虚拟化技术实现多功能软件功能处理业务。NFV主要有两大优势,一是降低昂贵的网络设备成本,通过软硬件解耦及功能抽象使网络设备功能不再依赖于专用硬件,二是资源共享,弹性灵活,能够实现新业务的快速开发,并且根据需求进行自动部署、弹性伸缩、故障隔离和自愈等。NFV最典型的实现是OpenVSwitch(OVS)[28],又叫做“开放虚拟交换机”,作为一门关键网络技术被云计算广泛采纳。OVS运行在虚拟化平台上,通常作用是为物理宿主机上的VM提供二层网络接入,跟云中的其它物理交换机一样工作在Layer2层;OVS的优势再用可以通过可编程扩展,可以实现大规模网络的自动化配置、管理和维护;OVS同时支持多种标准管理接口和协议,如netFlow,sFlow,SPAN,RSPAN,CLI,LACP,802.1ag等。而OVS被广泛应用与云网络的原因,就是因为其本身特性可以很好的解决几项关键的云计算网络需求:(1)网络隔离OVS通过在物理机上虚拟出一个软件交换机,为该物理机上的所有VM提-6- 第1章绪论供二层网络接入,同时通过VLAN划分等技术规划每个VM所属的逻辑网段,实现了云中的二层网络隔离。(2)QoS配置OVS支持在其各个端口上为每个VM配置QoS,实现同物理交换机一样的trafficshaping和trafficqueuing功能。(3)流量监控OVS利用sFlow、netFlow等技术对数据包进行采样和记录,再通过相应的分析处理,实现包括网络监控、应用软件监控、用户监控、网络规划、会计、结算、安全分析以及网络流量数据库分析和挖掘在内的各项功能。另一方面,“多租户”作为云计算的另一个重要特征,要求云网络能够做到良好的网络隔离。而传统二层网络中,VLAN最多支持的网络划分数量最大为4096,已经不能满足业务的飞速发展。因此,新型多租户网络隔离技术需要跳出传统的VLAN思维,以便支撑起更多用户的需求。公有云多租户网络隔离解决方案也经历了从最初的不完善到的逐渐成熟的过程。以Openstack为例,最初的网络版本为Nova-network,其核心是借助传统Linux网桥和Iptables[29]实现租户之间的网络隔离,然而这种方式很快暴露出很多问题,基于linux网桥虽然可以满足VM的网络桥接,但管理配置复杂,而iptables要达到良好的租户网络隔离需要租户自己配置良好的隔离策略,一旦不小心设置全开策略,则VM很容易被其他租户网络中的VM用nmap等工具扫描到,继而容易被恶意攻击者利用。1.2.2.1多租户二层网络隔离技术鉴于传统网桥和Iptables实现云平台多租户网络隔离方案存在的种种弊端,公有云数据中心网络开始结合OVS网络虚拟化技术和VLAN划分实现多租户二层网络隔离,但由于VLAN可用的数量在4K左右,远远不能满足大量公有云的部署需求。针对这些问题,业界解决云计算多租户网络隔离问题的新技术是采用Overlay网络[30],Overlay网络架构设计思想是在传统物理网络基础之上构建逻辑二层网络,这种思想提供了网络支持云业务发展的理想选择,是目前实现公有云多租户二层网络隔离的最佳解决方式。Overlay网络的实现原理是通过设计新的数据报文格式,将二层报文封装在IP报文之上,这样从原理上来说只要网络支持IP路由可达就可以部署Overlay网络。而IP路由网络本身技术已经非常成熟,且对于网络结构并无其他特殊要求,这就使得Overlay网络技术具有较好的兼容性。目前Overlay网络实现的典型三大技术方案如下:-7- 北京工业大学工学硕士学位论文(1)VXLANVXLAN(VirtualExtensibleLAN)[31]虚拟可扩展局域网,主要是由Cisco提出的一种Overlay网络技术,其主要思想是将以太网报文封装成UDP报文进行隧道传输,如图1-2所示是VXLAN报文格式。图1-2VXLAN报文格式Figure1-2VXLANpacketformat由图可以看出,VXLAN报文基于原始二层报文再封装的一个新报文。新报文和传统以太网报文并无太大区别,同样拥有源目mac地址和源目ip地址。其实现原理是vtep(在VXLAN网络中把可以封装和解封装VXLAN报文的设备称为vtep,节点实现上可以是虚拟交换机也可以是物理交换机)节点在收到原始二层报文后会将报文继续封装上VXLAN包头,封装上新VXLAN包头的报文到达目标vtep节点后会进行VXLAN包头解封装操作,获取原始的二层报文发送给目的VM。VXLAN的包头有一个长达24bit的ID字段,这意味着可以建立的虚拟网段多达1600万个,远远超过传统VLAN。(2)NVGRENVGRE(NetworkVirtualizationusingGenericRoutingEncapsulation)[32]主要是由Microsoft等公司提出,与VXLAN不同的是,NVGRE没有采用标准传输协议(TCP/UDP),而采用的是RFC2784和RFC2890定义的通用路由封装协议(GRE),实现将以太网报文封装在GRE内进行隧道传输。如图所示为NVGRE报文格式。图1-3NVGRE报文格式Figure1-3NVGREpacketformatNVGRE使用其报文头部的低24位作为租户网络标识符(TNI),类似VXLAN-8- 第1章绪论ID字段,用于虚拟网络的划分,最大规划的虚拟网络数量同VXLAN一样,可达1600万个。NVGRE使用其协议扩展字段flowID进行流量负载均衡,这就要求物理网络能够识别GRE隧道的扩展信息,这也是NVGRE与VXLAN的主要区别所在。(3)STTSTT(StatelessTransportTunneling)[32],顾名思义是“无状态传输隧道协议”,其实现方式通过将以太网报文封装成TCP报文进行隧道传输,STT采用64位的隔离标识,STT在实现上将原始以太网数据报头中的MAC、IP、端口号等值进行哈希运算,将得到的HASH值作为无状态TCP的源端口号,这就使STT充分利用了承载网络路由的均衡性;而其他网络流量,如未知目的、广播、组播等流量均被封装为组播数据包形式转发。综上,三种Overlay网络技术均是将以太网报文封装到相应隧道层面,因而选择和构造隧道的不同也成了三种Overlay网络技术的主要差异性所在。比较三种Overlay网络技术,VXLAN技术利用了通用的UDP协议进行传输,成熟度极高,相比其他两种技术在云计算适用上有更明显的优势,主要原因在于:L2-L4层链路HASH能力强,且不需要像NVGRE技术一样需要对现有网络设备进行改造,以支持网络数据包传输。使用标准的UDP协议且不像STT需要修改传输层TCP协议。目前多数商用网络芯片都提供支持,具有很高的业界支持度。1.2.2.2多租户三层网络隔离技术上文介绍了公有云多租户二层网络隔离采用的新技术Overlay网络,是将二层网络重叠在三层之上,并利用网络虚拟化技术将二层抽象出来。而云平台多租户网络之间的VM仅仅得到二层隔离是不够的,租户网络VM之间以及VM和外网之间都有相互访问需求,在云平台中,习惯把跨虚拟网络VM之间的流量称作为东西流量,虚拟网络VM和外部网络之间的数据交换称为南北流量。对于东西流量和南北流量,显然要通过三层网络设备,如路由器等进行控制。目前,公有云数据中心三层网络也尝试利用网络虚拟化技术,将三层网络抽象出来。目前主流的三层网络虚拟化技术是基于NetworkNameSpace[33]的网络虚拟化技术,属于网络功能虚拟化技术的一种。这种NetworkNamespace技术属于LinuxNamespace技术其中的一类。LinuxNameSpace是Linux提供的一种OS-levelvirtualization的方法。目前在Linux系统上实现OS-levelvirtualization的系统有LinuxVServer、OpenVZ、LXCLinuxContainer、Virtuozzo等,即使相同的进程在不同NameSpace中也彼此间互不干-9- 北京工业大学工学硕士学位论文扰,因而LinuxNameSpace提供了PID、IPC、UTS、Mount、Network等系统资源的完全隔离机制。其技术架构如图1-4所示。图1-4LinuxNamespace技术架构Figure1-4LinuxNamespacetechnologyarchitecture每一个NetworkNameSpace都可以被看作一个完全独立的网络协议栈,各自拥有自己的网络设备接口、IPv4和IPv6协议栈、路由表以及防火墙规则等等。另一方面,每个网络命名空间也可以看作分配给一个或多个进程的私有网络资源集合,其主要特性集中在虚拟化和隔离。在公有云数据中心三层网络中,提出VirtualRoutingandForwarding(VRF)[34]的概念,其原理就是基于NetworkNamespace技术,VRF的一个典型实现就是OpenstackNeutron[35]网络组件的L3Agent,在Neutron中创建一个虚拟网络时,Neutron都会创建一个NetworkNameSpace。每个NetworkNameSpace拥有其对应的路由表(routingtable)和其对应的iptables,NetworkNameSpace上有两个网络接口,一个是loop设备,一个用于连接OVS上的bridge-int,bridge-int另一端连接租户VM,这样就打通了NetworkNameSpace和VM之间的网络连接。当一个VM被创建时,会创建相应的LinuxBridge并连接VM相应的网络端口,同时LinuxBridge另一端连接bridge-int,这样就打通了NetworkNamespace和VM之间的网络连接。而云平台租户VM间的三层路由通信就转换成各个NetworkNamespace之间的通信,由于NameSpace是相互独立的,想打通这两个网络,就需要另外一个NetworkNameSpace—RouterNetworkNameSpace,RouterNetworkNameSpace可以拥有2个以上的网络接口。在传统的网络环境中,如果要和一个网络通信,首先要和其网关相通。同理,OpenstackNeutron组件将两个需要相互连通的网络加入到RouterNetworkNameSpace中,这时RouterNetworkNameSpace中就会出现两个网络接口连接到OVSbridge-int上,并且这两个网络接口的IP地址就是两个网络的网关,从而实现了公有云数据中心租户VM之间的三层网络通信。-10- 第1章绪论目前Openstack最新版本网络组件Neutron利用OpenvSwitch(OVS)结合VLAN、VXLAN和GRE等机制实现多租户的二层网络隔离,利用Iptables防火墙和NetworkNameSpace机制实现多租户三层网络隔离。1.2.3证据收集模型研究对证据模型的研究,通常是指证明软件可信的证据收集方法。软件可信是指软件的行为和运行结果符合用户预期,为了判断软件的行为是否符合用户的预期,施光源[36]等人提出了一种基于可信属性的证据模型建立方法,该方法首先对软件可信属性进行分析,依据软件的可信属性来建立可信证据模型,之后基于可信证据模型进行相关证据信息的采集,并且利用该模型合理组织证据信息,同时通过建立用户预期模型来实现用户主观期望行为预期与客观证据的结合。蔡斯博[37]等人提出了一种支持软件资源可信评估的框架,该框架是一个自底向上的层次结构,上层软件资源的可信评估及应用基于底层证据模型的定制和证据实例的采集。利用该软件资源可信评估框架产生的评估结果来支撑可信的相关应用,保障软件资源库向复用者提供可信的软件资源。然而上述证据收集模型只针对单点系统相关证据文件的获取,层次单一,不适用于分布式的云取证[46]。目前针对分布式云取证也有许多研究展开,Openstack本身提供的计量组件Ceilometer[38],可以有效的采集云平台网络数据,进行流量分析,发现异常流量,但不能直接定位异常问题;文献[39]提出FIREMAN,一种基于防火墙策略进行建模和分析的方法,该方法能够发现不合理、违规以及不一致的策略,且适用于云计算分布式场景的防火墙;文献[40]提出将云平台提供的虚拟网络设备视为租户可验证的外包中间件,并设计基于模式匹配的方法保证这些外包中间件功能正确执行,进行入侵检测,web防火墙过滤和流量分类;文献[41]提出了一种基于Openstack平台网络状态一致性检验的方法,利用状态图,决策树等方式对Openstack平台二层,三层和四层的网络状态进行分析,能够分别检测网络各层存在的状态异常的情况,但该方法只适用于引入SDN的Openstack云平台。但上述针对分布式云平台相关的网络证据研究仍多集中在单一方面,并且采集的证据大多数是用户不友好的,难以理解的,缺乏对于云平台当前多租户网络状态的直观表达,使租户不能完全信任云平台提供的网络隔离环境。在多租户的云平台环境中,租户关心的网络隔离安全问题主要集中在:在其自身的租户拓扑内,有无其他VM渗透进来;其私有网络内的数据流是否有不合理的流经路径;网络拓扑内的VM是否有不合理的访问权限;如果该租户为企业云租户,涉及不同部门各自的私有网段,则各个私有网段之间的路由策略是否合理,直接关系到-11- 北京工业大学工学硕士学位论文整个企业网络的隔离布局。现有的对网络隔离状态验证的研究多集中在对某一个网络层次或者一个点进行证据采集分析,发现异常,而实际上云平台多租户网络隔离是靠层次之间相互依赖,网络设备相互协作实现,另一方面,现有的研究多从云平台管理员的角度出发,没有提供给云用户一份关于当前云平台多租户网络隔离状态的验证报告。因而本文在上述研究的基础上,提出了一种基于Openstack云平台的多租户网络隔离证据收集分析方法,全面采集实时运行的Openstack云平台下的多租户网络隔离各点证据,对各类证据设计各自的证据收集分析方法,形成一份完整的云平台多租户网络隔离状态报告,提供给云用户,便于用户对云平台提供的多租户网络隔离环境状态做出可信性判断。1.3研究内容与意义本课题基于云用户和云平台之间关于多租户网络隔离安全产生的信任问题,提出了一种基于Openstack云平台的多租户网络隔离可信性证据收集分析方法。该方法基于云平台多租户网络隔离面临的安全风险,采集关于多租户网络隔离状态的各项证据,对复杂且离散的证据关联建模,再通过一系列的分析,最终形成一份直观表达当前云平台多租户网络隔离状态的可信性报告。本文的主要研究内容集中在:(1)云平台多租户网络隔离证据采集体系云平台多租户网络隔离证据采集体系是根据Openstack云平台多租户网络隔离安全威胁模型,整理出的云平台多租户网络隔离可信性证据的各个采样点,这些证据通常包括多租户二层网络隔离证据、三层网络隔离证据;每一类证据又包含要采集的各项子证据。(2)云平台多租户网络隔离证据收集分析方法从云平台实时运行环境中采集的证据,多数是Hypervisor[42]和虚拟网络设备产生的各项数据,这些数据大多数只有专业的开发维护人员才能看懂,是用户不友好的,因而有必要对采集的数据进行进一步的抽象建模,关联和评估分析,形成用户友好的云平台多租户网络隔离状态报告。针对该项需求,本文提出了基于拓扑重构的多租户二层网络隔离证据分析评估方法,直观重构实时运行中的云平台多租户二层网络隔离拓扑,能够有效地发现处于异常运行状态的租户VM、非法渗透进租户拓扑的可疑VM;针对云平台多租户三层网络隔离证据,提出了基于策略重构的三层证据分析评估方法,通过关联分析路由表,防火墙策略和OVS流表,形成云平台多租户三层网络隔离策略矩阵,直观表达多租户三层网络之间-12- 第1章绪论的通信连接关系,有效地发现异常通信链接和不合理的通信策略。另一方面,云计算平台具有分布式的特点,因而相关的云平台多租户网络隔离可信性证据采集涉及多个节点。本课题基于上述云平台多租户网络隔离证据采集体系,提出一种适用于分布式云平台的基于AMQP[43]机制的Openstack云取证方法,统一管理多租户二、三层网络隔离证据的采集分析。(3)云平台多租户网络隔离证据收集分析原型系统实现为了充分验证本文提出的云平台多租户网络隔离证据收集分析方法,本文基于Openstack云平台设计实现针对该方法的原型系统,引入第三方角色,分别设计云平台多租户二、三层网络隔离证据模块L2NFCM和L3NFCM,基于AMQP机制的云平台多租户网络隔离证据采集代理模块NFCP,以及基于第三方角色的Checker模块,通过原型系统实现以及相关性能分析,证明了本文方法的有效性。1.4论文结构论文以云用户不信任云平台提供的网络隔离环境为出发点,分析当下云平台多租户网络隔离面临的安全风险,确定云平台多租户网络隔离证据采集体系,提出基于Openstack云平台多租户网络隔离证据收集方法,并给出该方法的原型实现,最终形成一份云平台多租户网络隔离状态报告交付用户。第一章介绍了公有云网络模型、云平台多租户网络隔离现有的安全问题及针对云平台多租户网络隔离及相关证据收集技术的研究现状,给出了本文研究内容的背景和出发点,为本文的研究内容奠定理论和技术基础。第二章进行云平台多租户网络隔离安全分析,首先以典型的Openstack多租户网络隔离场景为基础,分析该场景下多租户网络隔离面临的安全风险,并分析了这些风险是如何影响云平台多租户网络隔离的以及采集哪些证据可以表达出该影响因素,之后基于风险模型设计基于Openstack云平台的多租户网络隔离证据采集体系。第三章详细介绍Openstack多租户二层网络隔离各项子证据的采集方法,并设计基于拓扑重构的分析方法,对各项二层网络子证据进行关联分析,同时设计多租户二层网络评估算法,构建云用户和Openstack云平台的定制网络拓扑,通过比较两棵拓扑树,发现二层网络隔离存在的异常情况。第四章详细介绍了Openstack云平台多租户三层网络隔离各项子证据采集方法,并进一步对各项子证据进行数据抽象和关联分析,设计了基于策略重构的多租户三层网络隔离证据分析方法,同时设计多租户三层策略矩阵评估算法,对当前重构的策略矩阵进行评估,发现三层网络连接异常。-13- 北京工业大学工学硕士学位论文第五章介绍了基于AMQP机制的分布式云取证方法,基于消息队列机制统一管理Openstack各个物理节点二、三层多租户网络隔离证据的分析采集。第六章对本文提出的方法进行了原型系统实现,设计各个证据采集模块,实现其功能进行了相关性能测试。结论对本文的研究内容进行了总结和展望,为下一步的研究工作指明方向。-14- 第2章Openstack云平台多租户网络隔离证据体系第2章Openstack云平台多租户网络隔离证据体系由第一章研究现状可知,公有云多租户网络大多数基于网络虚拟化技术构建,一方面,网络虚拟化技术使得公有云数据中心网络更加弹性灵活,另一方面,由于虚拟化网络的分布式特性,云平台多租户隔离网络面临比传统网络更多的安全风险。而网络安全性是实际应用领域接受云计算服务的主要考虑因素之一,特别是当云用户的业务系统涉及敏感信息时,对公有云多租户网络隔离环境有严格的安全需求。从用户的角度来讲,对于网络安全的认识,大多数停留在传统的安全威胁上,几类典型的网络攻击如表2-1所示。表2-1常见的传统网络攻击Table2-1Commontraditionalnetworkattacks攻击类型攻击方式通过伪造自身的IP或者MAC地址,冒充网络内其他主机,截获其他主机的网络数据包信息,造成该MAC/IP地址欺骗类攻击主机不能连接网络。攻击者也是通过伪造自身MAC地址为网桥的网关地址,试图截获其他主机发送到该网桥的数据包信ARP欺骗攻击息恶意用户通过向DHCP服务器发送大量的伪造MAC地址,申请多个IP,造成DHCP地址池中的DHCP攻击IP地址耗光,使DHCPserver无法分配更多的IP给其他用户主机是指在网络不做带宽限制的情况下,恶意攻击者通过发送大量数据包,造成网络阻塞,典型的案例就带宽攻击是僵尸网络的构建。不同VLAN下的租户理论上是不能通信的,但攻击者通过交换机端口VLAN划分的原理机制,事先将数据包打上两个VLAN标签,最外层的VLAN标签是交换机端口所在的本地VLAN,内层标签则是VLAN双标签攻击要跨越到的租户VLAN标签,交换机收到这样的数据包后把外层标签除去,只剩内部VLAN标签的数据包继而可以在任意TRUNK端口传输,实现了不同租户VLAN之间的跳跃。目前在传统网络中,针对上述安全问题各有相应的防护措施,针对IP/MAC地址欺骗类攻击,通常可以通过在路由器开启MAC地址过滤或者在物理交换机-15- 北京工业大学工学硕士学位论文上进行MAC地址绑定相关配置解决;针对ARP欺骗类攻击,可以通过在物理交换机上配置动态ARP检测,开启DHCPSnooping等功能,产生一张MAC地址绑定表,同时在全局开启arpinspection,之后交换机会根据绑定表里面的信息将违规ARP包丢弃;针对DHCP类攻击,可以通过设置MAC地址和IP地址绑定的方法,即一个MAC对应一个IP,限制MACclient的数量,同样开启DHCPSnooping等配置进行防范;针对带宽类攻击,可以通过相关带宽限制措施,限制网络内主机的最大带宽以防止某一台主机对网络的单独占用;针对VLAN双标签攻击,通常的解决方式是单独设置一个NativeVlan,然后不将任何主机划入该VLAN,或者是在Trunk端口上过滤该NativeVlan等措施使得外层VLANtag不被剥离,使数据包不能被传输到内部VLAN网络中,继而避免了VLAN双标签此类攻击。针对这几类传统攻击,各大公有云平台数据中心网络也提出了相应的防护措施,以Openstack云平台为例,其把IP/MAC地址欺骗类攻击,ARP欺骗攻击以及DHCP欺骗攻击归为一类,因其原理均是修改了数据包的IP或MAC地址,只是攻击的目标与方式不同。Openstack云平台通过设置相关的Iptables策略,校验从租户VM发出的数据包是否是规定的IP/MAC,如果符合Openstack预先配置的IP/MAC信息,则予以放行,如果不符合,即不予放行;针对带宽类攻击,Openstack提供相应的针对租户VM带宽限制的相应配置功能,可以有效的限制租户每台VM的带宽,避免租户单个VM占用云平台过多网络带宽,限制僵尸网络的作用;针对VLAN双标签类攻击,新型多租户网络隔离技术从技术本身机制上就可以有效避免此类攻击,对于OpenvSwitch如何结合VXLAN,NVGRE等网络技术实现云平台多租户二层网络隔离的作用机制,本章后续内容将进行进一步具体分析。然而,虽然各大公有云平台提供各项措施解决了一部分用户关心的传统网络安全问题,但云平台多租户网络的实现方式与传统网络大不相同,因而云平台多租户网络隔离安全不能就传统网络安全一概而论。一方面,由于云计算共享资源、虚拟化和分布式特性,打破了原来传统网络的可信边界,因而要考虑的安全风险层次更为复杂;另一方面,基于网络虚拟化技术构建的云平台多租户网络对于大多数用户来说是一个“黑盒”,云用户不了解底层公有云网络的作用机制,因而有必要针对云平台的多租户网络实现机制进行单独的安全风险分析。针对上述问题,本章首先介绍Openstack云平台的多租户网络隔离场景,分析了其区别于传统网络的实现方式。之后基于该场景,考虑多租户网络隔离面临的风险,并系统地提出了多租户网络隔离风险模型,通过具体分析风险模型中的各个风险要素,确定云平台多租户网络隔离证据收集的各个采集点,形成本次-16- 第2章Openstack云平台多租户网络隔离证据体系Openstack云平台多租户网络隔离证据收集体系。2.1Openstack多租户网络隔离场景当前主流云平台针对云平台多租户网络隔离的解决方案,通常通过虚拟网络设备,如虚拟交换机,路由器及防火墙来实现。在多租户的云平台下,通常将物理服务器分为计算节点和网络节点等,计算节点主要结合相关虚拟化技术提供对租户业务的支撑,网络节点是专门负责云平台数据中心网络构建和租户网络流量处理的节点,但云平台多租户网络的实现不仅仅单靠网络节点实现,也分布于各个计算节点,网络节点一般可以看成是分布于各个计算节点虚拟化网络设备的“控制”节点。如图2-1所示是典型的Openstack云平台多租户网络隔离场景。图2-1典型Openstack多租户网络隔离场景Figure2-1Typicalopenstackmulti-tenantnetworkisolatedscene在该架构下,承载租户二层网络的通常是虚拟交换机(VirtualSwitch)和传统网桥(NetworkBridge)设备,这些设备通常和租户的VM部署在计算节点,通过VLAN划分等方式实现租户的二层网络隔离;租户三层网络则通过虚拟路由器(VirtualRouter)及防火墙实现,通常这些设备会单独部署在一台物理节点,即网络节点,该节点通过制定路由和防火墙策略,控制租户间网络的东西流量以及租户私网与外网的南北流量来实现云平台多租户的三层网络隔离。与传统模式相比,在这样一个分布式的云平台多租户网络隔离架构下,原来的可信边界彻底被打破了,不管是承载租户二层网络的虚拟网络设备,还是三层网络设备,任何一个点发生安全风险,都可能打破多租户的网络隔离状态。在该-17- 北京工业大学工学硕士学位论文场景下,暴露出的不安全因素主要来自两大类:(1)不被信任的Hypervisor云平台多租户VM之间的隔离基于Hypervisor实现,Hypervisor通过各种技术实现多个租户VM对底层资源的共享,又保证VM之间对资源使用的隔离。单就网络来讲,为了实现多租户VM对物理网卡的共享,Hypervisor一方面通过桥接等技术实现VM网络连接,一方面又要保证不同VM网络数据包之间的互相不可见。可以看出Hypervisor安全是多租户网络隔离的关键,相反,如果控制了Hypervisor,就可以通过Hypervisor窃取租户VM网络数据包信息,这种威胁可以来自云平台底层管理员,也可以来自通过某种方式获取了云平台底层权限的恶意云用户。(2)不被信任的通信链路上述对于Hypervisor的不信任可以认为是云用户对云平台租户网络隔离机制的不信任,另外一方面,租户将业务系统部署到公有云平台,其VM之间也需要进行网络通信,因而通信链路的安全是租户关心的另一类问题,而对于拥有云平台管理权限的人员来讲,可以轻易的从底层改变用户VM的访问控制策略或者采用某种网络嗅探方式窃取用户网络数据信息。正是由于这些不安全因素的存在,使得租户不得不重新考虑公有云数据中心网络的安全问题。本文下面将针对这种云平台多租户网络隔离场景,考虑云平台多租户网络隔离的面临的安全风险。2.2多租户网络隔离风险模型由上述场景分析可知,云平台多租户网络隔离面临的安全风险更多的是由新型的网络虚拟化技术带来的,从租户的角度分析其对安全问题的主要考虑主要是关心两个方面,一方面其租户私有网络是否可以从虚拟化层被恶意渗透,另一方面则是对云中其网络通信安全的考量。当云用户通过Openstack云平台创建自身的租户网络时,请求会发送给Openstack网络节点,之后网络节点下发相应的指令给计算节点的虚拟网络设备(NetworkBridge、VirtualSwitch等)和Hypervisor来构建租户网络。通过以上分析,构建出如图2-2所示的云平台多租户网络隔离风险模型。本次风险模型主要考虑了四类安全风险,这些风险主要来自获得云平台底层root权限的CSP(CloudServiceProvider)管理员,对于其他恶意租户,也是通过VM逃逸等攻击获取Hypervisor权限,进而获取其他租户信息,因而把这类租户也归于恶意管理员一类,对于其他恶意租户的攻击,如IP地址欺骗等传统方式,上文也已经-18- 第2章Openstack云平台多租户网络隔离证据体系讨论过各大公有云平台针对这些攻击的防御措施,在本次风险分析中不做过多描述。CloudUserControllerNodeComputeNodeUserendpointvmvmvmvm...vm2.tamperovsNetworkNodeVirtualSwitchflowsFireWall4.modifyfirewallrulesFireWall3.modifyrouter1.attackfromVirtualRouterHypervisorruleshypervisorCClloouuddSSeerrvviicceePPrroovviiddeerr图2-2云平台多租户网络隔离风险分析图Figure2-2Cloudplatformmulti-tenantnetworkisolationriskanalysis(1)Hypervisor攻击:恶意管理员为了突破云平台本身提供的网络隔离机制,直接从利用Hypervisor创建VM,并且通过配置VM启动文件将VM网络挂载到租户网桥之上,继而进入租户网络,以备利用该VM进行下一步的网络嗅探、攻击等恶意操作。例如一种可能就是,可疑VM通过底层构建,避开云平台本身的带宽限制,对租户网络内其他VM发起DDoS攻击。此时租户网络拓扑实际上如图2-3所示。可疑VMVMVMVMHypervisor物理网络资源图2-3通过Hypervisor直接挂载VM至租户网络Figure2-3MountVMdirectlytotenantnetworkthroughhypervisor(2)OVS流表篡改:是指获得了云平台底层Root权限的恶意攻击者直接修改OVS流表,将租户流量引入自己的VM,进而可以嗅探到租户的网络流量。如图2-4所示是一种基于OVS的云平台多租户底层网络实现的一种场景,OVS主要有两类功能,一类是Tunnel功能,支持本文第二章关键技术的Overlay网络技术,如GRE,VXLAN等协议,另一类支持Flow功能,如Openflow协议,通过一条条流表规则实现对数据包的转发处理,并且涵盖TCP/IP协议各层。-19- 北京工业大学工学硕士学位论文Layer1-TunnelID,InPort,QoSpriority,skbmarkLayer2–MACaddress,VLANID,EthernettypeLayer3–IPv4/IPv6fields,ARPLayer4–TCP/UDP,ICMP,ND图2-4基于OVS的云平台虚拟网络实现Figure2-4ImplementationofvirtualnetworkbasedonovsincloudplatformOVS通过一条条流表规则对数据包进行处理,其工作原理如图2-5所示。图2-5OVS流表处理数据包流程Figure2-5TheOVSflowtableprocessesthepacketflow此时如果,恶意管理员私自从底层构建或删除一条流表,显然会影响租户VM网络数据包通信,其结果可能导致租户网络通信不能正常进行,亦或是导致租户网络数据包被恶意嗅探。(3)路由策略修改:租户不同私网之间的通信靠虚拟路由实现,恶意管理员通过修改路由策略,使来自其他私网的恶意攻击者进入租户网络,或者使正常通信不能进行。现有的虚拟路由大多基于NetworkNamespace实现,以Openstack云平台为例,如图2-6所示,有两个私有网络分别为10.0.1.0/24和10.0.2.0/24,如果两个网络内的租户VM需要进行三层通信,则Openstack建立一个NetworkNamespace,在该Namespace中设置两个网络接口分别连接相应的OVS网桥,两个接口的IP地址分别设置为租户两个私有网络的网关,再配合设置相应的路-20- 第2章Openstack云平台多租户网络隔离证据体系由表,即实现了不同私网VM间的三层路由通信。相反,如果租户两个网络之间本不应该有三层路由通信策略,则该Namespace不应该建立相应网关接口,但恶意管理员私自建立接口,显然会影响多租户之间的三层网络隔离。RouterNamespace10.0.1.0/2410.0.2.0/24RouterTableVM:10.0.1.4VM:10.0.2.4InterfaceInterface10.0.1.110.0.2.1VMTAPVMTAPTAPTAPINTERFACEINTERFACEINTERFACEINTERFACEOVS图2-6基于NetworkNamespace的OpenstackVirtualRouter实现Figure2-6OpenstackVirtualRouterimplementationbasedonNetworkNamespace(4)防火墙策略修改:防火墙作为传统的网络防护方式,在公有云平台中仍有广泛的应用,目前防火墙通常是租户网络流量进入租户VM的最后一道屏障,实现对租户VM访问的更细粒度控制,如应用层http协议等。如图2-7所示是典型防火墙Iptables的实现原理。图2-7Iptables防火墙实现原理Figure2-7Iptablesfirewallimplementation其处理流程大致如下:首先数据包进入mangle表的PREROUTING链,根据需要改变数据包头内容;之后进入nat表的PREROUTING链,可以根据需要进行DNAT(目标地址转换)操作;之后进入路由判断阶段,判断是要进入本地的数据包还是要进行转发的数据包,如果是本地则进入INPUT链进行处理,按-21- 北京工业大学工学硕士学位论文条件过滤限制进入本机,再进入OUTPUT链,按条件过滤限制出去离开本地,如果是转发则进入FORWARD链,根据过滤条件限制转发,最后进入POSTROUTING链,可以进行SNAT(源地址转换)操作后离开网络接口。目前Openstack云平台将防火墙部署在NetworkBridge上,如果恶意管理员从底层修改防火墙策略,则云平台租户网络中的VM很可能受到来自非法网络攻击者的各项攻击。2.3多租户网络隔离证据收集分析体系框架由风险分析可得,风险(1)来自Hypervisor的攻击,可能导致非租户VM被挂载到租户的二层网络,可以通过采集Hypervisor以及相关的二层网络设备信息发现该可疑VM,因而本文将采集的这些信息归为二层网络隔离证据;而风险(3)(4)则可以导致租户间的三层网络隔离被打破,因而有必要采集路由表、防火墙策略信息作为三层网络隔离证据。而风险(2)对于OVS流表的篡改,影响租户二层网络隔离的同时,一方面也影响了租户的三层网络通信,例如不同租户的两个网络A-B之间本来有路由策略,但恶意管理员擅自修改流表策略,导致三层的网络流量在二层被截断,因而在分析多租户三层网络隔离状态的同时,必须对OVS流表进行关联分析。基于此,本文提出如图2-8所示的云平台多租户网络隔离证据采集树。多租户网络隔离状态验证证据二层网络隔离证据三层网络隔离证据hypervisornetworkbridgeovsrouterrulesfirewallrules图2-8云平台多租户网络隔离证据收集树Figure2-8Cloudplatformmulti-tenantnetworkisolationforensiccollectionsystem由图2-8可知,本次云平台多租户网络隔离证据收集分析将需要采集的证据主要分为两类:二层网络隔离证据和三层网络隔离证据,每层网络隔离证据又细分为各项子证据。二层网络隔离证据主要包括以下几项内容:通过Hypervisor采集的GuestOS信息,各个NetworkBridge网桥设备连接信息以及各个OVS设备的配置信息;三层网络隔离证据包括:云平台多租户虚拟路由表信息,多租户防火墙策略信息以及OVS流表信息。结合Openstack云平台多租户网络隔离场景可以看出,上述各类网络子证据分布在各个物理节点,具有分布式特性,因而需要对各项证据的采集进行统一规-22- 第2章Openstack云平台多租户网络隔离证据体系划和管理,如图2-9所示为本次Openstack云平台多租户网络隔离证据收集分析方法的整体框架。消息总线二层hypervisor采集器Openstack网络隔离证ovsAPIs据采集代理netbridge评估分析数据库三层routerrules多租户网络隔离状态报告firewallrulesovsflows图2-9云平台多租户网络隔离证据收集分析整体框架Figure2-9Cloudplatformmulti-tenantnetworkisolationforensiccollectionanalysisoverallframework由图2-9可以看出,该方法的整体框架基于消息机制设计了证据采集器和证据采集代理,由采集器统一下发各类证据采集指令至证据采集代理;证据采集代理分布在各个物理节点,采集各项多租户网络隔离子证据以及Openstack提供给用户的定制网络信息,同时按照一定的方法对各类信息进行关联分析,对于二层网络隔离各项子证据,本文设计了基于拓扑重构的多租户二层网络隔离证据分析算法,根据获取的证据信息,从物理节点底层实时重构云平台多租户二层网络拓扑,对于三层网络隔离各项子证据,本文设计了基于策略重构的多租户三层网络隔离证据分析算法,根据从物理节点底层获取的各项通信策略,重构云平台多租户三层网络通信策略矩阵,通过以上针对二、三层类网络隔离证据的算法分析,形成更为直观的云平台多租户二、三层网络隔离证据报告,返回给证据采集器;另一方面,证据采集器需要对当前网络隔离证据进行评估,评估依据Openstack云平台和用户定制的二、三层定制网络隔离相关信息,这些信息仍是由相关证据采集代理通过请求相关OpenstackAPI并且进行关联分析获得,关联分析基于各类云平台多租户网络隔离证据收集分析算法。由此经过各类证据的评估分析,最后形成一份多租户网络隔离状态报告,提供给用户。-23- 北京工业大学工学硕士学位论文2.4本章小结本章主要是对云平台多租户网络隔离的安全性进行分析,首先从用户角度出发,分析了用户对传统网络安全问题的认识,列出了几类常见的传统网络攻击以及现有云平台针对这些传统攻击的防御措施;之后给出了Openstack云平台多租户网络隔离场景,分析了该场景下多租户网络的实现与传统网络的区别,继而又分析了在该场景下云平台多租户网络隔离性存在的不安全因素;最后基于该场景,系统地给出了云平台多租户网络隔离风险模型,模型主要分析了来自恶意管理员的安全威胁,主要包括四类:Hypervisor安全威胁,OVS安全威胁、虚拟路由安全威胁以及防火墙安全威胁,并结合案例分析了每种威胁是如何破坏多租户网络隔离性的过程。基于上述风险分析,提出了本次云平台多租户网络隔离证据采集的树型体系,将要采集的云平台多租户网络隔离证据分为两类:一是二层网络隔离证据信息,该类信息又包括Hypervisor信息和各类二层虚拟网络设备信息等子证据;二是三层网络隔离证据,该类信息又包含路由表、防火墙策略以及OVS流表等子证据。最后给出了本次基于Openstack云平台多租户网络隔离证据收集分析方法的整体框架。-24- 第3章基于拓扑重构的二层网络隔离证据采集第3章基于拓扑重构的二层网络隔离证据采集为了实现云计算“网络作为服务”的理念,OpenstackNeutron网络组件在设计上遵循了基于“软件定义网络”原则来实现云平台多租户网络的虚拟化,在实现上充分利用了Linux系统的各项虚拟化网络相关的技术。Neutron最为核心的工作就是对二层网络的抽象与管理,表3-1显示了Neutron涉及的二层网络技术。表3-1OpenstackNeutron二层网络技术Table3-1OpenstackNeutronlayer2networktechnology名称描述工作于二层的虚拟网络设备,linux中传统实现的网桥,类似hub设备,OVSbridge管理的网桥(br-int,br-eth等)一般类似交换机。br-int由OVS管理的综合网桥,常用于表示实现类似物理交换机功能的网桥。由OVS管理的外部网桥,通常表示负责跟外部网络通信的网桥,本质仍是br-ex一个二层交换机。虚拟网络接口,通常以成对儿方式出现,一端发出的网包,会被另一端接VETH收,类似传统网线,可以理解成虚拟网线,通常用作连接两个网桥。qvbneutronveth,LinuxBridge-sideqvoneutronveth,OVS-sideLinux内核模拟实现的一个二层的网络设备,用作内核接收用户空间发送过TAP设备来的网络数据包。Vlan虚拟局域网,通常用作不同部门间网络的隔离,可用标号为1-4096。利用UDP协议作为传输协议的一类Overlay网络实现。是目前大多数云VXLAN平台在采用的多租户二层网络隔离技术。如图3-1所示,是以VLAN模式为例,OpenstackNeutron的多租户网络隔离架构实现。由图3-1知,OpenstackNeutron多租户二层隔离网络主要是利用了虚拟网桥相关设备技术构建,因而本次云平台多租户网络隔离二层网络隔离证据的采集基于这些虚拟网络设备的底层命令进行。图3-1NeutronVlan网络隔离架构图Figure3-1NeutronVlannetworkisolationarchitecture-25- 北京工业大学工学硕士学位论文3.1多租户二层网络隔离子证据采集方法3.1.1基于设备命令采集虚拟网桥信息Openstack环境下,虚拟网桥涉及两类,一类是传统的NetworkBridge,另外一类是OpenvSwitch下的各类OVS网桥,典型的如br-int等。Openstack通过借助这两类网桥实现多租户网络拓扑构建。本次对网桥信息的采集基于底层的设备命令来获取,其中NetworkBridge网桥信息获取可以利用brctlshow等命令,OVSBridge网桥信息获取可以采用OVS-vsctlshow等命令。由此定义网桥信息数据抽象如下。Bridge{name:xxxbridge_type:“linux_bridge”|“OVS_bridge”ports:[INTERFACE𝑖…]}其中name为该网桥的名称,与VirtualMachine挂载的BRIDGE_NAME对应,bridge_type表示该网桥的类型,可以是network_bridge也可以是OVS_bridge,ports表示该网桥上的接口,用一个数组表示,INTERFACE𝑖则表示该网桥每个接口的信息。3.1.2基于Libvirt采集计算节点VM信息通过Libvirt采集VM信息可以利用virsh相关命令。例如:virshlist–all可以拿到该计算节点上所有的VM。virshdumpxmlinstance-name可以拿到VM详细信息,一般如下。instance-00000001209715220971521…-26- 第3章基于拓扑重构的二层网络隔离证据采集…其中红色部分即为VM的MAC地址及其连接的网络设备信息,据此定义VM数据抽象如下。VirtualMachine{name:xxxmacs:[{MAC_ADDR𝑖:XX:XX:XX:XXBRIDGE_NAME:XXNETWORK𝑗:VLAN_ID}...]status:xxxnetwork:VLAN_id}其中name即为该VM名称,macs表示VM的网络接口,为一个数组,数组项为各个网络接口的具体信息:MAC_ADDR𝑖标识该网络接口的MAC地址,BRIDGE_NAME为该接口挂载的网桥信息,NETWORK𝑗表示该接口所属的私有网络信息,这里用VLAN_ID来代表一个二层的私有网段信息,status表示该VM的当前状态,可以是RUNNING,STOP等。3.2多租户二层网络隔离证据拓扑重构算法重构云平台多租户网络拓扑树。设计树节点类如表3-2所示。表3-2云平台多租户网络拓扑树节点UML描述Table3-2Cloudplatformmulti-tenantnetworktopologytreenodeUMLdescriptionTreeNode-name-childlist+addChild其中name为该节点名称,该节点是一台VM,或者是一个NetworkBridge,或者是一个OVSBridge,childlist是与该节点具有连接关系的下一层节点,为一个数组项;成员方法addChild为增加该树节点子节点的方法。之后设计云平台多租户网络拓扑类,如表3-3所示。其中成员变量tree_root为该树的根节点,vms为该树包含的各个VM节点,lbs和obs分别表示该树中的NetworkBridge和OVSBridge节点,均为数组;成员函数createTopology为重构云平台多租户网络拓扑树的方法,displayTopology-27- 北京工业大学工学硕士学位论文为打印该树的方法,topologyToXML为将该拓扑树转换成XML文件保存的方法。整个拓扑重构算法如表3-4所示。其中createTopology函数会根据已获得VMs,linuxBridges,OVSBridges信息,确定VMs与各网桥,以及各网桥之间的连接关系,创建各个树节点并且递归构建拓扑树。表3-3云平台多租户拓扑重构类UML描述Table3-3Multi-tenantnetworktopologyreconstructionclassUMLdescriptionTopology-tree_root-vms-lbs-obs+createTopology+displayTopology+topologyToXML整个createTopology方法过程如下:(1)遍历obs和lbs,对其中每一个数组项构建TreeNode实例。(2)遍历vms各项,判断该VM每一个mac对应的BRIDGE_NAME是否存在于obs或者lbs中,如果存在,获取该端口所属的局域网信息,作为该VM节点的属性,同时对该VM网络接口创建TreeNode实例,并且调取该接口对应的网桥节点的addChild方法,继而成为该网桥的下一层子节点;通过如上遍历,继而建立了VMs和各个网桥的拓扑连接关系。(3)通过网络设备连接命令获取obs和lbs各个网桥之间的连接关系,如果有连接,则调用obs相应树节点的addChild方法,添加相应的lbs网桥为子节点。(4)调用tree_root的addChild方法,添加各个obs网桥作为子节点,至此从上到下形成一棵完整的租户拓扑树。表3-4拓扑重构算法Table3-4ThetopologyreconstructionalgorithmInput:OpenstacknetworkconfigurationOutput:l2networktopologyofthetenantonthecomputenodefromnet_evi_agent.configimportnetwork_configfromnet_evi_agent.configimportcommon_config_funcfromnet_evi_agent.modelimportclassesdefgetTopologyInfo():configObj=network_config.getConfigInfo()component=configObj.componentmodel=configObj.modelextra_info=configObj.extra_infoifcomponent=="Neutron"andmodel=="VLAN":if(extra_info["mechanism_drivers"]=="openvswitch")://getOVSinfo-28- 第3章基于拓扑重构的二层网络隔离证据采集(status,result)=commands.getstatusoutput("OVS-vsctllist-br")…//getlinuxbridges(status,result)=commands.getstatusoutput("brctlshow")…//createtopologyobjTopo=classes.Topology(VMS,linuxBridges,OVSBridges)objTopo.createTopology()returnobjTopo整个拓扑重构流程如流程图3-2所示。读取openstack网络相关配置文件/etc/nova/nova.conf|/etc/neutron/neutron.conf获取云平台给租户规划的底层网络遍历所有计算节点,通过libvirtAPI拿到所有VM信息,定义VM数据抽象通过底层设备命令获取各类网桥信息,定义网桥数据抽象Bridge确定VMs和Birdges之间,以及Bridges之间的连接关系,定义拓扑类以及树节点类结构拓扑树重构通过libvirt创建可疑VM挂载到租户网桥,对比本方法重构的拓扑和云平台预先提供的拓扑图3-2多租户二层拓扑重构流程Figure3-2Multi-tenantLayer2networktopologyreconstructionprocess3.3多租户二层网络隔离证据验证评估算法获取当前云平台多租户二层网络隔离证据后,需要对当前云平台多租户二层-29- 北京工业大学工学硕士学位论文网络隔离状态进行进一步验证评估。对于云平台多租户二层网络隔离状态的验证,通过请求云平台相关API,构建云用户与云平台预先规划的网络拓扑,与当前实时重构的云平台多租户二层网络拓扑进行对比,能够直观有效地验证当前的二层网络隔离状态。如图3-3所示是云用户和云平台规划的二层网络拓扑构建流程。请求OpenstackNeutron/v2.0/networksAPI获取该用户与Openstack云平台规划的所有网络遍历用户的所有网络,调用/v2.0/networks/{network_id}API,获取每个网络的子网信息调用/v2.0/portsAPI,获取用户相关的所有网络端口信息,包括端口MAC地址和所属的子网信息遍历每个端口,确定MAC地址和所属子网的连接关系,构建树节点根据子网所属的网络信息,构建树节点构建云用户和Openstack云平台定制规划的二层网络拓扑树图3-3定制二层网络拓扑构建流程Figure3-3CustomizeLayer2Networktopologyconstructionflow获取到云用户与云平台之间定制的二层网络拓扑后,对获得的实时云平台多租户二层网络隔离拓扑树进行评估,即转化为两颗树的比较,整个比较算法描述如表3-5所示。表3-5云平台多租户二层网络隔离状态评估算法Table3-5Multi-tenantlayer-2networkisolationstateevaluationalgorithmInput:Actualforesictopotree&OpenstackcustomtopotreeOutput:SuspiciousnodelistfromutilsimportpreorderOfTree-30- 第3章基于拓扑重构的二层网络隔离证据采集defcmpTrees(afTree,OcTree)://getpreorderofeachtreelist1=preorderOfTree(OcTree)list2=preorderOfTree(afTree)suspicious_node_list=[]i,j=0while(i=NdefcmpMatrixs(fpMatrix,cpMatrix):i,j=0suspicious_policy_listwhile(i

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
关闭