域名服务器dns放大攻击的有效检测与抵御方法

文档序号:7700640阅读:204来源:国知局

专利名称::域名服务器dns放大攻击的有效检测与抵御方法
技术领域
:本发明是一种用于检测和抵御DNS放大攻击的方法,易于硬件实现,可用于高速链路,属于计算机网络安全领域。该方法包括被保护的网络所在运营商的边缘路由器或防火墙中,统计每个检测周期内DNS响应与请求数量,通过带消退参数的累积和算法检测响应与请求数量差值的异常变化,来报告DNS放大攻击;利用基于布隆过滤器(Bloomfilter)的算法记录DNS请求包的四元组信息包括源IP、目的IP、源端口、DNSID,并以此来判断DNS响应包是否为攻击包;该方法在10Gbps链路下仅需要75KB存储空间,计算代价小,利于实现。
背景技术
:域名服务器(DNS)负责将被人们容易记忆和使用的域名转换成实际的IP地址,几乎是所有网络服务如网页、电子邮件等应用的基石,利用DNS服务器进行放大攻击危害严重,其主要步骤如图1所示-1)预备步骤为成功发起DNS放大攻击,攻击者事先控制某权威域名服务器,并控制大量用于发起进攻的机器,即僵尸网络,另外,还需要从网络上寻找大量开放递归(openrecursive)査询的域名服务器,这类DNS服务器会响应任意的DNS査询;2)第一步攻击者在被控制的域名服务器上发布较大的TXT资源记录;3)第二步攻击者向僵尸网络发起攻击指示;4)第三步僵尸网络的机器向开放递归域名服务器査询第一步中发布的TXT资源记录,査询(DNS请求包)的源IP地址伪造成被攻击系统的IP地址;5)第四步接收到査询请求的域名服务器将DNS响应(Response)发送到被攻击系统处,消耗其接入带宽和处理资源,由于DNS响应包往往远大于DNS请求包,故被攻击系统到达的流量要大于僵尸网络所发出的请求流量,因此被称为DNS放大攻击。DNS放大攻击产生的原因,主要包括IP源地址伪造、开放递归的域名服务器的存在和DNS响应包长度大于请求包,从长期而言,消除这三方面尤其前两方面能彻底消除DNS放大攻击[SSACadvisorySAC008DNSdistributeddenialofservice(DDoS)attacks,ICANNSecurityandStabilityAdvisoryCommittee,March2006.[Online].Available:http:〃www.icann.org/committees/security/dns-ddos画advisory-3lmar06.pdf],但被攻击系统及其所在运营商(ISP,InternetServiceProvider)无法控制并推动这三个原因的消除,其它ISP没有足够的激励去采取这类措施。DNS-Guard[F.Guo,J.Chen,andT.Chiueh,"SpoofdetectionforpreventingDoSattacksagainstDNSservers,"in尸rac.ZE££/CDCS,2006.]用于检测DNS请求是否为伪造,但其主要用于DNS服务器之间的验证,并增加了正常请求的延时;Kambourakis等人[G.Kambourakis,T.Moschos,D.Geneiatakis,andS.Gritzalis,"AfairsolutiontoDNSamplificationattacks,"inProc.InternationalWorkshoponDigitalForensicsandIncidentAnalysis(WDFIA),2007.]提出了一种公平解决DNS放大攻击的方法,但其文中也指出,存在数据库膨胀而导致难以部署的问题。
发明内容本发明的目的在于为遭受DNS放大攻击的系统及其ISP设计一种有效、可部署的检测和抵御该攻击的方法。本发明的特征在于,所述方法是在被保护的网络所在运营商ISP的边缘路由器中依次按以下步骤实现的步骤(l).初始化,设定以下参数检测周期^,该检测周期大于请求包与响应包之间的时间间隔RTT,所述^在10s600s内取值,优先选择60s,s为秒的单位,检测灵敏度《,表示攻击的响应包的个数超过正常请求包个数的倍数,在间取值,检测阈值A,表示能容忍的累积最大攻击速率,在内取值,w",表示连续出现的前一个检测周期n-l的攻击累积检测值jw报告有DNS放大攻击,而当前检测周期"的攻击当前检测值^报告无攻击的次数,称为攻击消退参数,该攻击消退参数的递推定义如下&和尸分别表示第"个检测周期内统计的请求包和响应包的数量,"=0,A么3,…,w,…当前检测值《>0,表示第w个检测周期可能发生攻击,当前检测值AS0,表示第个检测周期正常无攻击的情况,累积检测值jv表示第n个检测周期攻击的累积检测值,用于报告系统是否0,其受到DNS放大攻击,若^>&,表示系统受到DNS放大攻击,7"由递推计算得符号"+"表示()内的(3^+xJ〉0时,6^+^+=>V;+^,否贝IJ,6V/+^+=0,7V表示报告攻击结束的参数,为整数,在[1,10]间取值,用攻击消退参数表初始时w。=a^=x0+,此时,jco=0,则^+=0,步骤(2).在第《个检测周期内统计DNS请求包数a和DNS响应包数计算《《"0/Q^,若x<0,表示情况正常,无攻击;x"〉0,表示可能存在攻击;x>A,表示在所述第w个检测周期存在攻击;无论处于上述三种情况中的任何一种情况,都转入步骤(3),步骤(3).递推计算攻击消退参数^和攻击累积检测值J",公式见步骤(l),步骤(4).若;;"〉f/z,表示系统受到DNS放大攻击,步骤(5).当检测到DNS放大攻击时,首先应过滤掉分片的IP包,方法为提取IP包头的MF标志和offset域,限制该MF为1,及该MF为0但该offset域不为0的包来过滤分片的IP包,然后通过步骤(6)及步骤(7)来检测和丢弃攻击的DNS响应包,步骤(6).提取所述请求包的四元组源IP、目的IP、源端口、DNSID作为元素",插入到由A:个独立的H3哈希函数和m比特的存储位置组成的第一个布到,若前"个检测周期,所有的当前检测值&/=/,2,…,w,均大于o,则x-2^',对于一般情况,所述攻击累积检测值^的递推定义如下:隆过滤器BF1或第二个布隆过滤器BF2中,在所述第一个布隆过滤器BF1和第二个布隆过滤器BF2中轮流存储该元素各存储1秒时间,A:在[l,20]间取值,所述的插入到所述布隆过滤器的操作为用该元素依次作为所述^个哈希函数/2;,/72,...,/^的输入,每个所述哈希函数返回值在集合^,/,...,m-^中,对于每一个哈希结果/2,.(^,/=7,2,...,A:,把该值对应的存储位置的值置为1,若已经为1,则保持不变,步骤(7).对检测到的响应包,提取该响应包的四元组目的IP、源IP、目的端口、DNSID作为元素6,检査是否在所述两个布隆过滤器中,若都不在,则判断该响应包为攻击包,丢弃,所述检查元素6是否在所述两个布隆过滤器中的操作为对于每一个哈希结果/2,御,/=7,2,...乂,判断其对应的存储位置的值是否为1,如果任何一个结果对应的位置的值为0,则表示元素6肯定不在相应的布隆过滤器中,如果A个哈希结果对应的位置的值都是1,则判断该元素6在相应的布隆过滤器中。本发明利用DNS请求与响应一一对应的关系,检测阶段使用总的响应数量和请求数量的差异,提出以带消退参数的累积和算法检测差异的变化,当报告DNS放大攻击后,利用精巧的数据结构布隆过滤器和算法来有效识别攻击的响应包。图1DNS放大攻击详细过程示例。图2过滤策略框架图。图3检测和抵御方法部署位置。图4检测与抵御方案工作流程。图5识别DNS请求与响应包。图6DNS请求与响应归一化差值。图7各种攻击速率下检测结果(a)30pps攻击速率,(b)150pps攻击速率,(c)20-200pps随机攻击速率。图8各种攻击速率下检测攻击开始和结束的时间。图9过滤策略识别攻击包的误判率。具体实施例方式本发明的特征在于利用正常情况下DNS请求包与响应包一一匹配的关系,快速准确报告DNS放大攻击的开始和结束,当发生攻击时,启用过滤策略准确区分攻击响应包和正常响应包,并将攻击响应包丢弃。选取检测时间间隔为&>RTT,RTT为请求包与响应包之间的时间间隔),称为检测周期,统计每个检测周期内总的出方向的DNS请求包和入方向的DNS响应包数量,因请求和响应之间有RTT的时间差,其绝对数量不会完全相等,但统计意义上,正常情况下,请求和响应的数量非常接近,而在DNS放大攻击时,会有大量没有与之对应请求的响应包,并且,DNS请求包均假定是合法的,没有伪造的问题,因此检测策略的基本思想是快速检测出总的响应包与请求包之间的差值的异常变化。设込和户。("=化Z,...)为第"个检测周期内统计的请求包和响应包的数量,令An为其归一化的差值,艮P:△n-(P^-Qn)/Qn因《An,"=0,7,...}与具体的网络情况无关,仅取决于DNS协议,可近似为随机序列,使用带消退参数的累积和算法来检测An的变化。假定正常情况下,E(An)=c,选取c的上界为cc即c《a,定义攻击当前检测值^二An-ct,则正常情况下x"均为小于0的值,当某个检测周期^大于0,认为可能发生攻击,当这种情况累积到一定程度,报告攻击发生。定义消退参数w"和攻击累积检测值K,当少〉A时报告此时发生DNS放大攻击,否则,撤销己检测到的攻击的报告。A为预先定义的阈值。消退参数^的递推定义如下w=《"lo,其它即代表连续出现前一个检测周期检测值报告有放大攻击,而当前检测周期无攻击(^<0)的次数,当该次数超过iV时,认为攻击已结束,累积检测值》的递推定义如下"—JO,w,JV其中,X+的定义为若X〉"X+=X,否则乂+=0。消退参数与累积检测值的初始值为w。=0J。=JC。+,JC。=0.检测策略中,ct用于将正常情况下响应与请求数量归一化差值降为O以下,同时也是检测的灵敏度,即只要攻击响应个数超过正常请求个数的a倍,理论上均可被检测算法所检测。《与正常情况下DNS响应包与请求包归一化差值的上界c相关,推荐选择02;A为检测阈值,表示容忍的累积最大攻击速率,可选择0.510;W为快速报告攻击结束的参数,为整数,可选择1~10;检测周期可选择10s600s,推荐选取60s。与传统的用于检测随机序列异常变化的无参数累积和算法[M.BassevilleandI.V.Nikiforov.Detectionofabruptchanges:theoryandapplication.PrenticeHall,1993;B.E.BrodskyandB.S.Darkhovsky.Nonparametricmethodsinchange-pointproblems.Kl丽erAcademicPublishers,1993;H.Wang,D.Zhang,andK.G.Shin,"Change-pointmonitoringforthedetectionofDoSattacks,"ThmsaWo/wo"Depew^/eawdSecw/-eCo附/n^/"g,vol.1,no.4,pp.193-208,December2004.]相比,本发明提出的带消退参数的累积和算法,能快速报告攻击的结束,而传统的算法,攻击结束后,A只能以每个检测周期减小a的速率直至降到阈值以下,耗时长。检测出DNS放大攻击后,利用过滤策略有效区分攻击响应与正常响应包。因正常情况下,IP包分片比例很小,最新的研究显示比例仅占0.06%,且在进一步减小[W.John,S.TafVelin.AnalysisofInternetbackbonetrafficandheaderanomaliesobserved,in/Voc.JCM57GC(9A/Mco"7ferewce/"ferwef附eoswemewf,2007],DNS响应包分片的比例更小,而DNS放大攻击往往使用长的响应包,会被分片,故在检测到DNS放大攻击后,首先限制DNS分片包。限制分片包的规则为IP包头中MF域为1或偏移域(offset域)为非0。正常情况下,请求包的四元组源IP、目的IP、源端口和DNSID,即4IP,DIP,SP,ID〉和响应包的四元组目的IP、源IP、目的端口和DNSID,即〈DIP,SIP,DP,ID>完全匹配,过滤策略利用该特性来识别攻击响应包。为避免保存全状态信息,设计利用精巧数据结构的算法来进行识别。图2显示了过滤策略的框架图,布隆过滤器(Bloomfilter)[A.BroderandM.Mitzenmacher,"NetworkapplicationsofBloomfilters:asurvey,"MaAemW/c^vol.1,no.4,pp.485-509,2004.]是用于集合查询的节省存储空间的数据结构,广泛用于网络领域中。设每个请求包的四元组(〈SIP,DIP,SP,ID>)在布隆过滤器中被存储的时间最短为^(3〉RTT),利用两个布隆过滤器BF1和BF2交替存储请求包的信息,每个布隆过滤器存储信息时间长度为A则任意一个请求被存储的时间为RW)。每个布隆过滤器均由A:个独立的哈希函数和w比特的存储空间(Bucket)组成。对每一个出方向的DNS请求数据包,提取其四元组(〈SIP,DIP,SP,ID〉),记为元素",视目前的时间情况插入到BF1或BF2中,插入的方式是用a作为A:个哈希函数/^/72,...,/^的输入,每个哈希函数返回值在集合W7,...,m-7}中,对于每一个哈希结果/2,f^,将该值对应的存储比特(每个布隆过滤器共m个存储比特)的值置为1;对于每个入方向的DNS响应包,提取其四元组(〈DIP,SIP,DP,ID>),记为元素办,同时作为BF1和BF2的A:个哈希函数的输入,查询元素Z>是否在BF1或在BF2中,査询的方式是对每一个哈希结果/2,Y^,判断其对应存储位置值是否为1,如果任一个结果对应的位置为0,则表示元素6肯定不在该布隆过滤器中,如果A个哈希结果对应的位置都为1,则以一定的错误概率判断6在布隆过滤器中,因为可能某个位置是被与6不匹配的其它元素置为了1,这个错误的概率称为误判率(falsepositiverate),设为/y。如果判断出6不在BF1中,并且也不在BF2中,则以极大的概率判断该响应包为攻击包;如果6在任意一个布隆过滤器中,则以极大的概率判断该响应包为正常包。误判率与布隆过滤器支持的元素个数"、存储比特数m和哈希函数个数A:有关,可利用下面公式计算,并可依据最小误判率选择哈希函数个数。布隆过滤器存储元素时间需大于0.5s,推荐选择ls。本发明的目的是设计有效的检测和抵御DNS放大攻击的方法,推荐部署位置如图3所示,利用ISP的边缘路由器或防火墙监控出方向的DNS请求包和入方向的DNS响应包,并进行DNS攻击检测与抵御。图4示意了整个解决方案的工作流程示意图。下面介绍一种具体的实施方式。检测策略中,选择/P=M作为检测周期,即统计每1分钟DNS请求包和响应包的数量,识别DNS请求包与响应包的流程如图5所示,仅识别基于UDP的DNS包。将检测周期编号为W,7,2,3,…,",...},在第"个检测周期内,计算请求包数量Qn和响应包数量Pn的归一化差值令攻击当前检测值X=Z\fcc,再通过如下两个公式递推的计算消退参数w和攻击累积检测值^的值其中,;c+的定义为若x〉"x+=;c,否则^=0。选取《="2,&=7及^=3进行检测,初始时,=ft^=x/,xe=0。过滤策略中,因研究显示超过90。/。的TCP连接的RTT小于500ms,选取布隆过滤器保存请求包的信息的时间为3=7,同时选取^:=么此时附=6",而外=0力567,即布隆过滤器的误判比例最高为5.61%。、o,欺推荐选择H3作为布隆过滤器的哈希函数组,其工作机制如下设哈希函数输入为/比特长,输出值为y比特长,令Q代表所有可能的/Xy'的布尔(取值为0或l)矩阵的集合,对某个,0,设《W是矩阵《的第A:行且长度为y比特的布尔行向量;对于输入x,设xW为JC的第A:比特,则H3哈希的定义为H3(')=.g(l))①(a;(2)g(2))e...g(i))其中,代表比特间的与(AND)操作,e表示异或(XOR)操作,jc^w向的结果为长度为y比特的布尔行向量,其定义如下/Wi、工(似、更换一个布尔矩阵《就得到一个新的H3函数,并且,每个函数都仅包含与和异或操作,非常利于硬件实现。如图2所示,对每一个出方向的DNS请求数据包,提取其四元组(〈SIP,DIP,SP,ID>),记为元素",视目前的时间情况插入到BF1或BF2中,插入的方式是用"作为A个哈希函数/27,/22,...,&的输入,每个哈希函数返回值在集合(ftA…,m-^中,对于每一个哈希结果&问,将该值对应的存储比特(每个布隆过滤器共m个存储比特)的值置为1;对于每个入方向的DNS响应包,提取其四元组(〈DIP,SIP,DP,ID>),记为元素6,同时作为BF1和BF2的A:个哈希函数的输入,查询元素6是否在BF1或在BF2中,査询的方式是对每一个哈希结果/z^」,判断其对应存储位置值是否为1,如果任一个结果对应的位置为0,将该包识别为攻击响应包,丢弃。布隆过滤器的存储需求与ls内DNS请求数量相关,即使DNS放大攻击时,DNS请求依然合法,CAIDA有对10Gbps的核心链路(equinix-chicago)进行实时15监控并给出统计《言息的项目(http:〃www.caida.org/data/passive/monitors/equinix-chicago.xml),分析20072009年的统计数据表明,所有DNS最大包速率远低于22.51kpps。选择ls内保存的DNS请求数量为50k,则过滤策略的存储代价为75KB,可直接使用FPGA片内存储实现。图6给出了对网络中实际截获流量的DNS请求包与响应包归一化的差值(http:〃pma.nlanr.net/Special/auck8.html),图中显示四个流量其值均小于0。图7给出了不同攻击速率下检测结果,检测流量为实际流量中混入DNS攻击响应包,选取攻击响应的速率为30pps、150pps和20200pps的随机速率分别生成攻击流量,每次实验均将攻击流量在1200s混入,2400s停止,即攻击开始前正常流量运行了20分钟,攻击持续20分钟,攻击结束后正常流量又运行20分钟。图中显示,检测算法在这些攻击情况下均能正常检测出攻击的开始和结束。图8给出了不同攻击速率下检测算法报告攻击开始和结束的时间,图中显示,检测算法能以不超过3个检测周期报告攻击的结束。图9为过滤策略将攻击包识别为正常包的比例,该比例低于理论上的误判率5.61%。权利要求1.域名服务器DNS放大攻击的有效检测与抵御方法,其特征在于,所述方法是在被保护的网络所在运营商ISP的边缘路由器中依次按以下步骤实现的步骤(1).初始化,设定以下参数检测周期tp,该检测周期大于请求包与响应包之间的时间间隔RTT,所述tp在10s~600s内取值,优先选择60s,s为秒的单位,检测灵敏度α,表示攻击的响应包的个数超过正常请求包个数的倍数,在间取值,检测阈值th,表示能容忍的累积最大攻击速率,在内取值,wn,表示连续出现的前一个检测周期n-1的攻击累积检测值yn-1报告有DNS放大攻击,而当前检测周期n的攻击当前检测值xn报告无攻击的次数,称为攻击消退参数,该攻击消退参数的递推定义如下id="icf0001"file="A2009100857080002C1.tif"wi="59"he="11"top="149"left="28"img-content="drawing"img-format="tif"orientation="portrait"inline="yes"/>其中xn=(Pn-Qn)/Qn-αQn和Pn分别表示第n个检测周期内统计的请求包和响应包的数量,n=0,1,2,3,...,n,...当前检测值xn>0,表示第n个检测周期可能发生攻击,当前检测值xn≤0,表示第n个检测周期正常无攻击的情况,累积检测值yn,表示第n个检测周期攻击的累积检测值,用于报告系统是否受到DNS放大攻击,若yn>th,表示系统受到DNS放大攻击,yn由递推计算得到,若前n个检测周期,所有的当前检测值xi,i=1,2,...,n,均大于0,则<mathsid="math0001"num="0001"><math><![CDATA[<mrow><msub><mi>y</mi><mi>n</mi></msub><mo>=</mo><munderover><mi>&Sigma;</mi><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><mi>n</mi></munderover><msub><mi>x</mi><mi>i</mi></msub><mo>,</mo></mrow>]]></math>id="icf0002"file="A2009100857080002C2.tif"wi="16"he="8"top="240"left="172"img-content="drawing"img-format="tif"orientation="portrait"inline="yes"/></maths>对于一般情况,所述攻击累积检测值yn的递推定义如下<mathsid="math0002"num="0002"><math><![CDATA[<mrow><msub><mi>y</mi><mi>n</mi></msub><mo>=</mo><mfencedopen='{'close=''><mtable><mtr><mtd><msup><mrow><mo>(</mo><msub><mi>y</mi><mrow><mi>n</mi><mo>-</mo><mn>1</mn></mrow></msub><mo>+</mo><msub><mi>x</mi><mi>n</mi></msub><mo>)</mo></mrow><mo>+</mo></msup><mo>,</mo></mtd><mtd><msub><mi>w</mi><mi>n</mi></msub><mo>&lt;</mo><mi>N</mi></mtd></mtr><mtr><mtd><mn>0</mn><mo>,</mo></mtd><mtd><msub><mi>w</mi><mi>n</mi></msub><mo>&GreaterEqual;</mo><mi>N</mi></mtd></mtr></mtable></mfenced></mrow>]]></math></maths>符号“+”表示()内的(yn-1+xn)>0时,(yn-1+xn)+=yn-1+xn,否则,(yn-1+xn)+=0,N表示报告攻击结束的参数,为整数,在[1,10]间取值,用攻击消退参数表示,初始时w0=0,y0=x0+,此时,x0=0,则x0+=0,步骤(2).在第n个检测周期内统计DNS请求包数Qn和DNS响应包数Pn,计算xn=(Pn-Qn)/Qn-α,若xn<0,表示情况正常,无攻击;xn>0,表示可能存在攻击;xn>th,表示在所述第n个检测周期存在攻击;无论处于上述三种情况中的任何一种情况,都转入步骤(3),步骤(3).递推计算攻击消退参数wn和攻击累积检测值yn,公式见步骤(1),步骤(4).若yn>th,表示系统受到DNS放大攻击,步骤(5).当检测到DNS放大攻击时,首先应过滤掉分片的IP包,方法为提取IP包头的MF标志和offset域,限制该MF为1,及该MF为0但该offset域不为0的包来过滤分片的IP包,然后通过步骤(6)及步骤(7)来检测和丢弃攻击的DNS响应包,步骤(6).提取所述请求包的四元组源IP、目的IP、源端口、DNSID作为元素a,插入到由k个独立的H3哈希函数和m比特的存储位置组成的第一个布隆过滤器BF1或第二个布隆过滤器BF2中,在所述第一个布隆过滤器BF1和第二个布隆过滤器BF2中轮流存储该元素各存储1秒时间,k在[1,20]间取值,所述的插入到所述布隆过滤器的操作为用该元素依次作为所述k个哈希函数h1,h2,...,hk的输入,每个所述哈希函数返回值在集合{0,1,...,m-1}中,对于每一个哈希结果hi(a),i=1,2,...,k,把该值对应的存储位置的值置为1,若已经为1,则保持不变,步骤(7).对检测到的响应包,提取该响应包的四元组目的IP、源IP、目的端口、DNSID作为元素b,检查是否在所述两个布隆过滤器中,若都不在,则判断该响应包为攻击包,丢弃,所述检查元素b是否在所述两个布隆过滤器中的操作为对于每一个哈希结果hi(b),i=1,2,...,k,判断其对应的存储位置的值是否为1,如果任何一个结果对应的位置的值为0,则表示元素b肯定不在相应的布隆过滤器中,如果k个哈希结果对应的位置的值都是1,则判断该元素b在相应的布隆过滤器中。2.根据权利要求1所述的域名服务器DNS放大攻击的检测与抵御方法,其特征在于,所述方法也可在被保护的网络所在运营商ISP的防火墙中实现。3.根据权利要求1所述的域名服务器DNS放大攻击的检测与抵御方法,其特征在于,所述布隆过滤器的哈希函数也可选择MD5或SHA函数。全文摘要一种用于检测和抵御DNS放大攻击的方法,属于计算机网络安全领域,其特征在于被保护的服务器所在网络运营商的边缘路由器或防火墙中,统计每个检测周期内DNS响应与请求包数量,通过带消退参数的累积和算法检测响应与请求数量差值的异常变化,来报告DNS放大攻击;利用基于布隆过滤器(Bloomfilter)的算法记录DNS请求包的四元组信息包括源IP、目的IP、源端口、DNSID,并以此来判断DNS响应包是否为攻击包;该方法在10Gbps链路下仅需要75KB存储空间,计算代价小,易实现和部署,可用于高速链路。文档编号H04L12/26GK101567815SQ200910085708公开日2009年10月28日申请日期2009年5月27日优先权日2009年5月27日发明者斌刘,孙长华,胡成臣申请人:清华大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1