一种网络蠕虫检测与特征自动提取方法及其系统的制作方法

文档序号:7700535阅读:171来源:国知局
专利名称:一种网络蠕虫检测与特征自动提取方法及其系统的制作方法
技术领域
本发明涉及一种网络蠕虫检测与特征自动提取方法及系统,具体涉及一种基于行 为的网络蠕虫检测与基于流量聚类的特征自动提取方法及系统,属于网络安全技术领域。
背景技术
网络恶意代码种类很多,包括网络蠕虫、网页木马和移动恶意代码等,其中网络 蠕虫以其传播速度快、传播范围广等特点,造成的危害最为严重。1988年第一个网络蠕虫 Morris的爆发就造成超过一千万美元的经济损失,2008年底出现的网络蠕虫Conficker在 全球已经感染了超过1200万台主机。近年来网络蠕虫爆发情况的统计信息如图1所示,图 表中列出了从2000年至今危害比较大的10个蠕虫,统计结果表明,网络蠕虫往往利用危害 严重的系统漏洞进行传播,漏洞发布时间与蠕虫爆发时间的间隔在迅速减小,甚至出现利 用Oday漏洞进行传播的网络蠕虫,这意味着传统的人工提取网络蠕虫特征,再将特征升级 到终端用户的杀毒软件的防范策略对这些快速扫描、主动传播的网络蠕虫,几乎失去了效 果,这也是网络蠕虫能够快速传播,造成巨大危害的根本原因。因此,网络蠕虫的检测与特征自动提取成为网络安全技术人员关注的热点问题。 在专利文献CN1859199A中提到一种蠕虫检测方法,该方法通过判断主机向首次发起连接 的IP地址的连接成功与否和这些首次连接的时间间隔,选择相应的概率计算方法计算主 机感染蠕虫的概率,将所得概率值与阈值比较,若概率值大于阈值,则判定主机为异常主 机。若无法判断,则将本次计算所得的概率作为下一次计算的先验概率,重新计算主机感染 蠕虫的概率。在专利文献CN1697404A中提到了一种分布式的蠕虫检测方法,技术方案为, 把不同终端采集的网络流量传给一个蠕虫分析单元,通过统计分析根据阈值判断终端是否 遭到蠕虫攻击。目前的专利文献仅限于蠕虫检测方法上,而且选择的检测策略相对单一,本发明 给出的检测策略综合了四项蠕虫异常检测策略,可以有效地平衡单一策略带来的误报和漏 报。更为重要的是,目前使用特征签名匹配的方法检测蠕虫时,需要人工更新特征数据库, 因而只能检测已知蠕虫,本发明在异常检测的基础上,给出了一套自动提取蠕虫特征签名 的方法,通过把提取出的特征签名更新到入侵检测系统(IDS)的特征签名数据库中,可以 有效地匹配和检测出未知蠕虫。

发明内容
本发明的目的在于提供一种网络蠕虫检测与特征自动提取方法及其系统,从而能 够更加准确、及时地发现网络蠕虫,并且能够自动提取蠕虫的特征,可以把特征签名更新到 已有误用检测系统(IDS)的攻击特征数据库中,从而真正达到遏制蠕虫传播的目的。本发明的技术方案如图2所示,具体分为以下五步1)以旁路侦听的方式在网关处捕获网络数据包;2)捕获的数据包首先经过已有的IDS,通过与攻击特征数据库匹配,检测已知蠕
4虫攻击;3)接着,数据包经过异常检测子系统,异常检测子系统通过基于行为和统计信息 的异常检测算法,发现蠕虫传播异常后,发出告警信息,同时把网络流量分成可疑流量和正 常流量,分别存储在可疑流量池与正常流量池中;4)特征提取子系统以可疑池和正常池中的网络流量为输入,通过基于流量聚类的 特征签名算法,提取特征签名;5)提取特征签名并及时更新到网络攻击特征数据库中,从而有效地遏制网络蠕虫 的传播。第三步中采用的网络蠕虫检测方法如下为了提高误用检测子系统的准确性,减少异常检测的误报和漏报,异常检测子系 统综合了发起连接数异常、失败连接数异常、发散性异常和包相似性异常四种异常检测策 略,每种策略会对目标主机的当前状态给出一个异常评分。把每种策略看成是判断主机是 否出现异常的证据,通过证据融合得到一个最后的异常总评分,如果异常总评分大于阈值, 则异常子系统发出告警信息,告警信息包括出现异常的目标主机的IP地址、异常端口号和 时间等信息,同时该主机发出的针对异常端口的流量将存入可疑流量池,其它流量则存入 正常流量池。四种异常发现策略简述如下(1)发起连接数异常。在正常情况下,某台主机在一个时间窗(例如lmin)内发起的连接数目符合一 个稳定的泊松分布,当主机感染了网络蠕虫后,会进行扫描以发现更多有漏洞的主机进行 传播,那么,该主机在一个时间窗内发起的连接数就不再符合一个稳定的泊松分布,统计学 上,发现这种分布变化的问题成为变换点探测问题。通过CUSUM模型可以进行变换点探测, 当发现了分布变化时,根据分布变化的严重程度,给出异常评分,分布变化越严重,评分越 接近1,如果没有发现分布变化,异常评分为0。(2)失败连接数异常。在正常情况下,某台主机发起的连接中,由于目标主机不响应、服务端口关闭或者 网络拥塞等,会有很小的一部分是失败的。但是,如果某台主机感染了网络蠕虫,大部分的 网络蠕虫扫描都是随机或者半随机的,会导致出现大量的失败连接。通过统计主机发起 连接的成功率,可以及时有效的发现失败连接数异常,同样根据异常的严重程度给出一个 0 1之间的评分。(3)包发散性异常。在正常情况下,某台主机在一个时间窗中,所发出的数据包发往不同的目的地址 数目是有限的,而且每个目的地址发出的数据包个数也是随机的。但是在异常情况下,由于 主机感染了网络蠕虫,会向很多不同的目的地址发出数据包,这样不同的目的地址数目很 大,并且由于扫描数据包的特点,导致很多目的地址的数据包只出现一次,这样,每个目的 地址的数据包个数比较平均。信息论里香农提出的信息熵很好得刻画了以上的特点,把该 主机发往不同目的地址的数据包个数看成一个随机变量,计算这个随机变量的信息熵,发 往的目的地址数越多,信息熵越大,每个目的地址的包数越平均,信息熵越大。当信息熵大 于一定的阈值时,触发异常。给这种异常一个0 1之间的评分,异常程度越大,评分越接 近1。(4)包相似性异常。
在正常情况下,某台主机在一个时间窗中,发出的数据包的长度是随机分布的,当 主机感染了网络蠕虫后,发出的大量扫描包是彼此相似的。统计包长度的方差,正常情况 下,包长度的方差是在一定的阈值以上的,当主机感染蠕虫后,由于数据包的相似性,发出 的数据包长度的方差会变小,当方差小于一定的阈值后,触发异常。同前面三种情况一样, 也给这种异常一个0 1之间的评分,越异常,评分越接近1,不触发异常时评分为0。将所得到的四个异常评分视为四项证据,送到“证据融合”模块,由证据融合模块 产生最终异常分,与阈值比较来决定是否触发异常。第四步特征提取子系统采用的特征提取方法如下(Dtoken(所谓token是指数据包负载字节串中连续的子串)提取。对正常流量池 中的数据流量进行随机抽样,对选中的流量进行训练,按照不同的目的端口分别产生正常 的token列表,按照token出现的频率由高到低排序,对可疑池中的流量也做同样的token 提取工作,得到可疑池中的token列表;(2)不变token选择。选择那些在可疑池中出现频率较高,而在正常池中出现频率 很低或者几乎不出现的token,组成属性向量(即不变token集合)。(3)流量聚类。假设可疑流量池中有N条流量,选择η个不变token,那么可疑池 中的每条数据流量都可以用一个η维的0-1向量来表示,某一维为1,表示存在该token,某 一维为0,表示不存在该token,这样可疑池中的流量可以描述为一个由N个η维0_1向量 组成的集合,最后,对格式化后的流量进行层次聚类,从而把可疑浏览池中的流量划分为若 干类。(4)特征签名生成。对于层次聚类得到的每一类,首先判断该类是蠕虫类还是噪声 类,如果是噪声类,则直接丢弃。接着对于每一个蠕虫类,从该流量类中提取出一个token 的集合,作为一个特征签名输出。本发明的积极效果为本发明提出了一种融合多项异常检测策略来评估蠕虫行为特征的异常检测方法, 能够更加准确、及时地发现网络蠕虫,同时,给出了一套自动提取蠕虫特征的方法,提取出 的特征签名可以被更新到已有的网络攻击特征数据库中,弥补了现有方法中检测过程和特 征提取过程耦合度低、需较多人工干预造成的遏制不及时的缺点,从而达到有效阻止蠕虫 传播、防止蠕虫造成大规模经济损失的目的,对我国的网络和信息安全保障工作有重要意 义。


图1是近十年来网络蠕虫爆发情况统计图表;图2是本发明的体系结构图;
图3是Token提取算法过程图;图4是流量格式化算法流程图;图5是流量聚类中初略确定聚类数目算法流程图;图6是流量聚类中精确确定聚类数目算法流程图。具体实施方法本发明的具体实施方法为
第一步以旁路侦听的方式在网关处捕获网络数据包。第二步数据包经过已有的IDS,根据网络攻击特征数据库匹配,检测已知蠕虫的 攻击。第三步异常检测子系统将针对捕获的数据包进行分析和检测,异常检测分为阈 值训练和在线检测两个阶段。(I)阈值训练阶段对流量进行四项异常检测策略计算发起连接数、失败连接数、发散性和包相似性 这四个参数的阈值。训练阶段所使用的是系统捕获的正常网络流量。下面我们将逐一介绍这四个参数的观测值的计算方法。(I-I)应用⑶SUM模型计算发起连接数的观测值Sn,模型如下

随机变量X表示主机在单位时间内发起的连接数目;u表示随机变量X的期望,即 U = E(X) ;ρ是描述随机变量X增长比例的一个扰动参数;Sn是CUSUM模型用来探测随机变 量X分布漂移的一个迭代变量,Sn即第η个时间窗时的取值;Χη表示第η个时间窗随机变 量X的取值。(1-2)计算连接成功率的观测值。 Ratio表示发起连接的成功率;nsyn表示从异常检测开始到当前时间窗,发起连接 请求的总数;na。k表示从异常检测开始到当前时间窗成功的连接数。(1-3)计算发散性的观测值。本发明借用了信息熵的概念来构造描述主机数据包的发散性数学模型,用随机变 量A描述某主机在单位时间窗内,与不同的目的地址进行通信的数据包个数,H(A)表示随 机变量A的信息熵。 其中, η表示某主机单位时间窗内,发往不同目的地址的数据包总数叫表示发往第i个 目的地址数据包占数据包总数η的比例。特别地,如果η = 0,即没有发出数据包,则定义 H(A) = 0。(1-4)计算包长度相似性。 其中, 特别地,当η = 0,即没有发出数据包时,定义F(Y) =0。其中,Y表示单位时间窗内主机发出的数据包的长度的随机变量;D(Y)表示描述随机变量Y的方差孑表示数据包的平均长度;η表示数据包的个数;F(Y)表示数据包长度 方差的标准化值。各项参数的阈值的计算方法则如下对于活跃端口(频繁使用的端口),发起连接 数阈值I1和发散性阈值I3取观测值中的最大值,而失败连接数阈值I2和包相似性阈值I4 取观测值中的最小值。对于活跃主机(经常上线的主机)的不活跃端口,则利用其主机活 跃端口四项参数阈值的算术平均值作为其阈值。如果为不活跃主机,则其所有端口都是不 活跃端口,使用网络内所有活跃主机的活跃端口的参数阈值的算法平均值。(II)在线检测阶段(II-I)计算发起连接数的异常程度。按(I-I)计算该流量的发起连接数Sn。由于主机被网络蠕虫感染后,随机变量X 的分布会发生漂移,导致随机变量X的期望变大,这样,Sn会一直变大,当Sn的增加到超过 一定的阈值I1,即说明发生了发起连接数异常。
定义一个变量ε i,标准化地衡量发生发起连接数异常的严重程度 其中,ε工越接近1,说明主机发起连接数目越异常。(II-2)计算失败连接数的异常程度。按(1-2)计算该流量的Ratio值。定义变量ε 2,标准化地衡量发生失败连接数异
常的严重程度 其中,ε 2越接近1,说明主机失败连接数目越异常。(11-3)计算发散性异常程度。根据(1-3)计算该流量的H(A)值。定义一个变量ε 3,标准化地衡量发散性异常 的严重程度 其中,ε 3越大,说明发散性越异常越严重。(ΙΙ-4)计算包相似性的异常程度。根据(1-4)计算该流量的包相似性。定义一个变量ε 4,标准化地衡量包相似性异
常的严重程度 其中,ε 4越大,说明主机发出的数据包相似性越异常,
(II-5)将ε工 ε 4作为证据融合模型的输入,计算最终异常评分F。证据整合模 型如下 异常检测具体过程如下1)首先对到来的离线流量进行预处理,将数据包按照〈源地址、目的地址、源端 口、目的端口、传输层协议类型,负载 > 的六元组进行格式化;2)将数据包按源地址分类,同一源地址的数据包再按照目的端口分类,将同一个 源地址发往同一个目的端口的流量,按照时间窗(如lmin)进行异常检测算法处理;3)如果发现有最终异常分大于阈值,则说明该主机出现异常,发出告警信息。告警 信息的格式是一个四维向量<IP Address, Protocol, Port, Time), IP Address表示出现异 常的主机地址;Protocol表示蠕虫传播使用的传输层协议,取值可以是TCP或UDP ;Port是 蠕虫传播所利用的目的端口 ;Time表示异常信息产生的时间。把异常主机发往异常目的端 口的数据包存入可疑流量池中,其他的流量则存入正常流量池。第四步特征提取子系统以可疑池和正常池中的网络流量为输入,通过基于流量 聚类的特征签名算法,提取特征签名。具体过程如下(1) token 提取从流量池中任意选择两条数据流量,使用最长公共子序列LCS (Longest Common Sequence)算法提取长度不小于最短长度的公共token。把得到的公共token按照其出现的 频率从高到低,存储在hash表中。具体流程如图3所示。从可疑流量池进行token提取, 得到可疑流量池token列表;从正常流量池抽样部分流量进行token提取,得到正常流量池 token列表。(2)不变 token 选择若某个token t在可疑流量池中出现的频率表示为COVs (t),而token t在正常流 量池中的频率表示为COVn (t),则token t的频繁度定义为f (t) = COVs (t)而异常度定义 为g(t) = I-COVn(t) 0对可疑流量池token列表进行频繁度和异常度过滤,选择频繁度和 异常度均大于一定阈值的token作为不变token,存入不变token集合中。(3)流量聚类首先,格式化流量。将不变token集合中的token作为属性,将每一条流量记录转 化为一个η维的0-1向量,其中η为不变token集合中的token的个数。某一条流量含有 第i个token,则向量的第i位为1,否则为0。格式化流量过程如图4所示。其次,计算类与类的距离。初始状态下,可疑流量池中的每一条已经格式化的流量 自成一类,采用基于对数似然的方法计算两类之间的距离。每次选择距离最近(即相似度 最大)的两类流量进行合并,直至聚成一类终止。第i类和第j类流量之间的距离可以表 示如下 其中, 其中,Du表示第i类和第j类之间的聚类,Ni表示第i类的流量数目,Niktl表示在 这个簇中,第k个特征取值为0的流量数目,而Nikl表示在这个簇中,第k个特征取值为1的 流量数目。一般地,把两类合并为一个新类后,新类内部相似度会比原来两类相似度有所降 低,Du表示把第i类和第j类合并后的对数似然下降度,下降度越低表示合并后的相似度 减少得越小,两个簇的距离也就越小。接着使用SPSS的公司的Two-Step层次聚类算法对可疑流量池的流量进行层次聚 类。顾名思义,聚类过程分两步1)初略确定聚类数目。聚类过程从最初的N类聚到1类,可以看成N个状态,每个 状态J都要计算一个BIC(J)值,然后通过计算BIC (J)的变化率dBIC(J)来确定初选最佳 聚类数目C。BIC ⑷=+ 2 J2 Iog(TV)
y=i 如果dBIC(l) <0,那么最佳聚类数目是1,无需进行第二步选择。否则,初选聚类 数为C = min {J| R1(J) <0.04},接着进行精确确定聚类数目。具体流程如图5所示。2)精确确定聚类数目。对于聚类成J类的聚类状态(2 < JS C),定义类间最小距 离为Clmin(J),即聚类成J类时,任意两类之间的最小距离。定义R2 (J) = dmin(J)/dmin(J+l), 在&(2)到&(0中选择一个最大值和一个次大值,通过比较最大值与次大值的1. 15倍的 关系来确定精确聚类数目K,从而得到聚成的K个流量类。具体流程如图6所示。(4)签名生成实际中,由于异常检测子系统进行流量分类时不能做到绝对准确,例如一些常用 目的端口如果被确定为可疑端口,那么所有该端口的流量都会被加入可疑流量池,因此可 疑池中会存在一定的噪声流量,同时网络蠕虫可能存在多态、多变种甚至多个网络蠕虫同 时爆发的情况,因此需要经过流量聚类后,再针对每一个流量类判断是蠕虫类还是噪声类, 若是噪声类,则丢弃,否则产生签名。判断方法是选择该类中出现的若干token作为代表token,计算它们在该类和正 常池中的覆盖率,假设该类种有N个Token,第i个Token在该类种的覆盖率为C0V。lustCT (i), 在正常池中的覆盖率为COVnmiaJi)。由此得到一个判定分 如果得分大于一定的阈值ρ,则说明该类是噪声类,直接丢弃,否则判断为蠕虫类。对于蠕虫类,签名生成过程为1)统计这个类中出现过的token有哪些,组成一个 token列表;2)按照每个token在该流量类中出现的频率,从大到小排序;3)初始化特征签 名集合为空;4)选择一个覆盖率最大的token加入到签名集合中;5)计算特征签名集合的 覆盖率,如果覆盖率小于一定的阈值,则停止,否则返回4) ;6)返回特征签名集合作为最终的特征签名。 第五步将提取出的特征签名及时更新到IDS的网络攻击特征数据库中,以遏制 网络蠕虫的传播。
权利要求
一种网络蠕虫检测与特征自动提取方法,其步骤为1)对捕获的网络数据包进行异常检测,根据检测结果将数据包划分为可疑网络流量和正常网络流量;2)将可疑网络流量存储在可疑流量池中,正常网络流量存储在正常流量池中;3)对可疑流量池和正常流量池中的网络流量进行聚类,提取特征签名;4)将提取的特征签名更新到网络攻击数据库中,检测网络蠕虫。
2.如权利要求1所述的方法,其特征在于所述对网络数据包进行异常检测的方法为1)将网络数据包按照< 源地址、目的地址、源端口、目的端口、传输层协议类型,负载> 的六元组进行格式化;2)将网络数据包按源地址分类,同一源地址的网络数据包再按照目的端口分类,将同 一个源地址发往同一个目的端口的流量,按照时间窗进行异常检测;3)如果网络数据包的异常评分大于设定阈值,则发出告警信息,所述告警信息为一四 维向量〈异常主机IP地址、传输层协议、异常目的端口、时间 > ;所述异常主机发出的针对 异常目的端口的流量为所述可疑网络流量,其它流量为正常流量。
3.如权利要求1或2所述的方法,其特征在于所述异常检测方法中对网络流量的发起 连接数异常、和/或失败连接数异常、和/或发散性异常、和/或包相似性异常进行检测,分 别得到一异常值。
4.如权利要求3所述的方法,其特征在于所述异常评分的计算方法为1)设对网络流量的发起连接数异常进行检测得到的异常值为h、对网络流量的失败 连接数异常进行检测得到的异常值为ε 2、对网络流量的包发散性异常进行检测得到的异 常值为ε 3、对网络流量的包相似性异常进行检测得到的异常值为ε4;2)将£ι、ε2、ε3、ε4构成一证据链,采用证据链融合算法计算出一异常评分。
5.如权利要求4所述的方法,其特征在于所述对网络流量的发起连接数异常进行检 测的方法为通过CUSUM模型探测某主机在一个时间窗内发起的连接数是否符合一个稳定 的泊松分布,根据泊松分布变化的严重程度确定异常值ε !;所述对网络流量的失败连接数 异常进行检测的方法为通过统计主机在一个时间窗内发起连接的成功率,判断失败连接 数是否异常,根据异常严重程度确定异常值ε 2 ;所述对网络流量的包发散性异常进行检 测的方法为将主机发往不同目的地址的数据包个数定义为一个随机变量,计算该随机变 量的信息熵,如果信息熵大于设定阈值,则触发异常,根据信息熵确定异常值;所述对网络 流量的包相似性异常进行检测的方法为统计某主机在一个时间窗中发出扫描包的包长度 方差,如果数据包长度的方差小于一定的阈值,则触发异常,根据包长度方差确定异常值为S 4 ο
6.如权利要求1或2所述的方法,其特征在于所述提取特征签名的方法为1)对正常流量池中的数据流量进行随机抽样训练,按照不同的目的端口分别产生正常 池的token列表,计算每个token出现的频率并按照频率排序;所述token为数据包负载字 节串中连续的子串;所述token提取方法为采用最长公共子序列算法提取长度不小于最 短长度的公共token ;2)对可疑流量池中的数据流量进行随机抽样训练,按照不同的目的端口分别产生可疑 池的token列表,计算每个token出现的频率并按照频率排序;3)选择在可疑池中出现的频率大于一定阈值并且在正常池出现的频率小于一定阈值 的token,组成不变token集合;4)选取可疑池中N条流量,将每一条流量记录转化为一个η维的0-1向量,其中η为不 变token集合中token的个数;然后对格式化后的流量进行层次聚类;5)判断层次聚类得到的每一类是蠕虫类还是噪声类,如果是噪声类,则直接丢弃;如果是蠕虫类,则从该流量类中提取出一个token的集合,作为一个特征签名输出。
7.如权利要求6所述的方法,其特征在于所述特征签名的生成方法为1)针对聚类得到的每类,将该类中出现过的token组成一个特征签名列表;2)按照token在该类中出现的频率,从大到小排序;3)将签名集合初始化为空;4)计算特征签名列表中token在可疑池中的覆盖率,将覆盖率大于一定阈值的token 加入到签名集合中,为最终的特征签名。
8.如权利要求6所述的方法,其特征在于所述对N条流量格式化的方法为在不变 token集合中选取η个token,将每条数据流量用一个η维的0-1向量来表示,某一维为1, 表示存在该token,某一维为0,表示不存在该token,从而将流量信息转化成了一个0_1矩 阵,矩阵的每一行代表一条流量记录。
9.一种网络蠕虫检测与特征自动提取系统,其包括异常检测子系统、特征提取子系统、 网络攻击特征数据库、误用检测系统;所述误用检测系统通过网络与外网连接,用于捕获网络数据包并将其发送给所述异常 检测子系统;所述异常检测子系统用于检测接收到的网络数据包,确定出可疑网络流量和正常网络 流量,并将可疑网络流量存储在可疑流量池中,正常网络流量存储在正常流量池中;所述特征提取子系统用于对可疑流量池和正常流量池中的网络流量进行聚类,提取特 征签名;所述网络攻击数据库用于存储蠕虫特征签名。
10.如权利要求9所述的系统,其特征在于所述异常检测子系统对网络流量的发起连 接数异常、和/或失败连接数异常、和/或发散性异常、和/或包相似性异常进行检测,分别 得到一异常值;所述异常检测子系统包括一证据融合模块,所述证据融合模块用于根据多 个异常值产生一异常评分,通过与阈值比较来决定是否触发异常,确定出可疑网络流量和 正常网络流量。
全文摘要
本发明公开了一种网络蠕虫检测与特征自动提取方法及其系统,属于网络安全技术领域。本发明的方法为1)对捕获的网络数据包进行异常检测,根据检测结果将数据包划分为可疑网络流量和正常网络流量;2)将可疑网络流量存储在可疑流量池中,正常网络流量存储在正常流量池中;3)对可疑流量池和正常流量池中的网络流量进行聚类,提取特征签名;4)将提取的特征签名更新到网络攻击数据库中,检测网络蠕虫。本发明的系统包括异常检测子系统、特征提取子系统、网络攻击特征数据库、误用检测系统。本发明能够更加准确、及时地发现网络蠕虫,并且能够自动提取蠕虫的特征并更新到已有误用检测系统的攻击特征数据库中,从而真正达到遏制蠕虫传播的目的。
文档编号H04L29/06GK101895521SQ20091008543
公开日2010年11月24日 申请日期2009年5月22日 优先权日2009年5月22日
发明者刘宇, 姚力, 张玉清 申请人:中国科学院研究生院
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1